Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,533 posts.
Things I wish I knew about MongoDB a year ago
I’ve used MongoDB for over a year at scale at both Heyzap and Bugsnag and I’ve found it to be a very capable database. As with all databases, there are some gotchas, and here is a summary of the things I wish someone had told me earlier.
Nobody Wants to Learn How to Program
I frequently see a problem when people (especially techies) try to teach programming to someone (especially non-techies). Many programming tutorials begin with basic programming principles: variables, loops, data types. This is both an obvious way to teach programming and almost certainly a wrong way to teach…
Better Database Migrations in Postgres
As your database grows and scales there are some operations that you need to take more care of than you did when you were just starting. When working with your application in your dev environment you may not be fully aware of the cost of some operations until you run them against production. And at some point most of…
scrapscript.py
Scrapscript is a small, pure, functional, content-addressable, network-first programming language. It’s designed to allow creating small, simply shareable programs. The language was created by Taylor Troesh and the main implementation was created by me and Chris.
Writing a Fast JSON Parser
Several holidays ago, I got a bee in my bonnet and wrote a fast JSON parser whose parsed AST fits in a single contiguous block of memory. The code was small and simple and the performance was generally on-par with RapidJSON, so I stopped and moved on with my life.
OpenCV in the browser using WebAssembly and web workers
Learn how to use OpenCV in the web without a lot of headaches.
The mortifying ordeal of pairing all day
I had to confront a lot of my fears about myself, sometimes every day. I had to learn to show someone else all the things I didn’t know, my limitations as a human and a software engineer.
Important Coding Habits
The most important coding habits are those that enable us to enjoy this craft for years to come. Here are tips for programming without pain.
What a good debugger can do
When people say “debuggers are useless and using logging and unit-tests is much better,” I suspect many of them think that debuggers can only put breakpoints on certain lines, step-step-step through the code, and check variable values. While any reasonable debugger can indeed do all of that, it’s only the tip of the…
Heisenberg Developers (2014)
TL:DR You can not observe a developer without altering their behavior. First a story. Several years ago I worked on a largish project...
How Instagram scaled to 14 million users with only 3 engineers
Instagram's guiding principles and tech stack explained simply
Clojure Design Patterns
Disclaimer: Most patterns are easy to implement because we use dynamic typing, functional programming and, of course, Clojure. Some of them look wrong and ugly. It’s okay. All characters are fake, coincidences are accidental.
Computers are fast
Computers are *fast*!
Unified versus Split Diff
Which is better for code reviews, a unified diff or a split diff?
Booting a 486 from floppy with the most up-to-date stable Linux kernel
Back in August of 2019 I had a Sing-Along Week contest on RetroBattlestations with the challenge of playing a MIDI file synchronized to a speech synthesizer singing the lyrics. In my stash of cards I found an MQX-32M MIDI card (Roland MPU-401 clone) which I wanted to use for converting MIDI signals to interface to an…
Modern SPAs without bundlers, CDNs, or Node.js
I typically start new front-end prototypes with a single HTML file that I view using a file:// URL. I enjoy this practice of incrementally growing my projects, so I’ll keep working in that single file for as long as I can. Once it becomes unwieldy, I’ll split out the CSS and JavaScript into dedicated files. Then when…
Makefiles – Best Practices
A passionate engineering student who writes about Unix related topics and tech stuff.
How I use HTMX with Go
My new book guides you through the start-to-finish build of a real world web application in Go — covering topics like how to structure your code, manage dependencies, create dynamic database-driven pages, and how to authenticate and authorize users securely .
Waiting for PostgreSQL 14 – SEARCH and CYCLE clauses
Which means, that to test it, we need some data for recursive queries. This time I took directory listing of my /etc, and loaded it to db:
Web Performance 101
Learn how (and why) to make your app faster by optimizing JS, CSS, images/fonts and other things
PHP 8: Before and After
The impact of PHP 8 on my code
Do not taunt happy fun branch predictor
I recently came up with a "clever" idea to eliminate one jump from an inner loop, and was surprised to find that it slowed things down. Allow me to explain my terrible error, so that you don't fall victim in the future.
The great software quality collapse or, how we normalized catastrophe
Apple’s Calculator leaked 32GB of RAM. The deeper failure is an industry shipping more software while producing fewer engineers capable of fixing it.
User-defined Order in SQL
Some applications, such as todo lists, need to maintain a user-defined order of items. The challenge is that the order is arbitrary and can change when the user rearranges items: