Design Docs at Google
One of the key elements of Google's software engineering culture is the use of design docs for defining software designs. These are...
Go's Tooling Is an Undervalued Technology
Regardless of your opinions of the Go programming language , the primary implementation of Go, gc, is an incredible piece of software engineering. Everyone ought to be blown away by it! Yet not only is it undervalued in general, even the Go community itself doesn’t fully appreciate it. It’s not perfect, but it has…
Linux containers in a few lines of code
Trying to figure out how Linux containers work by implementing them from scratch in C.
Stopping phishing campaigns with Bash
Personal Blog of Christian Haschek
Help Message for Shell Scripts
I share what I know.
Zig's New Relationship with LLVM
While not yet at version 1.0, Zig is about to reach a new level of maturity and stability.
Is TDD Dead? (2014)
A series of conversations between Kent Beck, David Heinemeier Hansson, and Martin Fowler. We discuss Test-Driven Development (TDD) and its impact upon software design.
95th percentile isn't that hard to reach
Reaching 95%-ile isn't very impressive because it's not that hard to do. I think this is one of my most ridiculable ideas. It doesn't help that, when stated nakedly, that sounds elitist. But I think it's just the opposite: most people can become (relatively) good at most things.
Developer and Power Users Tool List for Windows
Can you believe it's been 6 years since my last Tools list? Tools have changed, ...
Why's (Poignant) Guide to Ruby (2004)
Pretend that you’ve opened this book (although you probably have opened this book), just to find a huge onion right in the middle crease of the book. (The manufacturer of the book has included the onion at my request.)
Advanced SQL and database books and resources
For people who've worked through Mastery with SQL , a common question I get is "What's next?" If you completed the course and all 150+ exercises, at this point you'll have a very strong grasp of SQL and should be comfortable writing all sorts of complex queries. However, there's more to working with databases…
Stages of denial in encountering K
It is a lazy Tuesday afternoon. Perhaps you were idly browsing your favorite news aggregator, or visiting The Orange Website to wade through murky startup groupthink in search of interesting links.
React is becoming a black box
The VP of Engineering at Cognition, the applied AI lab behind Devin. Building the future of software engineering with AI.
The best Parts of Visual Studio Code are proprietary
I've been very surprised and delighted over a number of years now by Microsoft's strong efforts in open source. I understand the skeptics, I was on Slashdot when they tried to sue Linux out of existence and I think only time will tell. I figure MS contributing is better than them hunting Linux distributions for sport…
Essays on programming I think about a lot
Computers can be understood • Choose Boring Technology • The Wrong Abstraction • Falsehoods Programmers Believe About Names • The Hiring Post • The Product-Minded Engineer • Write code that is easy to delete, not easy to extend • The Law of Leaky Abstractions • Reflections on software performance • Notes on…
Building a patient monitoring system with Go and Vue in 3 days
We helped frontline to fight against covid-19 by creating a Realtime Patient Monitoring system. In this blog post you can find out how we did it using go and vuejs
Writing a SQL database from scratch in Go
Writing a SQL database from scratch in Go: 1. SELECT, INSERT, CREATE and a REPL
1195725856 and other mysterious numbers
Last week was the final week for this half's performance review at Facebook, where we write summaries of work and impact we and our peers had over the last h...
Is WebP really better than JPEG?
If you have used tools like Google’s PageSpeed Insights, you probably have run into a suggestion to use “next-gen image formats”, namely Google’s WebP image format. Google claims that their WebP…
14,000x Speedup (2015)
In my job as a scientific software developer, I tend to write a lot of code. And most people who haven’t been through a Computer Science degree tend to think that CS is “just” about slinging code at the screen and then running it. I have a good working relationship with many of my colleagues and co-workers with other…
Getting started with bare-metal assembly
Seeing a program you wrote running directly on the bare metal is deeply satisfying to anyone who enjoys writing software. And it turns out that creating such a program from scratch is easier than it sounds. The hardest part is figuring out where to start. In this tutorial, I'll show you how to write, build and run the…
An Interactive Introduction to Fourier Transforms
Fourier transforms are a tool used in a whole bunch of different things. This is a explanation of what a Fourier transform does, and some different ways it can be useful.
Why Learn Awk? (2016)
Jonathan Palardy's blog about technology
Things I Believe About Software Engineering
Inspired by Jan Stette's "Things I Believe" post, I decided to write down some of the more contentious beliefs I have about software engineering. I've selected some of my more extreme opinions here, so I expect reasonable people to disagree with me. That's ok.