Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
Vim's speed is not really the point (2013)
I am a Vim user. And a Vim fan.I was fiddling around for some time, you know, just knowing the basics, because it is convenient to do small changes on servers without having to worry about installi…
Monads in JavaScript
Monad is a design pattern used to describe computations as a series of steps. They manage side effects in pure functional languages but can also be used in other languages to control complexity.
Rethinking Infrastructure as Code from Scratch
Recently I’ve been thinking a lot about infrastructure complexity, and the current state of infrastructure as code. This is problem space that many talented people are tackling.
Things nobody told me about being a software engineer
My dad started teaching me Basic when I was about 7 years old, and since about that age I knew that I wanted to build software for a living. It was obviously a fun and useful thing to do, and something that I could do well. But there is a big — and I mean Grand Canyon-scale BIG — difference between “programming” and…
What docs-as-code means
I’ve recently started a new job as a documentation engineer. While my work is largely the same as that of a technical writer, …
Iterators in Go: A proposed extension
Iterators in Go are a neat way to write “lazy loops”, where we never generate more results than we actually use. Let’s see what that would look like in Go programs, and what new facilities it gives us in the standard library.
Rust Optimizations That C++ Can't Do
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
Performance Showdown: Rust vs Javascript (2020)
After spending some weeks playing with Rust, I felt ready to test my skills and try some programming challenges in the [Advent Of Code](https://adventofcode.com/). My approach to tackle some of those challenges was to solve them using Javascript (I use it in my day to day) first and then port the code to Rust. While…
A monorepo misconception – atomic cross-project commits
Are cross-project changes in a single atomic commit the key advantage of monorepos? I do not think so.
WSL2 – Installation Tutorial for Graphical Windows Subsystem on Linux
In 2001, Microsoft's former CEO— Steve Ballmer— was quoted by the online tech news publication, The Register, saying: Linux is a
Windows Timer Resolution: The Great Rule Change
The behavior of the Windows scheduler changed significantly in Windows 10 2004 (aka, the April 2020 version of Windows), in a way that will break a few applications, and there appears to have been …
The JavaScript ecosystem is a hot mess and so is software development
Nightmare scenario with the Javascript ecosystem mess
Mkfile(8) is severely syscall limited on OS X
When I got my brand-new MacBook Pro (late 2016), I was interested in testing out the phenomenal SSD performance I had been reading about, r...
Boolean parameters to API functions considered harmful (2011)
The problem is that the last param to xhr.open is whether the xhr is async . Ouch.
Problems with Go Get
T-Minus 15.193792102158E+9 years until the universe closes!
Version control second coming
The very same week we signed our first ever angel investor for Plastic SCM, in early summer of 2005, Linus Torvalds announced Git. I had spent more than a year pitching investors to build a new version control, and suddenly the creator of Linux was building one himself. That week I understood the road ahead was going…
Fast Fibonacci Algorithms (2015)
Definition: The Fibonacci sequence is defined as \(F(0) = 0\), \(F(1) = 1\), and \(F(n) = F(n-1) + F(n-2)\) for \(n ≥ 2\). So the sequence (starting with \(F(0)\)) is 0, 1, 1, 2, 3, 5, 8, 13, 21, ….
Me an' Algernon – grappling with (temporary) cognitive decline
Originally published May 20, 2015.
In JS functions, the ‘last’ return wins
An edge case has convinced me it's the 'last' return that always wins…
Why, oh why was this added?
In this post, I take you on a debugging journey and show you why it might be a good idea to add a comment next to a certain method.
CR+LF Has a Long History
The ASR33, like most teletypes of the era, works at a fixed rate. It does 10 characters per second. It is 110 Baud, using 1 start, 8 data (i...
Abstraction, not syntax
Alternative configuration formats solve superficial problems. Configuration languages solve the deeper problem: the need for abstraction.