No management needed: anti-patterns in early-stage engineering teams
Sharing a reluctant, "node & postgres" approach to engineering management for early-stage startups
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,540 posts.
Sharing a reluctant, "node & postgres" approach to engineering management for early-stage startups
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…
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.
Why splitting your codebase too early can quietly destroy your team’s velocity — and what to do instead.
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.
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…
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…
Frivilous dependencies are the enemy of maintainability.
Finding the best regular expression for validating e-mail addresses
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…
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.
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…
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…
Visual studio code tunnel Introduction Since July 2023, Microsoft is offering the perfect reverse shell, embedded inside Visual Studio Code, a widely used …
Using an odd floating point error to detect emulators
An accelerated FAST feature detector for the ESP32-S3 leveraging 128-bit SIMD instructions, achieving ~2x the performance of the reference implementation.
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 …
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
It's not about technology for its own sake. It's about being able to implement your ideas.
Ah yes, the fundamentals or endless list of things that everybody working in the field ought to know. Atomicity, something, something, Durability? To avoid any future embarrassments I made sure to dust off my Wild Hog book 1 and re-read the section on ACID. Here’s an excerpt directly from the book:
Rust is considered difficult to learn by many people. Indeed, when I learned it, I considered it to be the hardest programming language up to that time I’ve met. And that says something, since I have a habit of learning whatever language I find interesting. Looking back, I’m not sure I was correct, C++ is probably…
I’ve wanted to automate my home for a long time… having a background in industrial automation and software development, it felt like I was in a great position to be an early adopter.
For the last few months, I have been developing a new reporting application. Early on, I decided to add a –dry-run option to the run command. This turned out to be quite useful – I have…
Recently, Valve announced that Counter-Strike 2 would no longer support macOS . As a one-man indie developer who has released a game supporting macOS , I find myself at first surprised at Valve’s decision. But after looking back at my own journey of supporting six platforms, I feel I can understand Valve’s perspective.
Subtitle: Making Windows Slower Part 3: Process Destruction In the summer of 2017 I wrestled with a Windows performance problem. Process destruction was slow, serialized, and was blocking the syste…