41554 blogs · [ { "id": "01a0d2e4-d64a-7164-9ada-5942fe7eae11", "title": "What I Remember", "url": "https://stevenwaterman.uk/what-i-remember", "published_at": "2026-09-19T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8de6ef2c", "title": "Authenticating JavaScript WebSockets", "url": "https://stevenwaterman.uk/authenticating-javascript-websockets", "published_at": "2025-05-21T11:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8d787fab", "title": "Prevent Mistakes with NOMERGE Comments in CI/CD Pipelines", "url": "https://stevenwaterman.uk/nomerge-comments", "published_at": "2024-10-21T21:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8d288e6d", "title": "The burden of deliberate choice", "url": "https://stevenwaterman.uk/burden-deliberate-choice", "published_at": "2023-09-20T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8cf6f0cc", "title": "Luckily I got hit by a car", "url": "https://stevenwaterman.uk/good-luck-bad-luck", "published_at": "2023-08-24T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8c825284", "title": "Supercharge your Teaching with Metaphors", "url": "https://stevenwaterman.uk/what-makes-a-great-metaphor", "published_at": "2023-08-10T11:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8c6eb849", "title": "Onboarding at a Radical Enterprise", "url": "https://stevenwaterman.uk/onboarding-radical-enterprise", "published_at": "2022-10-31T10:30:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8be47241", "title": "The Sunk Cost Fallacy, and what it isn't", "url": "https://stevenwaterman.uk/sunk-cost-fallacy", "published_at": "2022-08-08T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8b780bf9", "title": "Don't Worry, it's Rocket Science", "url": "https://stevenwaterman.uk/its-rocket-science", "published_at": "2022-07-23T15:30:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8b7675dd", "title": "Decorate your Blog with AI", "url": "https://stevenwaterman.uk/blog-illustration", "published_at": "2022-07-03T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8a9baf0b", "title": "My Balance Box", "url": "https://stevenwaterman.uk/balance-box", "published_at": "2022-07-01T11:30:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8a7a30c7", "title": "Kind and True", "url": "https://stevenwaterman.uk/kind-and-true", "published_at": "2022-06-23T14:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8a461417", "title": "A New Trajectory", "url": "https://stevenwaterman.uk/a-new-trajectory", "published_at": "2022-06-13T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c89db4fa8", "title": "Opening Up About Burnout", "url": "https://stevenwaterman.uk/opening-up-burnout", "published_at": "2022-06-12T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c896c9c82", "title": "We Need to Talk (if you want)", "url": "https://stevenwaterman.uk/office-hours", "published_at": "2022-04-08T18:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c88a658de", "title": "You can learn to Speak Confidently", "url": "https://stevenwaterman.uk/speaking-with-confidence", "published_at": "2022-04-04T12:30:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8832d1ea", "title": "5 things you don't need Javascript for", "url": "https://stevenwaterman.uk/you-dont-need-js", "published_at": "2022-02-28T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c87ad0b00", "title": "Database sync like magic, with Svelte + Firestore", "url": "https://stevenwaterman.uk/svelte-firestore-binding", "published_at": "2022-02-16T18:30:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c87758b86", "title": "Lexoral is open-source so you can punish us", "url": "https://stevenwaterman.uk/open-source-punish", "published_at": "2022-01-04T12:10:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c867ecb22", "title": "Down the ergonomic keyboard rabbit hole", "url": "https://stevenwaterman.uk/ergo-rabbit-hole", "published_at": "2020-10-09T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c85beea85", "title": "Better Redux Reducers with TypeScript Builders", "url": "https://stevenwaterman.uk/reducer-builder", "published_at": "2020-10-01T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8572890b", "title": "TypeScript Builders: Improving your types one step at a time", "url": "https://stevenwaterman.uk/typescript-builders", "published_at": "2020-09-16T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c85004d2b", "title": "Svelte and TypeScript - Together at last!", "url": "https://stevenwaterman.uk/svelte-ts", "published_at": "2020-07-24T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c84232692", "title": "Optimise your Micro:Bit code with Chrome DevTools", "url": "https://stevenwaterman.uk/microbit-optimisation", "published_at": "2020-03-27T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c836e8803", "title": "How to Write a Ray Tracer Intuitively", "url": "https://stevenwaterman.uk/raytracer-how-to", "published_at": "2020-03-10T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c829e4dc0", "title": "3D Rendering on a Children's Toy", "url": "https://stevenwaterman.uk/microbit-raytracer", "published_at": "2020-03-03T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c824b30d9", "title": "GitHub is a free CI/CD/Hosting solution", "url": "https://stevenwaterman.uk/github-ci-cd", "published_at": "2020-02-24T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c82451d69", "title": "Stevie W and the Quest for 60 FPS", "url": "https://stevenwaterman.uk/stevie-w-60-fps", "published_at": "2020-02-21T09:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8181b318", "title": "Slow Code HATES him! From 1 to 60fps", "url": "https://stevenwaterman.uk/minesweeper-optimisation", "published_at": "2020-02-17T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c810677ca", "title": "Embrace your Obsessions!", "url": "https://stevenwaterman.uk/embrace-your-obsessions", "published_at": "2020-02-10T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c81016b8c", "title": "Typescript Pick 'n' Mix", "url": "https://stevenwaterman.uk/pick-n-mix", "published_at": "2020-01-29T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c80bba26b", "title": "How to solve Minesweeper in 3 minutes", "url": "https://stevenwaterman.uk/minesweeper-lightning-talk", "published_at": "2020-01-17T09:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c8072ab54", "title": "Planning 56 sprints per second with SAT4J", "url": "https://stevenwaterman.uk/sprint-with-sat", "published_at": "2020-01-16T12:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c806211b7", "title": "Solving Minesweeper in Polynomial Time", "url": "https://stevenwaterman.uk/minesweeper-netech-talk", "published_at": "2020-01-13T09:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c7fdcd855", "title": "Rethinking the Java DTO", "url": "https://stevenwaterman.uk/rethinking-dto", "published_at": "2020-01-03T11:00:00+00:00" }, { "id": "01a087e6-4d45-70b2-bf8a-a45c7ede3a2d", "title": "Introducing SharpShot", "url": "https://stevenwaterman.uk/introducing-sharpshot", "published_at": "2019-07-22T18:00:00+00:00" } ] posts Claim your blog
Back to stevenwaterman.uk
Blog · corpus.blog/blogs/stevenwaterman.uk/posts

stevenwaterman.uk

stevenwaterman.uk

2026

2025

2024

2023

2022

2020

2019