Welcome on my personal blog.

The main reason why I started to write a blog was to systemize my knowledge, and improve writing skils. You can find here materials mainly related to System Engineering: Computer Architecture, Low Level Programming, Operating Systems concepts such as: Networking, Storage, Security, Virtualization.

Blog

After reviewing some of my past work I realized that I have a lot of materials that can be easily divided into two areas: overview of some topic and deep technical dive in. These two categories are: tutorials and presentations. Thus I decided to use them as main filters for materials that you can find on this blog (and as 2 categories on the left).

Presentations

Here I mainly publish things that I have presented in the past during meetups or conferences so it can be easily found. Sometimes I put additional descriptions or explanation if needed.

Tutorials

Tutorials contains deep dive down into some specific topic such framework tool or code. My goal usually is to provide usefull examples as well as understanding of the topic so after reading tutorial reader can have solid base for doing own independent work in such area.

About me

Intro

I always wanted to describe myself as an engineer. Well, maybe not always but definitely since the college. When you try to define what ‘engineer’ actually means, you will probably evoke this definition from Wikipedia:

An engineer is a professional practitioner of engineering, concerned with applying scientific knowledge, mathematics, and ingenuity to develop solutions for technical, societal and commercial problems. Engineers design materials, structures, and systems while considering the limitations imposed by practicality, regulation, safety, and cost. The word engineer is derived from the Latin words ingeniare (“to contrive, devise”) and ingenium (“cleverness”).

I really like this definition. In my opinion the best part of it, is about using knowledge to develop solutions to particular technical problems.

Bio

I started my engineering career during my university time in what is usually called Embedded Devices. Small engineering department responsible for developing medical devices. Using self written bare betal or Real-Time OS on small microcontrollers with peripherals, sometimes running embedded Linux. During that time I got excellent opportunity to do almost everything related to electronics that my company produced: from soldering and fixing broken wires to trying adjust UI on small LCD’s to meet requirements of sales department.(I always prefered to burn myself with the soldering iron over the creating UI, it is just much less painful for me). Sometime after I mastered the art of wire wraps and soldering iron, I got an opportunity from my university to join the scientific project. The project about modelling hydrodynamics processes using code written in NVIDIA CUDA. That was an impressive experience as it required from me to invariably operate on 4D matrixes, which changed my spatial imagination forever. But as unfortunately, as often happens with scientific projects they can silently die. So I came back to embedded systems for a while, until my curiosity pushed me to application development. Application development is one of the certain subjects: some people love it, others hate it. To be accurate, I learned a lot during the application development. Things related to design patterns, different programming paradigms or server site architecture. However, after some time, I understood that I don’t want to do feature development for the rest of my life. I started exploring other areas as a security and system programming, cool stuff essentially. After some time, I was lucky enough to get an opportunity in system development. I quit my backend developer job and merrily switched. Something remarkable appeared after a few months. I believe that was a point in my life when I realized that I am in the proper place. Over the time I got some brilliant opportunities to work on Networking Stacks, Crypto Libraries, System Performance and File Systems, for which I am very thankful to my former employers.

Interests

Topics I’m mainly interested in: Operating Systems, Calculations and Parallel Computing, Low Level Software, Security/Vulnerabilities, Networking (not only Internet), Cryptography, Artificial Intelligence (Mainly Neural Networks) and everything else that gets my brain to think and attracts my attention :) I mainly write code in C, C++, Python and Rust. I know couple more but not good enough to list them here.

Goal of this blog

At the end of this first introductory post, I want to evoke two statements from really good post that I came across a few years ago:

From “3 Things that I Wish I Would Have Known When I Started My Software Development”

There is no “right way” in software development Always have a side project Putting everything learned together

So I simply treat my blog as a side project, where I am trying to put and order things that I learned together.

If you are interested in collaboration or simply you would like to know the guy who is writing all of these nonsenses you can find my resume here.