Topics /

Software Engineering

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

2019
484

Idiomatic Monads in Rust

A pragmatic new design for high-level abstractions Monads (and, more generally, constructs known as “higher kinded types”) are a tool for high-level abstraction in programming languages1. Historically, there has been a lot of debate inside (and outside) the Rust community about whether monads would be a useful…

485

The Principles of Versioning in Go

This blog post is about how we added package versioning to Go, in the form of Go modules, and the reasons we made the choices we did. It is adapted and updated from a talk I gave at GopherCon Singapore in 2018 .

497

A hiring test I'd like to run

(For the avoidance of doubt, I have nothing to do with hiring at my employer. This test is probably deeply problematic in ways you'll angrily Tweet me about.) I'd like to tell you a story! I am a teenager applying for temp jobs. It's the late 1990s and the temp agency have asked me to take a Microsoft Office test. You…

499

Notes on Type Layouts and ABIs in Rust

Over the years I’ve found myself with a weird amount of knowledge about how types and ABIs in Rust work, and I wanted to write it all down in one place so that… it’s written down in one place. Much of this information can or should be found in the Rust Language Reference and the Rustonomicon .

504

UTF-8 String Indexing Strategies

When designing or, in some cases, implementing a programming language with built-in support for Unicode strings, an important decision must be made about how to represent or encode those strings in memory. Not all representations are equal, and there are trade-offs between different choices.

505

It’s Time for a Modern Synthesis Kernel

I had a student (Fred Smith) who worked on extensions to Popcorn (the predecessor to Cyclone) that supported run-time code generation in a lightweight fashion. Here’s a paper describing part of the system: https://ecommons.cornell.edu/handle/1813/5812 . Fred’s thesis had a bunch more.

508

ML from Scratch, Part 2: Logistic Regression (2018)

In this second installment of the machine learning from scratch we switch the point of view from regression to classification: instead of estimating a number, we will be trying to guess which of 2 possible classes a given input belongs to. A modern example is looking at a photo and deciding if its a cat or a dog.