B-Trees: More than I thought I’d want to know – Recently, I’ve been reading through the excellent Database Internals (Alex Petrov, 2019). The first half of the book is dedicated to the implementation of database storage engines – the subsystem(s) of a DBMS that handles long-term persistence of data. A surprising amount of this section discusses the implementation and optimization of various B-Tree data structures.
How writing can advance your career as a developer – In their first few years on the job, engineers spend roughly 30% of their workday writing, while engineers in middle management write for 50% to 70% of their day; those in senior management reportedly spend over 70% and as much as 95% of their day writing.
Common antipatterns in Go web apps – “The biggest challenge web apps face is not becoming an unmaintainable Big Ball of Mud.” Miłosz Smółka discusses how to avoid that eventuality in Go.
Best practices for writing code comments – Everyone has advice on writing good code. But comments? Crickets. A bad comment is worse than no comment at all. So here’s some advice on how to write better comments.
C or Rust? – Dan Pittman pits C against Rust for use in programming hardware abstractions.
3 Future Programming Languages You Should Learn Between 2022 and 2030 – The programming languages that could dictate the world in the coming years.
10+ Github Repositories You Should Know as a Developer – some great repositories that every developer should be aware of.
Practical API Design at Netflix, Part 1: Using Protobuf FieldMask – The start of a series on API design, based around gRPC. The first post focused specifically on using Protobuf FieldMask.
Taming Go’s memory usage; or, how we avoided rewriting our client in Rust – Mark Gritter describes his “25 days in the depths of despair and the details of Go memory management, trying to get our memory footprint to an acceptable level.”
Service reliability math that every engineer should know – For a service to be up 99.99999% of the time, it can only be down at most 3 seconds every year. Unfortunately, achieving that milestone is a herculean task, even for the most experienced site reliability engineering teams.
Microservice Roadmap – this journey define a road map for microservice architectur learning curve.
Kubernetes best practices – In most cases, you learn to use platforms to meet the current business need or on standalone projects. The silver lining is the encouragement of learning and at some point this becomes knowledge, however, hands-on work can lead to cuts in paths that later cause a series of problems in productive environments. Therefore, the purpose of this guide is to help with the learning curve, helping to prepare a more stable, reliable and functional environment.
SRE deep dive into Linux Page Cache – A deep dive, multi-page, look at Linux Page Cache. If you’re administering Linux machines then understanding this can help with debugging various IO issues.
Common Kubernetes Errors Made by Beginners – Kubernetes is a lot when it comes to operating a new system. This post is a good set of common beginner errors.
How do you set latency-based alerts? – “The most common measurement is a percentile-based expression like: 95% of the requests must complete within 350ms. But what do you alert on: 1) only 90% are below 350 ms or 2) 95% take 400 ms?” Read more here.
Life before Unicode – Unicode definitely added a lot of complexity to string handling, and people who use languages with ASCII alphabets exclusively may think it’s unjustified. However, I’m a non-ASCII language speaker who’s old enough to remember the alternatives, and the alternatives are far worse than the complexity of Unicode.
My favorite computer science papers – This is not a you should read these papers kind of post, it’s a curated list of great computer science papers that I’ve enjoyed reading and re-reading over the past years.
The 10 highest-paying programming languages – From Kotlin with an average salary of US$136,575 down to F# at US$82,500, Analytics Insights lists the 10 top-paying programming languages.
“If software engineering is in demand, why is it so hard to get a software engineering job?” – Instead of providing a cliche response about the difference between developers and engineers, this legend pokes fun at the entire interviewing process. If you expand the other threads in this post, you will see a few arguments about whether or not the software engineer interviewing process is flawed.
The (right) business model of open source – In this Changelog podcast, Adam Jacob, cofounder of Chef, talks about open source business models (and the model he thinks is the right one to choose), his exit from Chef, some of the details behind Chef’s acquisition in 2020 for $220 million (in cash), and how those events changed (or didn’t change) his perspective on open source.