
Colin Breck


Of anything I’ve worked on in my career, performance work has been the most rewarding. I enjoy making systems more efficient, especially when it opens up brand new possibilities for customers. I also find developing an empirical understanding of systems is one of the best ways to learn how systems work from first principles, especially how complex systems interact, at scale, or under load. But on…

If things are not written down, there is no way for a language model to operate on this knowledge.

Dave Farley’s book Modern Software Engineering explores the question: Is software engineering real engineering? Farley’s conclusion is yes, when the work is performed by applying a set of broadly accepted and repeatable practices that scale and lead to quality outcomes. Unfortunately, a lot of software is developed, tested, and operated without following such disciplined practices. Farley categor…

To deal with the probabilistic nature of AI, we should focus on determinism to define success.

Object storage offers exceptional durability and scalability, while the clean separation of storage from compute provides superior operational flexibility.

What it means to be productive in this industry has changed forever and continues to change rapidly.

If you don’t trust the intuitive systems thinkers in your organization, you are likely deleting the wrong things when it comes to simplifying software design.

This article is a companion to my talk Rust Is Not as Safe as You Think It Is: Improving Safety and Reliability in Rust. Rust is an increasingly popular systems programming language, partly due to the memory-safety guarantees enforced both at compile-time and at run-time. Memory safety is not enforced in unsafe Rust, but for an application developer like myself, the need to use unsafe Rust is exc…

Statically compiling DuckDB can improve security, improve startup time, and support offline environments.

Whenever invariants can be expressed as proofs rather than as tests that may or may not be exhaustive, the mathematical guarantees of model checkers will provide stronger assurances the code is correct.

This article will look at tools for verifying unsafe Rust code, including unsafe code called from libraries written in C or C++.

There are significant changes happening in distributed systems. Object storage is becoming the database, tools for transactional processing and analytical processing are becoming one in the same, and there are new programming models that promise some combination of superior security, portability, management of application state, or simplification. These changes will influence how systems are oper…

At many companies, career progression is described by parallel engineering and management tracks. An engineer progresses by gaining more experience, addressing progressively more complex technical challenges, and having increasing influence over technical direction, architecture, technology trade-offs, quality, culture, and execution. Similarly, a manager progresses by supervising more people, ha…

