~/devreads

#development

36 posts

9 Jun

Sydney Cole 4 min read

Update: This post was written prior to the GSD repository being abandoned by its maintainer. The future of GSD is uncertain, but the lessons from this can be applied to other spec-driven development frameworks. My Intro To GSD I first used the Get Shit Done spec-driven development system for Claude on a client project. This […] The post Getting Shit…

developmentcodebase

26 May

Rob 2 min read

For OSS work, I work with two git remotes: upstream: the canonical OSS project repository, where main is the default branch and is what gets released. origin: a personal fork. All my feature branches live here. I set up locally like this: Fork the project repo to my account. Clone my fork locally, so the origin remote is my fork.…

developmentgit

13 Apr

Dominic Marks 12 min read

Excerpt In complex, long-running agentic systems, maintaining alignment and coherent reasoning between agents requires careful design. In this second article of our series, we explore these challenges and the mechanisms we built to keep teams of agents working productively over long time spans. We present a range of complementary techniques that balance the conflicting requirements…

uncategorizeddevelopmentsecuritysoftware-engineering

5 Feb

Daisy Mølving 4 min read

This is Part 1 in our blog series on how the design process works alongside Agile methodology to produce results within an integrated team. Updated 2/5/2026. Originally published 2/2/2024 When it comes to developing new software, not every designer approaches the task the same way. While some use a design thinking approach, looking at the tasks from a user perspective,…

experiential designproduct strategy innovationdelivery and practicedevelopment

1 Dec 2025

Dominic Marks 9 min read

Slack’s Security Engineering team is responsible for protecting Slack’s core infrastructure and services. Our security event ingestion pipeline handles billions of events per day from a diverse array of data sources. Reviewing alerts produced by our security detection system is our primary responsibility during on-call shifts. We’re going to show you how we’re using AI…

uncategorizeddevelopmentsecuritysoftware-engineering

25 Nov 2025

12 min read

We’ve been working with MCP servers for a while, and this use case was a perfect opportunity to build out another one. What is an MCP Server? A very simple way to put it is that Model Context Protocol is an "API" that your AI tooling can use to get external data or perform actions by interacting with your application.…

elixirprocessdevelopmentai

24 Nov 2025

10 Sept 2025

Justyna Jurkowska 9 min read

Joanna Maciejewska I'm sure you've seen this quote from Joanna Maciejewska all over social media; I'd bet some money that there are shops already selling t-shirts and mugs with it. Despite seeing it dozens of times, I never thought about it in the context of my day-to-day as a programmer! I, like the quote's author, was more focused on AI…

ai and emerging techdevelopment

21 Aug 2025

Zuko Mgwili 6 min read

The Evolution of Craft: How I Embraced AI in Software Development One Sunday morning after a church service I was enjoying a cup of tea, cake and warm conversations with fellow parishioners. One of the conversations with a particular individual shifted to work and I learned that he works in the energy sector. More specifically, he is an engineering manager…

ai and emerging techdevelopment

15 Jul 2025

Rob 2 min read

I've been writing a simple Swift command line tool called QuickSS. It's a single file swift file, that I compile to a standalone binaryusing: swiftc quickss.swift -o quickss To distribute it on modern Macs, I need to sign it and then get Apple to notarise it. Signing the binary To sign the binary, you need a "Developer ID Application" certificate…

command linedevelopmentshell scripting

8 Jul 2025

Rob 2 min read

I'm currently writing a script that notarises a macOS CLI app which needs to access a password. Rather than put it in an environment variable, I thought I'd use the 1Password CLI. This is the first time I've used it, so these are my notes. The 1Password CLI tool is call op. I installed it via Homebrew with: brew install…

command linedevelopmentshell scripting

15 Apr 2025

Rob 2 min read

One of the projects that I'm working on at the moment uses Stripe which means that we need to handle web hooks in order to ascertain what's happened as that's how Stripe communicates back to us. For production and staging, it's easy enough to register a url on Stripe's dashboard, but when developing, it's a little more complicated as our…

developmentdocker

18 Mar 2025

Rob 1 min read

As a hobby project, I've been writing a screensaver for my Mac that displays my photos with a caption and date taken. To get the width and height of the screen so that I could size the image correctly, I used this code in my ScreenSaverView: self.screenWidth = frame.size.width self.screenHeight = frame.size.height However, I discovered that with two or more…

development

18 Feb 2025

Rob 1 min read

There is a different between OAuth scopes and roles. A scope is the abilities that the client requests that the user can then decide if they are going to authorise that client to do those things. A role is the rights that a given user has within the application. Scope examples are "read-name", "read-address", "read-email", 'write-all", etc. Example roles might…

development

11 Feb 2025

Rob 1 min read

I recently had a problem with a failing Playwright test that only happened when running in Docker. The test that was failing was: let locator = page.locator('a[href="/login"].nav-link'); await locator.click(); await expect(page).toHaveTitle(/Log in/); The test clicks the link to go to /login and then checks that the next page's title contains the text "Log in". Not an especially complicated test, so…

developmentjs

8 Oct 2024

Rob 1 min read

In my Makefile, I check for OpenAPI spec issues with this command: docker run --rm -it -v $(PWD):/tmp stoplight/spectral lint \ --ruleset /tmp/spec/.spectral.yaml /tmp/spec/openapi.yaml When running in GitLab CI, we set the image to stoplight/spectral:latest, and override the entry point so that we can run spectral directly: openapi-lint: stage: test image: name: stoplight/spectral:latest entrypoint: [""] script: - spectral lint --ruleset…

