Andrzej Gajowniczek

ul. gen. Józefa Hallera 1C/2 • 05-400 Otwock Poland • CloudTech • Company tel. +48 22 789-00-21 andrzej.gajowniczek@gmail.com

I am an experienced Linux administrator with a deep passion for programming in Go. I take great pleasure in experimenting with AI, always eager to explore new frontiers in this field. My true enthusiasm lies in automating repetitive tasks, transforming tedious work into seamless, efficient processes. I combine practical expertise with a drive for innovation, constantly seeking ways to enhance productivity and streamline workflows.


Experience

SRE Enginear/Linux Admin/OpenStack Admin/Go Developer

CloudTech
  1. OpenStack administration and installation.
  2. Reverse Proxy migrations from Apache2 or Nginx to HAProxy.
  3. Proof of Concept (PoC) of OpenStack logs analysis using EFK (Elasticsearch, Fluentd, and Kibana) on Docker.
  4. Maintaining the Zabbix monitoring system.
  5. Developing custom tools in Go, C, Bash, and Python.
  6. Developing REST/client/server in Go
February 2022 - February 2025

Linux Specialist

Accenture Services Sp. z o.o.
  1. RHEL, SuSE Enterprise Linux, Ubuntu administration.
  2. Migration of client datacenter to Azure Cloud.
  3. Maintenance and server configuration.
  4. Automation of routine tasks with Ansible and remote execution by Red Hat Satellite.
  5. Configuration of monitoring & central logs systems.
  6. Development of custom dashboards using HTML/CSS/jQuery/PHP and Apache2 server.
April 2013 - November 2021

EU Project IT Specialist

Otwock Town Hall
  1. EU Project Site administration based on Drupal CMS.
  2. Organizing tenders and preparing the Terms of Reference.
  3. IT service desk providing laptop intake from customers and resolving any issues.
  4. Installing bug fixes and security patches.
  5. Deploying new software and organizing tech training for users.
  6. Negotiating warranty terms.
March 2010 - December 2012

Admin Coordinator/Team Lead

Arthur Andersen -> EY - Polska
  1. CUPS printing system administration
  2. Printer maintenance and servicing.
  3. Configuring Call Center and Conference Center devices.
  4. VoIP configuration based on Asterisk servers
  5. Coordinating and evaluating a small team of admins.
  6. Managing access control office systems.
  7. Ordering ink cartridges and consumables for xerographic equipment.
September 1999 - February 2010

Education

University of Economics and Computer Science in Warsaw • Poland

Bachelor of Science in Information Technology (BSc IT)
Thesis in the field of security policies of business data in ICT systems against unauthorized access and misuse.
February 2001 - March 2004

Skills

Programming Languages
  • Go / Golang
  • C
  • HTML / CSS / jQuery / PHP5
  • Assembler 6502; x86
Scripting
  • Bash
  • Python
Version Control
  • Git
Automation
  • Ansible
Administration Experience
  • Linux
  • OpenStack
  • Satellite
  • Spacewalk
  • Foreman
Containers
  • Docker / Swarm
Virtualization
  • KVM
  • VMware
Monitoring
  • Zabbix
  • CheckMK
Logging
  • rSyslog
  • Fluentd / EFK Stack
Visualization
  • Kibana
  • Grafana
NoSQL Databases
  • Elasticsearch
  • MongoDB
  • Etcd
SQL Databases
  • MariaDB / MySQL
  • PostgreSQL
Ticketing Systems
  • Jira
  • BMC Remedy
  • Service-Now
Languages
  • English – B2
  • Polish – C1

Certifications

  • Red Hat Delivery Specialist - Automation 2022-2024 4th October
  • Microsoft AZ-900 2020
  • MS-10979 Microsoft Azure Fundamentals 2018
  • RH254 Red Hat System Administration III - OSEC 12-17 September 2015
  • Oracle Linux System Administration Ed 2 LVC - Oracle University 13-17 April 2014
  • Team Building and Management - Ernst & Young Academy of Business 17 April 2009
  • Effective Negotiation in Procurement Ernst & Young Academy of Business 11 March 2009
  • Project Management Methodology OdiTK 23 January 2009
  • Customer Service Excellence / Customer Interaction Techniques EIRK 24 February 2008
  • 130 Hours – English Course Warsaw Study Centre 31 May 2002

Side projects for fun

