Joined October 2012
240 Photos and videos
Pinned Tweet
I’m considering my next career step and would be happy to hear about interesting remote backend/infra roles. My background is mostly in Elixir/Erlang/OTP, distributed backend systems, Kubernetes, observability, and telecom/AAA platforms. I’m especially interested in technically strong teams working on infrastructure, observability, databases, Kubernetes, or distributed systems. I’m based in GMT 5 and open to working with teams across compatible time zones. If your team is hiring for something similar, feel free to DM me or point me to the right person.
1
6
19
6,098
While writing linux-insides, especially the early boot chapters, I was always annoyed by how non-trivial it is to debug early kernel code. So I decided to have some fun and build a tiny VM with a built-in debugger: something that can boot a kernel and let me inspect and visualize kernel internals nicely at every stage I would like. For now I "can" boot the kernel! Well, ok, it does not boot yet, rather fails beautifully 😀 But I can already see early debug output from linux kernel setup code inside my little vmm If you like or interested as I in Linux internals, bootloaders, kernels, virtualization, or want to help shape this into executable linux-insides chapters - follow along.
1
1
38
1,748
From time to time I get emails with questions related to Linux and linux-insides. Recently, more and more often I get the same question: Why am I still spending time and efforts on this, considering that one can just ask an llm and get a fast answer? Ehhh... I will try to answer it here once, so I can refer to it next time. I started writing linux-insides many years ago. LLMs did not exist yet. I was curious. I was deeply interested in how things work. I wanted to know. For me, it was never only about getting an answer. It was not like this back then, and it is not like this now. I am an engineer. I like to read source code. I like to write source code. I like trying to understand the author's way of thinking, getting confused, trying again, and finally having this feeling "hey, now I see what it means". I do not fully understand recent claims like "writing code manually does not make sense anymore" or "the era of humans writing code is over". For me it is not over. I like to write code manually. I like to read code myself. I still have a lot of fun doing it. An LLM is a great tool. It has simplified my professional life a lot. Yes, it can answer a question. It can write code faster than me, and sometimes better than me. Probably it can also explain things better than me. But it does not discourage me from doing what I like to do. The point is not only to get the answer. The point is to learn, to go deeper, to slowly make things clear for yourself, and of course enjoy the process. Have fun doing what you like to do. Do not let anyone convince you that your curiosity is obsolete.
3
6
29
1,743
Alex Kuleshov retweeted
This saturday I'm digging into how the go reflect package gets you the types information. Spoiler: it doesn't compute them. The compiler serialized your types into your binary. reflect just reads them with pointer arithmetic. The article will be out this Monday If you want it in your email, subscribe: internals-for-interns.com/ne…
6
63
2,166
cr4 is not an ordinary register. Reading it is a serializing operation
1
37
2,629
Linux sometimes needs to change individual cr4 bits while preserving the rest, including during TLB flushes and some context switches. So instead of reading cr4 each time, the kernel reads a per-CPU copy and updates both values when the state changes. Sometimes even CPU registers benefit from caching.
31
2,498
Did you know that reading from memory can be cheaper than reading from some CPU registers? While updating the linux-insides, I noticed that the kernel reads cr4 and stores a shadow copy in a per-CPU variable. Why cache a CPU register in RAM?
4
9
199
19,493
Well, that was a short fable
3
386
Alex Kuleshov retweeted
I spent way too much time to write a thing - "Anatomy of a Syscall" follows a Linux read syscall from userspace to kernel and back Link: pwnmonk.github.io/blogs/anat… #linux #kernel #exploitdev

10
52
2,195
it reminds me how I debugged a test failing only at 29th February
Backend interview question: Your UUID generator has never produced a duplicate. 3 years. 300 million records. Today it did. Mathematically, it shouldn't happen. But it did. What's the first thing you check?
8
2,823
Comments are best documentation...
2
12
2,850
Alex Kuleshov retweeted
If you're prepping for an infra, DevOps, or platform engineering interview - or just want to dig deeper into Linux, Docker, Kubernetes, and networking - check out labs.iximiuz.com. It's a learning-by-doing platform with Linux playgrounds and hundreds of hands-on problems.
1
13
68
6,131
C code is never harmless
this c code looks harmless on first glance but mimics one the most famous & dangerous bugs in OpenSSL. It's not your typical buffer overflow exploit but much worse in reality. can you tell why is it so?
2
1
42
4,889
Alex Kuleshov retweeted
Nice to see multi-producer/single-consumer lock-free queue based on my design used for #iouring in the #Linux kernel: lore.kernel.org/all/20260611… The original design for non-intrusive/intrusive MPSC queues from 2008: groups.google.com/g/lock-fre… cc @axboe

4
30
181
11,321
Anthropic spent ~2 billion input tokens on a C compiler I am not sure he can afford the C version
I am yet to see someone trying to write a C compiler using AI 👀
11
1,234
As always, an awesome read, especially if you’re just starting to get into rust
Published another article on learning Rust series. In this article, you'll learn about Concurrency and Threads in Rust by building a Thread Pool in Rust from Scratch I hope you'll enjoy this. See you soon with another one
1
10
114
10,631
Waiting for CI... What are you busy with?
1
337
A release of a new model does not count without this tweet
fable 5 just refactored my entire codebase in one call 67 tool invocations. 1M new lines. 24 brand new files it modularized everything. broke up monoliths. cleaned up spaghetti none of it worked but boy was it beautiful
1
4
802
One thing I really appreciate about coding agents - no more flaky tests. Or at least they are much easier to eliminate. Such failures used to survive because fixing them always was annoying, complex, and the win did not feel that big. At least at first glance. A test fails once every 43 random(0, 100) / pi runs because of some subtle timing issue. Locally - not reproducible. Rerun CI - green. Familiar? Can bet that it is ;) Now I just give it to an agent. Yes, maybe this is not the most exciting use of AI, but it removes very annoying part of software engineering
2
3
698
The most effective prompt engineering technique I have found so far
1
1
9
995
Link to the thread - news.ycombinator.com/item?id…

1
756