About me
I develop each aspect in the following sections on this page, so here briefly, concisely, and to the point 🙂
My name is Michał Kukowski, I come from Wrocław, I am a graduate (PhD Eng.) of the Wrocław University of Science and Technology, majoring in Algorithmic Computer Science (formerly Computer Science at WPPT). Already during my studies, I started working as a C Programmer and it stayed that way. It is true that I have held and still hold various positions in companies, but they are always related to projects written in C.
Scrum Master, Agile Coach, Technical Leader, Technical Recruitment Consultant, architect, C programmer, research and scientific assistant. That's quite a lot, but I like to learn and I enjoy challenging myself in various difficult professional situations.
Once I had a dream called Rome", such a line we can hear in the movie Gladiator. I too have dreams, dreams that it's time to try and bring to life. One of these dreams is to create a truly good source of knowledge about the IT world. And it's happening right now!
Privately, I am the happy husband of a beautiful and incredibly intelligent woman. In my free time, I like to play a game, alone or with my wife, as well as watch a series on Netflix. Besides that, I enjoy working out at the gym 🙂.
Career
As I have already mentioned, I started in the IT world as a C language programmer. Later, my career developed to the point where I had the pleasure of being the technical leader of a team, an architect in a project, a scrum master, and I even had the chance to set up the entire recruitment for a project practically from scratch.
If you are interested in my entire professional life, take a look here. There you will find my full CV, which you can download in PDF format.
Here, however, I will boast about a few things that I consider to be my professional success:
For students at the TietoEvry company, I had the pleasure of leading an incubator, during which we taught programming in C and LTE networks from scratch. In this project, I was responsible for training students in certain aspects of the C language. In my opinion, it went very well. Out of six people, we accepted as many as five, three of whom became technical leaders in the company in the future.
Since 2020, I have been conducting trainings in C programming language and computer architecture once a year. The training only lasts 12-14 hours, during which I cover aspects of programming and the C language that are hard to find in Polish universities. After such a course, I give everyone a chance to work in a company with which I have a contract. Until 2023, this was the company TietoEvry. Every participant in my training, after completing a fairly challenging preliminary task, had a chance to face TietoEvry recruiters during a technical interview. Many of them were doing well and started working during their second year of studies because they possessed sufficient skills. Skills that they acquired from me.
In the company TietoEvry, I was responsible for setting up anew recruitment for positions related to a telecommunication project, primarily written in the C language. It was quite a challenging task, as the process was failing at every point. I had to introduce my own, original solutions at the time, which not only allowed for quicker verification of candidates but also enabled the identification of true talents among the pool of applicants.
I keep the details of this process to myself. However, if you are interested in consulting on the recruitment process in your company, feel free to contact me. I am able to assist you in this matter.
I became a SCRUM Master during the pandemic, at a time when suddenly everyone started working from home instead of offices. It was a challenging period, as everyone knows. I was facing another professional challenge. As a new SCRUM Master, I had to re-establish the process. Of course, I didn't reinvent the wheel, but I implemented the SCRUM framework in such a way that we didn't feel at all that we were working from home. Just a few elements allowed us to achieve as much as 88% predictability in estimates and a consistent 12% increase in team productivity.
The whole process was jokingly named KScrum in the company, which means the implementation of the SCRUM framework by me (Kukos). I had the pleasure of introducing my methods in subsequent teams, and the results were always positive.
Are you curious how to achieve this? Write to me; I might be able to help your team as well.
I had the pleasure of being one of the main speakers at conferences from the Digital Futures series. I talked about the dark side of optimization power. Namely, why it's not worth optimizing code at all costs and how to prepare for this process.
It was an interesting experience, and I will definitely participate again if I have the opportunity to be part of something similar in the future.
I assume you weren’t at these meetings. No worries, on this site I will also cover topics of optimization and project management, so the material from these conferences will surely appear in blog posts.
One doesn't live by teaching alone, right? To teach, one needs to have substantial experience, which is best developed both through work and by creating private projects.
The most interesting:
- Tomasulo simulator
- Compiler
- Full DBSM simulator, also simulating various types of memory such as SSD or PCM
- STL in C
When I was writing code in C, I always missed a way to test everything. Static functions, all branches of conditional statements, and system-specific situations (e.g. lack of memory).
I know that there are comprehensive frameworks available online that allow simulating GTest and GMock. However, most of them will not work when we are writing code for embedded systems.
I managed, however, to come up with a way to fully test the code, including mocking functions from the standard libraries.
Do you want to know how to do it? I invite you to my training sessions 🙂
Teacher by choice
You're probably wondering what I mean? What does it mean that I became a teacher by choice, or are other teachers forced to work? Didn't others have that choice? I'm explaining... but slowly, let's start from the beginning. When I was in high school, I didn't understand at all how you could study so much. Instead of learning everything, I focused only on what I like, i.e. programming and algorithms. Unfortunately, such classes were only once a week, which was not enough for me. At that time, I did everything I could to avoid studying and somehow pass my high school final exams, and at the same time to be able to continue exploring the world of computer science at home. Unfortunately, the school system did not help me because we were overwhelmed with tests, quizzes and homework. Of course, most of these activities were related to subjects that did not interest me. Back then, I considered the teaching profession to be something terrible, a profession focused on tormenting the student.
I finally managed to survive it somehow and went to college. Then I went every day happy with where I got because I could finally gain knowledge from qualified academic teachers. Of course, there were still items that did not interest me, but they were a minority. During my studies, I was nicknamed "Evangelist". Not because I preached the good news, but because I was able to explain in a very understandable way to others what I had difficulty understanding at home when studying my lecture notes. Just imparting knowledge gave me pleasure. Not only because I could feel important, but I was considered quite a smart guy. NO. I noticed that I enjoy watching the successes of others, successes on which I had quite a large influence. That's when I understood that if an opportunity to teach ever arises, I would certainly take advantage of it.
One day at work, I was offered to lead a student incubator. I agreed, even though I knew that a lot of work awaited me. It turned out that teaching about simple things like programming, in contrast to academic mathematics, is very easy. It went better than I expected. At the same time, the result of the surveys convinced me that I am good at this. I decided that teaching is a good path.
Over the next few years, I created many good programmers, trained several technical leaders and Scrum Masters, conducted several cycles of training for students, and as a doctoral student, I led dozens of classes. Some may say it’s a lot. However, it wasn't enough for me.
I am aware of the mistakes and shortcomings that we encounter in our schools.I know that the education system in Poland needs change. I am aware that young people do not have a reliable source from which they could acquire knowledge. I want to be a part of this change; I want to be someone who will help these high school students, university students, and young talented individuals take their first steps in the IT world, and also help those who already belong to this world but need the support of a mentor to spread their wings. I am not a politician, so I won’t change the system, but I can help by sharing knowledge on this page.
Why am I a teacher by choice? I am one because I am free. I do not earn for my daily expenses by teaching others in public schools. I have my own job, and I am a teacher out of passion. I do it because I like doing it. And if I have helped you, write me an email, and describe your story. I will be very pleased when I read that I had an impact on your success.
Doctorate
Somehow it happened that I obtained a PhD in the discipline of Technical Information Technology and Telecommunications. The PhD itself was a very interesting experience, some teaching, some research work, and some dealing with the Polish education system. On polwro I have quite good reviews, so I think I've proven myself as a teacher.
I taught classes on:
- Object-oriented programming (C++/JAVA)
- Computer Architecture (C)
- Concurrent programming (C/ADA/GO)
Flash-aware Clustered Index for Mobile Databases
Partial Indexing on Flash Memory
Flash-Aware Storage of the Column Oriented Databases
Bulk Loading of the Secondary Index in LSM-Based Stores for Flash Memory
Multi-core Adaptive Merging of the Secondary Index for LSM-Based Stores
Adaptive merging on phase change memory
If you are interested in a detailed description of what I did at the Wrocław University of Science and Technology, want to read my doctoral dissertation, want to know my story, check out here.
My setup
If you are interested in what my position looks like, what computer I have and what IDE I use, you've come to the right place.
The main computer is used for gaming, editing videos, and all the daily tasks. It is also my command center, from which I connect to the second computer. It runs Windows 11, and I also have WSL2 on it, but I don't use it too often.
- MotherBoard: Asus ROG STRIX Z790-F GAMING WIFI
- CPU: Intel Core i9 13900k
- CPU Cooling: AIO Corsair ICUE H170i Elite LCD
- Graphics card: Geforce RTX 4090 Zotac Gaming AMP Extreme AIRO
- RAM: 64GB DDR5 G.Skill Trident 6400MHz CL32
- Disk1: SSD 2TB Samsung 990 PRO
- Disk2: SSD 4TB ADATA Legend 960
- Disk3: SSD 4TB ADATA Legend 960
- Case: be quiet! Base Pro 900 REV. 2
A cheap computer was purchased as a pre-built for almost nothing. It performs well, so I don’t plan on changing it for now. I have installed Ubuntu Server 20.04 on it. As long as it's working, I don’t intend to update it to the latest version.
HP Pavilion i7-9700F
- MotherBoard: HP 843B
- CPU: Intel Core i7 9700F
- Graphics card: Geforce GTX 1660
- RAM: 32GB DDR4 Kingston 2666MHz CL18
- Disk1: SSD 500GB WDC PC SN520
- Disk2: SSD 1TB Samsung 870
My workspace is quite unusual, but it suits me best this way. As you can see, I have two computers. The first one is for gaming, video editing, and daily use. The second one is strictly for programming and running code (some doctoral-related projects even take up to 40 hours).
How do I work on both computers simultaneously? It's simple, I connect from my main computer using Remote Desktop. Both computers are connected to the router with a cable, so everything works smoothly.
In addition, to work comfortably, I have three relatively cheap, office 4K monitors. They don’t have fast refresh rates, curved screens, or other bells and whistles. However, they do have blue light filters and other features that are supposed to reduce eye strain. At least that's what the salesman and the manufacturer's website convinced me :). Either way, I am satisfied with them.
For programming, I use the popular VSCode. For every language I use, I have the appropriate extension installed, so I have nice code highlighting and reasonably well-working indexing.
In addition, I use the paid extension Github Copilot, which I highly value.
I don't use any extensions for building and running my code. I like working with a simple IDE and a terminal. Therefore, all my projects always have some simple build system, such as Makefile or CMake.
I have also used other IDEs like CLion, IntelliJ, or Eclipse in the past. These are very good IDEs, especially the first two. However, I chose VSCode in order to have one cohesive environment for all the technologies I use.
I have often been persuaded to use NeoVim. So far, I haven't been convinced to use this editor. I lack the skills to use something so powerful 🙂
You are probably wondering what tools I use and for what purpose, here is the list:
- IDE: VSCode
- Build System: Makefile / CMake
- Text editor: LaTeX – Overleaf
- Graphics: Canva pro
- Gramma fixing: Grammarly / GPT4+
- Video Recording: OBS
- Video Processing: DaVinci Resolve
My favorite games
I'm a gamer, there's no denying it. I’m not ashamed of it 🙂 What's more, I have a wonderful, loving wife who is not afraid of computers and likes to play some games with me. If I had to list all the games I have played or like, I would have to change the entire theme of the site from training to games. That's why I decided to highlight only 3 games, and I have just mentioned the names of the others that have stuck in my memory.
Below is a list of my favorite games.
Albion Online is a popular MMORPG with an isometric view and full loot PvP mode. This means that in case of death, we lose everything we have with us. The game is really good and has a lot of content. You can go and kill neutral creatures (mobs), and other players, gather resources, and even play as an economist. This last aspect caught my attention in this game. It is not excluded that we will create some projects based on this game 🙂
A game that needs no introduction in Poland. As it happens, it's a game of my childhood. I love coming back to this series every 2-3 years and playing everything from the beginning.
If anyone asks, my favorite part is Gothic 2 + Night of the Raven, and my favorite camp is the mercenary camp.
Another game of my childhood, which probably has an even larger fan base in Poland than the Gothic game. When it comes to the classic version, Heroes III, of course, the gameplay mainly focused on playing with my dad and playing through individual random scenarios. If someone chooses this title today, they probably can't imagine playing without the fan-made expansion Horn of The Abyss, which not only adds a lot of improvements but also allows playing in Online PvP mode.
When it comes to the fifth installment, in my opinion, it's the best part to play solo. Firstly, it has a great campaign, which at the highest difficulty level brings a lot of pain as well as satisfaction. Personally, I highly value the Heroes 5.5 modification, which makes a lot of changes in the game balance, which reflects very positively on the gameplay experience, and this is also visible in the campaign.
Disciples 2 is a great turn-based strategy game that, unlike the Heroes series, focuses on unit quality rather than quantity. An army can consist of a maximum of 6 people (hero + 5 units). So how to increase the strength of your army? You need to experience :). Disciples perfectly combined elements of turn-based gameplay and RPG games. Initially, a wolf or a goblin will cause us problems, but at the end of the game, defeating several dragons at the same time will not impress us.
Why else did I love this game? It is very easy. You can play as dwarves!
- Pharaon
- Settlers 3 and 4
- Hades
- Darkest Dungeon
- Slay The Spire
- Euro Truck Simulator 2
- IceWind Dale
- TES Morrowind and Skyrim
- Graveyard Keeper
- Monster Hunter
- Risen 1 + 2 + 3
- Stronghold
- Stronghold Crusader
- NO, I haven't played The Witcher, but I will definitely play it sometime 🙂