Writing
Notes, book reviews, TILs, and everything in between. Browse by section in the side nav.
2026
- blikiWhat Is a Shell?
- blikiJobs and Job Control
- noteWhen Optimal Stops Mattering
- noteWhat is a PTY?
- resourceWhen macOS Secure Input breaks global hotkeys
- noteAsymmetric bets
- blikiParse, don't validate
- blikiInvariants
- resourceBehavioral Code Analysis - Adam Tornhill
- noteTailscale uptime monitor with push notifications
- resourceResource: systemd
- noteContent calendar
- noteCutting goosebumps.fm's cold load time
- resourceScripts: measuring TTFB, cache headers, and Lighthouse from the CLI
- noteTIL: Cloudflare Worker observability with SST
- blikiCorrelated Logging
- blikiGo, defer
- blikiPrometheus Node Exporter
- notegoosebumps.fm, Observability
- tilTIL: Bounded concurrency first
- blikiEffect Logger Multi-Writer
- blikiObservability Tooling Canon
- noteObservability in Go
- noteAlerts
- noteError Handling & Logging
- noteObservability Foundations
- noteLog Quality & Hygiene
- noteLog Structure & Context
- noteMetrics
- noteProfiling
- noteTracing
- tilTIL: Leaking requirements in Effect services
- resourceDesigning for astigmatism
- tilTIL: Avoid text-sm on inputs - iOS Safari zooms on focus
- resourceLearning Effect
- tilTIL: Tmux Continuum
- tilTIL: Prefer h-dvh over h-screen on iOS Safari
- tilTIL: AES-GCM Encryption
- tilTIL: SST stores state and encrypted secrets in a backend
- noteThree kinds of debt
- noteSkill Atrophy
- noteBenchmarking Shell Startup Latency
- noteExhaustive Pattern Matching
- noteAndy Matuschak on Why Books Don't Work
- noteOpen/Closed Principle in React component libraries
- readReading list #20
- resourceResource: Terraform
- notePulse
- noteTuring Completeness
- noteEffect-ts, in practice
- notegoosebumps.fm changelog - feb 2026
- readReading list #19 - Testing in react
2025
- tilDocumentation Archetypes
- tilTIL: Company OS Modes
- readThe end of the regular reading list, for now
- tilTIL: Spot Instances
- tilTIL: Transitive Deps
- noteCharity Majors on How to Lead and Scale a Distributed Team
- resourceResource: Git Gud M8
- noteK8s Crash Course
- readReading list #18
- noteEskil Steenberg – You should finish your software – BSC 2025
- readReading list #17
- bookProcrastination as a Signal
- readReading list #16
- readReading list #15
- blikiOutbox - A system design pattern
- readReading list #14
- noteTest
- readReading list #13
- noteThere's youtube downloader at home
- readReading list #12
- tilTIL: Vitest + RTK - Cannot read properties of undefined (reading 'reducerPath')
- blikiLoad Testing
- readReading list #11
- readReading list #10
- tilTIL: API Gateway and CORS preflight request
- noteRaycast Extension Development
- readReading list #9
- bookBook Notes: Missing Readme
- noteGoosebumps.fm Platform Migration
- readReading list #8
- noteAI Usage
2024
- noteAccelerate notes cont. : Maturity vs Capabilities model
- noteWhy Git? How to git?
- noteGUI and CLI
- tilTIL: Elastic Search
- noteCsharp Api Course
- tilTIL: Converting audio files to MP3 using ffmpeg
- noteOn Speed at all cost
- tilTIL: Typography sizing for a blog
- readReading list #7
- tilTIL: Specify Sst Region
- blikiZero Defect Strategy
- readReading list #6
- tilBash + jq for API development & testing
- noteQuick Capture
- noteNextgoose -> gbfm
- readReading list #5
- noteSST CI deployments with a custom domain name
- tilHow to use your fingerprint as sudo password on Mac
- readReading list #4
- readReading list #2
- readReading list #3
- readReading list #1
- blikiTwo Tier on Call
- bookWill Larson's An Elegant Puzzle
- noteOn Migrations
- noteOn Blackboxes & Open Garage Doors
- noteBalancing Human & Economonic motivations
- noteOn Change Advisory Boards
- noteSome properties of emergent behaviours
- noteComplicated or Complex?
- noteRetro: Crowdstrike outage
- noteYour codebase as a product
- tilTIL: Fixed Footer
- noteRepeatable steps for a Coolify managed VPS
- noteOn Team morale
- noteExploring CI/CD options
- noteSide Quests
- tilTIL: Xstate Effect
- noteAudience of One
- tilTIL: Value & Pointer Receivers in Go
- resourceNotes from Brie Wolfson
- noteVisually Indexed Music
- tilTIL: Testable Examples in Go
- tilTIL: Sentry
- noteAddressing the broken window theory
- tilTIL: Jest SetSystemTime
- tilTIL: Type narrowing using Type Predicates
- tilTIL: Obsidian with symlink to a JS repo
- noteMinimum Lovable Product
- noteIndecision
- note2024 Q1 Writing Retro
- resourceResource: Design Dev Playbook
- tilTIL: How to fix Node Network timeouts
- tilTIL: Env variables & Infinite Rerender
- noteCode should communicate intent
- tilTIL: Obsidian Workspace Fix
- tilNode + Openai CLI app
- noteNetwork Effects
- resourceVersion Controlled dotfiles
- resourceResource: React Rendering Mental Model
- noteTeam Topologies: Beyond the Spotify Model
- bookBook Notes: Tidy First?
- note2024 Writing Strategy
2023
- bookBook Notes: Mobile at Scale
- bookBook Notes: Growing as a Mobile Engineer
- resourceResource: Dx
- resourceResource: DDD
- noteOn Handling Incidents
- tilTIL: Cognitive Complexity
- resourceResource: Hugo Under the Hood
- noteProblem/Solution Space
- noteBounded Context in Practice
- resourcePodroll
- noteThe Value of Ubiquitous Language
- noteOn Prioritising
- noteYoutube Playlist UX wishlist
- resourceOkay you're a PM. Now what?
- tilUse Effect Cleanup
- bookImplementing Lean Software Development
- noteDan North - Value of Flow
- notesteps to driving technological change
- tilTIL: Docker Go
- noteOn Assigning your team to full capacity
- tilTIL: Docker Debugging
- noteHandling Network Failure on your Frontends
- noteWhy Write
- tilTIL: How to publish an npm package
- notePull Request Etiquette
- noteAmbient Pair Programming
- noteWeekend Longreads #1
- noteCohesion & Complexity
- notePing Pong Pair Programming
- notePast Work
- resourceResource: Local First
- tilTIL some Node
- notePlatform Risk
- tilDatabase Indexing
- resourceResource: Product Engineer
- noteDenis Čahuk on Estimates
- noteJavascript Proxy 101
- resourcePersonal Development Environment
- tilfix for - attempt to call local autocmd (a nil value)
- noteHow is a riff similar to Andy’s evergreen/atomic notes?
- noteLessons from Andy Matuschak
- bookRick Rubin on completion
- noteSome Patterns of Multi-Tenant SaaS
- noteon small PRs
- noteDomain Driven Design and naming
- noteOn Refactoring
- noteFlow of Value through a system
- noteDigital Garden
- noteOn rest and work
- noteFlow state
- noteEnergy Management
- noteFeature Flags
- resourceBlogroll
- noteHow I learn
- noteComputer science is a liberal art
- notePitch → Shape → Kickoff -> Commit → Cooldown
- noteUX Crit
- noteTidal UX Wishlist
- noteAsync by default
- noteContainers in AWS
- noteAWS Batch
- tilDev Writes
- noteAWS Elastic Load Balancer
- tilTIL: MySQL Storage Engines
- noteAWS Networking Refresher
- noteCommon React Render Bug
- noteAWS Cloudtrail
- note2022 Learning Summary
- noteRoute 53 Basics
- noteAWS Cloudwatch
- noteAWS CloudFormation Basics
- noteAWS EC2 Basics
- noteAWS VPC basics
2022
- noteMTTR > MTBF
- tilTIL: Typescript Enum vs Obj
- bookBook Notes: Engineering Management For The Rest of Us
- notePull Requests & WIP
- noteAWS notes: S3
- noteOn WIP Limits
- noteCognitive Load Theory
- bookBook Notes: Team Topologies
- noteTeam topologies with James Lewis
- noteOn Reading more effectively
- noteTeam Topologies: ING Bank
- noteCloud Fundamentals
- noteAWS notes: IAM
- noteNesting - Using Environmental cues
- tilTIL: Array Map Async Callback
- noteReact Observables
- tilGpg
- noteUpdate a single Ubuntu/Linux package
- noteGoosebumpsfm
- noteSpotify UX Wishlist
- resourceResource: A Tour of Javascript & React Design Patterns
- noteIdeal collaboration UX for music apps
- tilTIL: Molecular JS
- tilTIL: CSRF Tokens
- tilTIL: Mongoose N Stuff
- resourceResource: Docker
- resourceResource: Learn Ableton
- notePosted from a mobile git client
- noteNotes: How to know what to Test
- noteNotes: Managing Client Relationships
- tilTIL: How to use Hugo CLI in a Remix.run project
- tilTIL: AWS S3, Lamba, Event Notification
- tilTIL: Logs N Stuff
- noteCourse Notes: AWS Solutions Architect Cantrill
- tilTIL: Webpack Basics
- resourceResource: AI & ML
- tilTIL: Bash Script Automation
- tilTIL: Interactive Git Rebase
- tilTIL: Some Netwokrking, Security & Vim
- noteUX Case Study: Sharing music from streaming platform to Instagram Stories
- noteHugo site OG Images using Node and Cloudinary
- tilTIL: Some Docker & Linux
- tilTIL: Vscode Workspace settings
- tilTIL: Websockets basics
- notePredatory/Hostile UX
- resourceIntegration resources
- resourceReact Performance
- noteon Proof of Concepts
- resourceNvm
- noteStart With Abundance
- tilRehydrating HTML Select on Component Mount
- noteDan North - Patterns of Effective Teams
- tilVim - How to Change, Yank, or Delete Until
- resourceBash It
- resource3D Stuffs
- noteDJing: Opening Set
- noteRecord labels I like
- resourceGraphql Fundamentals Notes
- resourceAWS Amplify Appsync React Notes
- tilConfidence Intervals
- tilCypress Intercept
- noteNetworking recaps for Cloud Computing
- tilHow Route 53 uses Shuffle Sharding
- bookBook Notes: Developer Hegemony
- tilTrellis Design
- bookBook Notes: Domain Driven Design Distilled
- noteAWS Well Architected Framework
- noteDub Techno Staples
- noteApplying Shape Up
- noteUsing Pro Search
- resourcePaul Graham
- tilJest Unhandled Promise Rejection
- resourceTesting
- noteSpotify Teardown Reflections
- noteGuided Music
- noteA quick lesson in design - Dark Patterns
- resourceSecurity
- tilScreen.debug()
- tilBrowser Share Api
2021
- resourceSvelte
- bookBook Notes: Accelerate
- resourceMixing & Mastering
- noteUsing contrast in DJ sets
- noteSurvivorship Bias
- noteQuestions for New Freelance Client
- noteTom Critchlow on Strategy
- tilAuthentication vs Authorization
- bookBook Notes: Spotify Teardown
- bookBook Notes: Make Time
- resourceFigma
- noteRFC: Playlist Aggregator
- resourceBasic Landing Page Framework
- noteProject Yani
- noteProject DIFTK
- noteProject BHE
- noteFreelance
- resourceCompanies Using Shape Up
- note2021 Note Setup
- noteIos Music Recognition
- noteWriting End to End Tests
- resourcePodcast Notes: Building A Second Brain
- noteThe guide to Guide: how I work
- notespeedy dubs
- tilPnpm Experiments
- tilPushd Popd
- resourceAWS
- resourceKeyboards
- resourceEvergreen
- noteHypnus Goodies From Dub Monitor
- tilRemote Procedure Call
- tilHow to Add a Description to Git Commit
- tilNextjs Dynamic Routing Overview + URL params
- noteTracks From Dub Monitor Spotify vs Tidal Video
- resourceDesign
- resourceLearning
- resourceUnderstanding Sagas
- resourceUncategorised Links
- resourceNestjs
- resourceNotes & Resource: Martin Fowler
- noteMobile First Styling
- noteNestjs Rest Api Notes
- noteSagas Microservice Architecture Patterns
- noteMutation Testing in Javascript
- noteI'm Fascinated by Design
- noteDataecho Retro
- noteBackend - What I've Been Up To
- noteHelpful Hugo Commands
- tilTIL Some Markdown
- noteSpotify Shortcode
- noteRegulatory Capture
- resourceCase Study Template
- resourceAdr Template
- noteOutsourcing Freelance Work
- tilTIL 6-21-21
- tilTIL 6-15-21
- tilTIL 6-9-21
- noteInteresting Spotify Tools
- tilTIL 5-31-21
- tilTIL 5-29-21
- tilTIL 5-24-21
- tilTIL 5-20-21
- tilTIL 5-17-21
- tilTIL 5-16-21
- noteConsuming an API in your web app
- noteSpotify X Amazon Similarity
- noteSOLID principles
- noteOOP basics
2020
- bookShape Up - writing the pitch
- tilTIL(Friday 12 Dec 2020)
- bookShape Up - The shaping process
- bookIntroduction to Shape Up
- noteHow to grow your influence by thinking in public
- noteThe way my notes are setup
- noteComplete intro to react - notes
- tilTIL(Tuesday 13 October 2020)
- noteGatsby Blog Posts Filter - How I made it work
- noteFinishing up Javascript 30
- bookBook Notes: Refactoring UI
- noteGit Shit Done
- resourceTailwind Resources
- noteExtended Thoughts(Tuesday 22 September)
- noteHow to deliver curated playlists
- noteMy social card struggle with React Helmet
- noteCollaboration Guide for Indie artists in Zim