corpus.blog
Most cited
Talked about
Blogs
41554 blogs · [ { "id": "01a08753-b516-71db-9d9a-bc831c65d32d", "title": "DIY Smart home project: Restoring the wall switch", "url": "https://blog.shalvah.me/posts/diy-smart-home-project-restoring-the-wall-switch", "published_at": "2026-06-21T14:12:32+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc831c79fe8e", "title": "Dealing with domain modelling mismatches on external services", "url": "https://blog.shalvah.me/posts/dealing-with-domain-modelling-mismatches-on-external-services", "published_at": "2025-11-23T03:35:21+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc831ce153cd", "title": "All decisions are wrong, but some are better", "url": "https://blog.shalvah.me/posts/all-decisions-are-wrong-but-some-are-better", "published_at": "2025-11-04T17:16:03+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc831d8114bd", "title": "Making non-atomic actions atomic using intents", "url": "https://blog.shalvah.me/posts/making-non-atomic-actions-atomic-using-intents", "published_at": "2025-10-27T23:07:21+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc831e75d1db", "title": "DIY Smart home project: Presence-activated lights", "url": "https://blog.shalvah.me/posts/diy-smart-home-project-presence-activated-lights", "published_at": "2025-05-01T12:42:15+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc831efb239c", "title": "In defence of complexity", "url": "https://blog.shalvah.me/posts/in-defence-of-complexity", "published_at": "2024-12-24T11:04:45+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc831f5d0b19", "title": "Reflections on Year 1 of my engineering studies", "url": "https://blog.shalvah.me/posts/reflections-on-year-1-of-my-engineering-studies", "published_at": "2024-10-18T00:10:58+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc831f745366", "title": "Exploring software design problems and solutions: Transactions and side effects", "url": "https://blog.shalvah.me/posts/exploring-software-design-problems-and-solutions-transactions-and-side-effects", "published_at": "2024-07-19T07:29:32+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc831fd9c216", "title": "An exploration of vector search", "url": "https://blog.shalvah.me/posts/an-exploration-of-vector-search", "published_at": "2024-06-02T15:12:33+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc831fda38e5", "title": "Lessons for me on leadership, from a film about apes", "url": "https://blog.shalvah.me/posts/lessons-for-me-on-leadership-from-a-film-about-apes", "published_at": "2024-04-21T19:24:46+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc832074a2ff", "title": "Learn SVG by drawing an arrow", "url": "https://blog.shalvah.me/posts/learn-svg-by-drawing-an-arrow", "published_at": "2024-01-11T17:44:33+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc832082f5cc", "title": "Building a PHP client for Faktory, Part 6: Higher-level usage", "url": "https://blog.shalvah.me/posts/building-a-php-client-for-faktory-part-6-higher-level-usage", "published_at": "2023-11-25T23:42:03+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc83209d3b4e", "title": "Exploring concurrent rate limiters, mutexes, semaphores", "url": "https://blog.shalvah.me/posts/diving-into-concurrent-rate-limiters-mutexes-semaphores", "published_at": "2023-09-11T22:38:27+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc8320d108ee", "title": "High and low cardinality", "url": "https://blog.shalvah.me/posts/high-and-low-cardinality", "published_at": "2023-08-13T12:35:42+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc8321109cec", "title": "Packing and unpacking bytes", "url": "https://blog.shalvah.me/posts/packing-and-unpacking-bytes", "published_at": "2023-07-22T00:03:40+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc83219448eb", "title": "Building a PHP client for Faktory, Part 5: Protocol", "url": "https://blog.shalvah.me/posts/building-a-php-client-for-faktory-part-5-protocol", "published_at": "2023-07-02T21:58:24+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc8321ccd81c", "title": "Building a PHP client for Faktory, Part 4: Refactoring", "url": "https://blog.shalvah.me/posts/building-a-php-client-for-faktory-part-4-refactoring", "published_at": "2023-05-07T13:29:50+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc832296f5a8", "title": "Building a PHP client for Faktory, Part 3: Making development easier", "url": "https://blog.shalvah.me/posts/building-a-php-client-for-faktory-part-3-making-development-easier", "published_at": "2023-04-23T13:27:01+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc8322b37140", "title": "How we cut down our CI build times by 50%", "url": "https://blog.shalvah.me/posts/how-we-cut-down-our-ci-build-times-by-50", "published_at": "2023-04-20T19:23:23+00:00" }, { "id": "01a08753-b516-71db-9d9a-bc8322c380ab", "title": "Solving a logic puzzle", "url": "https://blog.shalvah.me/posts/solving-a-logic-puzzle", "published_at": "2023-02-02T17:31:16+00:00" }, { "id": "01a08753-b517-724e-9926-ea9142cdadd0", "title": "Building a PHP client for Faktory, Part 2: Converting to code", "url": "https://blog.shalvah.me/posts/building-a-php-client-for-faktory-part-2", "published_at": "2023-01-27T22:22:17+00:00" }, { "id": "01a08753-b517-724e-9926-ea91437680cd", "title": "Building a PHP client for Faktory, Part 1: Talking over TCP", "url": "https://blog.shalvah.me/posts/building-a-php-client-for-faktory-part-1", "published_at": "2023-01-27T21:07:21+00:00" }, { "id": "01a08753-b517-724e-9926-ea9144085e09", "title": "Connecting to a Windows server process from WSL", "url": "https://blog.shalvah.me/posts/connecting-to-a-windows-server-process-from-wsl", "published_at": "2023-01-23T19:37:45+00:00" }, { "id": "01a08753-b517-724e-9926-ea9144706d17", "title": "Building a task queue, Part 4", "url": "https://blog.shalvah.me/posts/building-a-task-queue-part-4", "published_at": "2022-12-29T22:57:13+00:00" } ] posts
Claim your blog
Back to blog.shalvah.me
Blog · corpus.blog/blogs/blog.shalvah.me/posts
blog.shalvah.me
blog.shalvah.me
2026
DIY Smart home project: Restoring the wall switch
original ↗
21 Jun 2026
2025
Dealing with domain modelling mismatches on external services
original ↗
23 Nov 2025
All decisions are wrong, but some are better
original ↗
4 Nov 2025
Making non-atomic actions atomic using intents
original ↗
27 Oct 2025
DIY Smart home project: Presence-activated lights
original ↗
1 May 2025
2024
In defence of complexity
original ↗
24 Dec 2024
Reflections on Year 1 of my engineering studies
original ↗
18 Oct 2024
Exploring software design problems and solutions: Transactions and side effects
original ↗
19 Jul 2024
An exploration of vector search
original ↗
2 Jun 2024
Lessons for me on leadership, from a film about apes
original ↗
21 Apr 2024
Learn SVG by drawing an arrow
original ↗
11 Jan 2024
2023
Building a PHP client for Faktory, Part 6: Higher-level usage
original ↗
25 Nov 2023
Exploring concurrent rate limiters, mutexes, semaphores
original ↗
11 Sept 2023
High and low cardinality
original ↗
13 Aug 2023
Packing and unpacking bytes
original ↗
22 Jul 2023
Building a PHP client for Faktory, Part 5: Protocol
original ↗
2 Jul 2023
Building a PHP client for Faktory, Part 4: Refactoring
original ↗
7 May 2023
Building a PHP client for Faktory, Part 3: Making development easier
original ↗
23 Apr 2023
How we cut down our CI build times by 50%
original ↗
20 Apr 2023
Solving a logic puzzle
original ↗
2 Feb 2023
Building a PHP client for Faktory, Part 2: Converting to code
original ↗
27 Jan 2023
Building a PHP client for Faktory, Part 1: Talking over TCP
original ↗
27 Jan 2023
Connecting to a Windows server process from WSL
original ↗
23 Jan 2023
2022
Building a task queue, Part 4
original ↗
29 Dec 2022