Pure and impure software engineering
Why do solo game developers tend to get into fights with big tech engineers? Why do high-profile external hires to large companies often fizzle out? Why is AIโฆ
Why do solo game developers tend to get into fights with big tech engineers? Why do high-profile external hires to large companies often fizzle out? Why is AIโฆ
6 tactics for fixing your context and shipping better agents. As Karpathy says, building LLM-powered apps means learning to โpack the context windows just rightโโsmartly deploying tools, managing information, and maintaining context hygiene.
If you need to ensure that a particular piece of data is only ever modified by one thread at once, you need a mutex. If you need more than one mutex, you need to be wary of deadlocks. But what if I told you that thereโs a trick to avoid ever reaching a deadlock at all? Just acquire them in the right order!
Recently, I revisited Resolving a year-long ClickHouse lock contention post and spoke about it at C++ Russia 2025 conference.
Programming languages typically make a distinction between normal program actions and erroneous actions. For Turing-complete languages we cannot reliably decide offline whether a program has the potential to execute an error; we have to just run it and see.
When Staff+ engineers transition from a team lead to an org-level lead, the increased ambiguity often leads to feeling lost and overwhelmed. This article explores the "Performance Cliff" phenomenon and offers practical strategies to adapt, stay organized, and redefine success in a leadership role.
What would happen if we didn't use TCP or UDP?
Visualize Ownership and Lifetimes in Rust. Contribute to cordx56/rustowl development by creating an account on GitHub.
An explanation of what algebraic effects are and why they are useful for managing side effects
I figured out a really simple pattern for experimenting with new Python packages today:
tl;dr: yes, although I found an approach without ZWJ. In fact, you can encode data in any unicode character. This sentence has a hidden message๓ ๓ ๓ ๓ ๓ ฉ๓ ๓ ๓ ฉ๓ ๓ ฅ๓ ๓ ๓ ๓ ฅ๓ ๓ ๓ ๓ ค๓ ๓ ๓ ๓ ๓ ๓ ๓ ๓ ๓ ๓ ๓ ๓ ๓ ฃ๓ ฃ๓ ๓ ๓ ๓ ๓ ๓ ๓ ๓ ค๓ ๓ ๓ ๓ ค๓ ๓ จ๓ ค๓ . (Try pasting it into this decoder)
Experiments and Tailored Tooling for High Fidelity Web Archives.
Jujutsu (jj), a new version control system written in Rust, has popped up on my radar a few times over the past year. Looked interesting based on a cursory look, but being actually pretty satisfied with Git, and not having major problems with it, I havenโt checked it out. That is, until last week, when I finally decided to give it a go! I dived into a couple blog posts for a few of hours, and surprisingly (noting that weโre talking about a VCS) I found myself enjoying it a lot, seeing the consistent design, and overall simplicity it managed to achieve.
CedarDB is a relational-first database that supports all your workloads, from transactional to analytical to graph, accessible through PostgreSQL's tools and SQL dialect.
An interesting twist in my recent usage of SQLite was the fact that I noticed my research scripts and the database intertwine more. SQLite is unique in that it really lives in-process, unlike standalone database servers. There is a feature to that which does not get used very frequently, but can be indispensable in some situations. By the way, the talk about the system that made me me to explore SQLite in anger can now be seen here. Normally it is your Ruby (or Python, or Go, or whatever) program which calls SQLite to make it โdo stuffโ. Most calls will be mapped to a native call like sqlite3_exec() which will do โSQLite thingsโ and return you a result, converted into data structures accessible to your runtime. But there is another possible direction here - SQLite can actually call your code instead.