Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 32
  1. Very niche software, part 1

    Before the advent of LLMs, my hobby was failing to finish software projects that I hoped might be generally useful to a wider audience.

  2. Agentic coding and mental models

    I reckon I’ve drafted and then deleted a version of this post at least 10 times in the last 12 months.

  3. Pawno: terminal pleasure

    Last summer I was about to start a new job where I’d be working with the Go programming language on a daily basis.

  4. This post is an expansion of a comment I made on HN recently and continues my Extreme Learning series.

  5. Concurrency diagrams

    When engineers discuss program design and system architecture, a common source of misunderstanding is concurrency.

  6. Node.js async the right way

    Every technology stack has idiosyncrasies that can trip people up when they first encounter them.

  7. Status games

    There’s a fascinating chapter in Keith Johnstone’s Impro, called Status.

  8. The art of good code review

    This post is an extension to a talk I gave recently at work.

  9. Vector search for dummies

    Recently I built a system that uses vector search to logically truncate long documents and retain the most significant parts according to some search term.

  10. For the last ten months or so I’ve worked on integrating GPT (various flavours) with a large production codebase.

  11. Production outages are great at teaching you how not to cause production outages.

  12. Previously for Extreme Learning, I discussed all the ways I’ve broken production using healthchecks.

  13. One reason I like working at startups is you get to wear many hats.

  14. How to evaluate dependencies

    One of my stock interview questions goes: “When picking between dependencies to use in production, what factors contribute to your decision?”

  15. How to debug

    As engineers we spend a lot of our time debugging problems, yet it’s rarely taught as a skill in its own right.

  16. There’s nothing earth-shattering here, but I can recall that each of these principles were not obvious to me at some point in time.

  17. I’ve always wanted a dog, but could never get one because I lived in rented accomodation.

  18. Last week I received the result of my WSET level 3.

  19. Build a better release script

    Automating your release process saves time, eliminates tedious busywork and reduces the likelihood of mistakes when cutting a new release.

  20. FxA monorepo migration

    Historically, the Firefox Accounts (FxA) codebase was organised as separate repositories because it’s deployed as separate microservices in production.

  21. Along with all the fun, creative stuff it enables you to do, programming sometimes requires you to carry out boring and repetitive editing operations.

  22. JavaScript’s Array and Promise types compose nicely with functional programming idioms to control concurrency without recourse to 3rd-party libraries.

  23. 2018 retrospective

    Time passes and it’s easy to forget about all the cool stuff you did or lessons you learned.

  24. For Christmas I bought myself a Garmin Forerunner 645, after becoming irritated to the point of distraction by my Polar Flow M430.

  25. Recently I sat my WSET level 2 and did pretty well.

  26. Recently I wrote about how Rust macros make it easy to refactor repetitive code that might otherwise become annoying in a strongly-typed language.

  27. Automating MySQL EXPLAIN checks

    About a month ago, we had an outage caused by a slow-running query in MySQL.

  28. Refactoring with Rust macros

    Refactoring boilerplate code is always easy in dynamically-typed languages, but sometimes takes a bit more effort when constrained by strong typing.

  29. Bye Dad

    Richard Charles Maxwell Booth 25th June 1948 - 17th June 2018

  30. The elegance of Rust

    Here’s three little Rust tricks that I learned in the last week or so.

  31. Let’s say you have a huge amount of JSON data and you want to parse values from it in Node.js.

  32. “Bad performance hurts user engagement” is a sentiment that feels intuitively true but can be hard to sell in product conversations.