These side projects serve as experiments with various techniques I aimed to explore through hands-on learning. I believe in the value of 'learning by doing' as an effective method for mastering new concepts. These projects are typically free from time pressure or financial constraints and are driven purely by curiosity about new technologies. They bring me a great deal of joy and have become a fulfilling hobby. I highly recommend this approach for acquiring knowledge.

• This is an example of using the Bielik language model (LLM). The program is written in Go and uses a REST API to retrieve weather information. Based on the JSON data, the language model generates a commentary on the current meteorological conditions. The model runs via the Ollama application and utilizes an Nvidia GPU for AI calculations. The program is available for download from my GitHub account at github.com.

• In this example, I tested jQuery animation along with HTML and CSS. The program is hosted in Docker on an ARM32 Linux server with a valid SSL certificate. I used Traefik to issue and renew the Let's Encrypt certificate and to act as a reverse proxy. The HTTPS content is served using the Go programming language along with the Chi package.

• This is an example of an Icecast2 media streaming server implementation. The Radio application is running in a Docker environment. The orchestration engine is powered by a Liquidsoap script, and Traefik is used as the HTTPS reverse proxy. In this setup, the server supports Opus and AAC encoding using FFmpeg. The playlist management and all streaming logic are implemented in OCaml with the help of the Liquidsoap library.

• This is an example of a very low-cost hosting solution. The website does not require any database to function. It is built using PHP, JavaScript/jQuery, and HTML. The client who commissioned it has been using the site to promote their services since 2012. The total deployment time was one full working day (8 hours).

• This program consists of two parts: the first is a Go program that calculates graphic data later used on the retro computer Commodore 64. The first part is written in Go and described in an article I posted on LinkedIn. The second part is a program written in 6502 assembly language. The method for calculating colors is based on the least squares method, where each RGB component forms a three-dimensional vector. The distance between two vectors determines their color and luminance similarity. The smaller the squared distance, the more similar the colors are. In this way, using only 16 colors available on the C=64 and blending background and character colors, it’s possible to achieve intermediate shades and display photorealistic elements – as shown in this demo. The program is a tribute to the 8-bit computer demoscene and demonstrates how modern platforms and programming languages can accelerate the development of applications for retro computers.

• This application is a chat program launched from the command line and written in Go – a language that's becoming increasingly popular for backend development. It uses the well-known middleware RabbitMQ. The program utilizes a broadcast channel to send messages addressed to all logged-in users and provides a list of active users. It follows a client-server model, where the server is RabbitMQ running on a local network and listening for connections. Clients connecting to the server create their own dedicated queue for private messages and use a general channel to announce their presence and query which other clients are currently online. The video demonstrates the installation process and shows how to use the LanChat application.

• This application, in a way, breaks the conventional use of the Linux console – it creates a colorful background over which colorful text moves at varying speeds. A number of different tricks and programming techniques using the Go language and the terminal have been applied here. The moving text is a software-based implementation of sprites. Although the console doesn’t support scrolling, the program uses character-based graphics, where the resolution can be increased compared to the number of cursor positions on the screen by displaying half-width characters and separately controlling the background and foreground colors. This approach results in a smoother animation effect. The program uses goroutines to play background music. Enjoy the show!

• The program uses mathematical formulas for functions of two variables, combining sine and cosine functions. This effect was commonly used in the 1990s for demo-scene productions on computers like the Amiga 500 and Atari ST, as well as quite successfully on 8-bit machines like the Atari 800 XL and Commodore. The animation is generated using software-created buffers. The program runs in the Linux console and can even be used as a fake shell for users who have had their access restricted 😄 The program was written in Go and is available for download at github.com/Andrzej-Gajowniczek.

• I’d like to introduce you to Pixel – the simplest 2D graphics library I’ve ever seen. Pixel for Go is a versatile 2D game development library tailored for the Go programming language. It empowers developers to build interactive applications and games by providing essential tools for graphics rendering, input handling, and more. Thanks to its user-friendly design, Pixel simplifies the game development process, making it accessible to both beginners and experienced programmers. Its flexibility and performance optimizations make it ideal for creating visually engaging and responsive 2D experiences. Whether you’re a hobbyist or a professional game developer, Pixel can help bring your 2D game ideas to life in Go. Feel free to check out my piece of code – you’ll see how just a few lines can get the job done 😉 GitHub: https://lnkd.in/dg7vnCC5 The music was made by me – and despite plenty of mistakes, I think it’s not too bad. Enjoy the silence 😄