Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,819 posts.
No management needed: anti-patterns in early-stage engineering teams
Sharing a reluctant, "node & postgres" approach to engineering management for early-stage startups
We are stuck with egrep and fgrep (unless you like beating people)
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Nix: An idea whose time has come
Joe Armstrong once described Erlang as the quest for programs you “write once, run forever.” Nix, conversely, might be one that runs wherever, whenever.
Accident Forgiveness
Charging for resources you didn't mean to buy is bad business.
“Design Patterns” Aren't (2002)
The "design patterns" movement in software claims to have been inspired by the works of architect Christopher Alexander. But an examination of Alexander's books reveals that he was actually talking about something much more interesting.
Microservices are a tax your startup probably can't afford
Why splitting your codebase too early can quietly destroy your team’s velocity — and what to do instead.
Web components will outlive JavaScript frameworks
If we're building things that we want to work in five or ten or even 20 years, we need to avoid dependencies and use the web with no layers in between.
Making Games
In March 2018, I had been a full-time indie game developer for four years. My heroes were Jonathan Blow, Lucas Pope, and Robyn and Rand Miller. I had 2,500 Twitter followers, an ambitious title under my belt with thousands of sales, and a free office in a hip coworking space near downtown Columbus, generously provided…
Towards a JavaScript Binary AST
In this blog post, I would like to introduce the JavaScript Binary AST, an ongoing project that we hope will help make webpages load faster, along with a number of other benefits. A little background Over the years, JavaScript has grown from one of the slowest scripting languages available to a high-performance…
NIH is cheaper than the wrong dependency
Frivilous dependencies are the enemy of maintainability.
QEMU v4.0.0 released
We would like to announce the availability of the QEMU 4.0.0 release. This release contains 3100+ commits from 220 authors.
Node.js is now available on App Engine standard environment
Developers love Google App Engine ’s zero-config deployments, zero server management and auto-scaling capabilities. At Google Cloud, our goal is to help you be more productive by supporting more popular programming languages. Starting today, you can now deploy your Node.js 8 applications to App Engine standard…
Perfect email regex finally found
Finding the best regular expression for validating e-mail addresses
TIL: Versions of UUID and when to use them
About a month ago [1] , I was onboarding a friend into one of my side project codebases and she asked me why I was using a particular type of UUID. I'd heard about this type while working on that project, and it's really neat. So instead of hogging that knowledge for just us, here it is: some good uses for different…
Introducing Google Cloud Container Builder
At Google everything runs in containers, from Gmail to YouTube to Search. With Google Cloud Platform (GCP) we're bringing the scale and developer efficiencies we’ve seen with containers to our customers. From cluster management on Google Container Engine , to image hosting on Google Container Registry , to our…
The pedantic checklist for changing your data model in a web application
Let's say you have a web app with some database. In your database you have an Invoice model, where you store things you are charging your customers.
Zulip 2.0: Open source team chat
We’re excited to announce the release of Zulip Server 2.0, containing hundreds of new features and bug fixes. Zulip is the world’s most productive team chat software, used by thousands of teams as an alternative to Slack, HipChat, Mattermost and IRC. Zulip’s unique topic-based threading combines the …
Hstore development for 9.4 release
I returned back home from PGCon.EU-2013 conference, Dublin, Ireland, where we gave two talks - Next Generation of GIN and Binary storage for nested data structures and application to hstore data type . These projects as well as visiting the conference (I, Teodor Sigaev and Alexander Korotkov) were…
Correlated randomness in Slay the Spire 2
Here are three true statements about the game of Slay the Spire 2 (in single player): If you pick Neow's Bones in the Underdocks, the random curse is ~54% likely to be Debt.* It is impossible to receive Rebound from the Trash Heap event. Your first fight is 76% likely to drop a potion in Underdocks, and 4% likely to…
Blocking Visual Studio Code embedded reverse shell before it's too late
Visual studio code tunnel Introduction Since July 2023, Microsoft is offering the perfect reverse shell, embedded inside Visual Studio Code, a widely used …
Detecting a PS2 Emulator: When 1*X does not equal X
Using an odd floating point error to detect emulators
SIMD-accelerated computer vision on a $2 microcontroller
An accelerated FAST feature detector for the ESP32-S3 leveraging 128-bit SIMD instructions, achieving ~2x the performance of the reference implementation.
Transcribing Piano Rolls, the Pythonic Way
In this post I use Fourier transforms to revive a forgotten Gershwin piano piece. Piano rolls are these rolls of perforated paper that you feed to …
Everyone Who Tried to Convince Me to Use Vim Was Wrong
A couple weeks ago, I took the plunge and switched to vim (MacVIM, to be precise). It wasn't the first time I tried to make the switch, and I had pretty much written it off entirely. Why? Because the past few times I tried switching to vim, I took