development

1 Oct 2024

Rob 1 min read

Sometimes you need some additional DNS entries in your containers. This is how to do it in compose.yaml. Internal entries Within the containers, the name of the container in compose.yaml is resolvable via DNS. Given this compose.yaml: services: web: # ... app: # ... networks: myapp: driver: "bridge" We can ping web from within the app container. If we need…

developmentdocker

17 Sept 2024

Rob 1 min read

Recently, I set up my PHP dev environment to allow me to step debug from unit tests that I run with make unit The relevant parts of Makefile look like this: # Set DEBUG=1 to enable Xdebug ifeq ($(origin DEBUG),undefined) XDEBUG := else XDEBUG := XDEBUG_SESSION=PHPSTORM endif unit: ## Run unit tests docker compose exec php bash -c "$(XDEBUG) vendor/bin/phpunit…

developmentphp

10 Sept 2024

Rob 2 min read

I'm working on a project that uses MS SQL Server as its database. Recently, I noticed that the SQL Server Docker container now works with Apple Silicon Macs, so looked into setting up a PHP-FPM container with the sqlsrv extension installed. I'm noting the relevant parts of my Dockerfile for when I need them again, so this is entirely an…

developmentdockerphp

3 Sept 2024

Rob 3 min read

For one project that I'm working on the PHP-FPM-based Docker container is built from a Ubuntu container with PHP is installed into it. A little like this: FROM ubuntu:22.04 RUN apt-get update && apt-get upgrade -y && apt-get install -y gnupg curl # Register the Ondrej package repo for PHP RUN mkdir -p /etc/apt/keyrings \ curl -sS 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c' | gpg…

developmentdockerphp

6 Aug 2024

Rob 1 min read

I've been doing a few updates to Daily Jotter, my little Mac app that's available in the Mac App Store. It's been a little while since I last updated it and a few things have changed. After updating the code to fix deprecation warnings, my immediate problem was that the debug version of the app wouldn't start up and I…

development

16 Jul 2024

Rob 1 min read

When using Docker Compose, I often map the ports to local ones in the compose.yaml like this: services: web: build: context: ./docker/web ports: - "8080:80" Adding to the port map If port 8080 is in use already on a developer's machine, then we can add a new mapping using compose.override.yaml services: web: build: context: ./docker/web ports: - "8081:80" The compose.override.yaml…

development

11 Jun 2024

Rob 1 min read

I recently released a new version of rst2pdf. We don't do this frequently and it would be very easy to get it wrong. As a result, we have a RELEASE_PROCESS.rst document in our repo that provides a step-by-step list of what to do. I can't emphasise enough how useful such a document is and every project should have one and…

development

30 Apr 2024

Rob 1 min read

I wanted to stash just the unstaged changes in my git repo. There's a git stash --staged which will stash the staged files, but I didn't see an equivalent to stash just the unstaged ones. Obviously, this is a common problem so a minute or two of googling will find the Git stash uncached: how to put away all unstaged…

command linedevelopment

27 Feb 2024

13 Feb 2024

Rob 2 min read

One nice thing about Go is that it can cross-compile which allows me to use my Mac to build binaries for different operating systems. This is increibly useful for providing binaries for Rodeo, my command line Flickr uploader. To do this we set the GOOS and GOARCH environment variables before calling go build. For example to build for x64 on…

developmentgorodeo flickr uploader

6 Feb 2024

28 Jun 2022

Sylvestor George 8 min read

In this article, “remote development environments” refer to AWS EC2 instances where engineers make code changes and can see a running Slack application with those changes. For years, engineers at Slack isolated and tested their changes by running microcosms of the Slack application on their local computers. This was difficult for many reasons: it involved…

uncategorizedcollaborationdeveloper-productivitydevelopmentdevtools

1 Sept 2021

Brian Riggsbee 5 min read

Agile development methods can bolster company culture and empower teams to move quickly, with a focus on frequently adding value for customers. Whether you are a program manager, game developer, event planner, or architect, within businesses where change is constant, it’s key to have flexibility, and that’s where agile shines. While there are a variety…

uncategorizeddevelopmentengineeringproduct-engineering

12 Oct 2018

Daniel Schmidt 1 min read

“It works on my machine” is something you don’t want to experience in your team. This is especially true when working on a React Native Application as your team might consist of Android Experts, iOS Experts, and Javascript Experts. The all know their part of the development environment very well, but errors in other parts might seem very alien to…

developmentjavascriptreact-nativereact

25 May 2018

15 May 2018

13 Apr 2018

2 Jun 2017

15 Apr 2015

Nicolas Mondollot 5 min read

illustration: Adrien Griveau Hi there. My name is Nicolas Mondollot, I am the CTO of Drivy — an awesome peer-to-peer car rental service. We launched our german website in early 2015. Here are some things we learned along the way. When you start a website you usually start small: one website, hosted on one domain, targeting one country and one…

startuptechdevelopment

9 Mar 2015

lukaseder 1 min read

Yak Shaving (uncountable): (idiomatic) Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem. (idiomatic) A less useful activity done to consciously or unconsciously procrastinate about a larger but more useful task. Both interpretations of the term Yak Shaving as explained by Wiktionary are absolutely accurate … Continue reading Yak Shaving…

javaopen-sourceapi designdevelopmentrefactoring