Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 994 posts.

2020
306

How do Unix pipes work?

Pipes are cool! We saw how handy they are in a previous blog post . Let's look at a typical way to use the pipe operator. We have some output, and we want to look at the first lines of the output. Let's download The Brothers Karamazov by Fyodor Dostoevsky, a fairly long novel.

310

Let’s Build a Video Card

In these videos, I talk about how VGA signals work and build a circuit that provides the correct timing of sync signals so that a monitor recognizes the signal and displays an image stored on an EEPROM.

311

Fast UTF-8 validation

One of the most common "data type" in programming is the text string. When programmers think of a string, they imagine that they are dealing with a list or an array of characters. It is often a "good enough" approximation, but reality is more complex. The characters must be encoded into bits in some way. Most ……

312

Two Years with Rust

It’s been just over two years since I started learning Rust. Since then, I’ve used it heavily at my day job, including work in the Firecracker code base, and a number of other projects. Rust is a great fit for the systems-level work I’ve been doing over the last few years: often performance- and density-sensitive…

313

Algorithms Interviews: Theory vs. Practice

When I ask people at trendy big tech companies why algorithms quizzes are mandatory, the most common answer I get is something like "we have so much scale, we can't afford to have someone accidentally write an O(n^2) algorithm and bring the site down" 1 . One thing I find funny about this is, even though a decent…

315

Game Programming Patterns: Event Queue (2014)

Unless you live under one of the few rocks that still lack Internet access, you’ve probably already heard of an “event queue” . If not, maybe “message queue”, or “event loop”, or “message pump” rings a bell. To refresh your memory, let’s walk through a couple of common manifestations of the pattern.

321

Names are not type safety

Haskell programmers spend a lot of time talking about type safety . The Haskell school of program construction advocates “capturing invariants in the type system” and “making illegal states unrepresentable,” both of which sound like compelling goals, but are rather vague on the techniques used to achieve them. Almost…

322

Lovely Week with Elixir

Context It’s not often I get excited about programming languages since meeting Ruby in 2015. Way before that, drowning in misery of writing university course works in Java, has pushed me away from development. Ruby’s freedom and expressiveness was what pulled me back, and its style has kept me in. I was on the lookout…

325

Cognitive Biases in Software Development

A couple of years ago, I started my first job as a programmer. On the first day, I entered the office, sat in my new chair, turned on the computer, checked out a project from the version control system and opened it in IDE. The first-ever piece of the code I saw looked like that: // TODO it works, but it's ugly…

328

Simdjson 0.3: Faster JSON parser

Last year (2019), we released the simjson library. It is a C++ library available under a liberal license (Apache) that can parse JSON documents very fast. How fast? We reach and exceed 3 gigabytes per second in many instances. It can also parse millions of small JSON documents per second. The new version is much ……