High school student
With passion in software engineering, learning new things and improving own skills.
With passion in software engineering, learning new things and improving own skills.
I learnt Assembly for targeting security vulnerabilities and reverse engineering C programs by disassembling the executables. I experienced x86 syntax on my desktop and AMD syntax on my laptop. Reverse engineering and security reporting were also one of my tasks at work. Overall it accelerated my learning process by knowing how simple statements are represented in instructions that are executed on the CPU.
I mainly use C/C++ at work for programming systems that help companies infrastructure in the security manner. As a preference, I like to develop in pure C. Although for more complex implementations, I tend to reach for C++. I am in favor of strict coding style rules for these languages for better readability in a single codebase. For now I am really passioned in implementations of multithreaded tools on top of Linux kernel's io_uring async I/O interface.
When it comes to memory safe programs on a system level I have explored Rust. I enjoy its sophistication and abilities that the language gives me. I take advantage of it for programs with async calls, complex structure behavior or string manipulation. Rust is currently my main arsenal for upcoming open source projects.
Golang is the language in which I wrote my graduation project that is focused on a network protocol. I really like its runtime, I think that's the main part where it excels. Its built-in support for parallel computing comes really handy to me. I am looking forward to experience the language more for server-side applications, CLIs or maybe webdev.
I implemented some data structures and algorithms in Zig for learning and I found out the language being very interesting. I also learnt the language concepts thanks to ziglings.org. I am really looking forward to experience the language more as I can see some great software being written in it like ghostty.
At school we learn Java, but I prefer to develop its applications in Kotlin. I have this preference mainly for its null safety and functional patterns, because I am not a fan of OOP with forced inheritence. I experienced the language on large project in Mainware when we had a school internship and I learnt a lot during that time.
I found out knowing Bash very useful. It really helped me with my development productivity for automation tools and to learn less known Linux commands that are very handy to have in own toolbelt. I experienced writing useful Bash scripts also at work for better testing and build system.
I choose Python for scripts that require complex data representations, string manipulation or more programatic logic. The language is very useful as I find out more how other modern languages relate to it. I am currently also passioned in learning more about the development of LLMs and how the deep learning frameworks are implemented.
I got into Lua thanks to Neovim. Its speed and simplicity to learn makes it really stand out. I am looking forward to create custom plugins for my Neovim editor to improve my development environment. It also gives me the ability to create scripts for embedding into own software.
I run Linux on my both machines with Fedora being the distribution of choice. The ability of adapting the distribution for my personal needs helped me to create an environment where I can be really productive. As a desktop environment I personally prefer KDE over GNOME. And my goto for graphics platform is always Wayland.
As an editor I use Neovim instead of Vim due to its customization and scripting mainly with Lua instead of VimScript. Learning to program with Vim was the best choice I could make as a programmer, because it was the most rewarding. There is always a way to improve and I try to find those improvements when I work on projects. Neovim really gave me the ability to adapt the editor for my personal needs.
When it comes to terminal multiplexing in a neat way, I always use Tmux. It also gives me the ability to search and copy the terminal output in Vim-like environment thanks to its configuration. It got me into Shell scripting due to many automation ideas with it for better productivity.
My projects are currently in its early development, but I plan to open source its stable versions this summer on my GitHub. I will be mentioning them in this section and maybe creating a blog post about them on Root.cz.