Writing30
Measuring before tooling: where AI investment in engineering should go
To target investment where it can make the biggest difference, start with measurement and understanding before rolling out more tools.
April Reading List
A collection of things I read in April that stuck with me, covering AI agents, tooling and other interesting blog posts.
Hardening npm dependency security
Approaches to reduce the risk of supply chain attacks in npm dependencies.
Caching & CDNs with micro-frontends
How we've approached caching in a micro-frontend architecture
You can't trust agent tests
Why passing tests aren't correct tests, and how to get an agent to validate them
Moving fast with agents without losing comprehension
On test coverage, code authorship, and what reviewers need from you when agents are doing the writing
AI agents and platform teams
How I'm using AI agents for platform team work
React design system library MCP
Exposing Storybook documentation to AI agents via an MCP server
Open sourcing our microfrontend React bridge
A library for rendering microfrontends in separate React trees
Get new posts by email
Occasional notes on platform engineering, AI agents and frontend architecture. No spam, unsubscribe anytime.
Reflecting on Enterprise Engineering Summit 2025
Key takeaways from the Enterprise Engineering Summit 2025
Migrating to Vite
Switching to use Vite for building a React component library
Package exports and eslint-plugin-import
Resolving package.json exports with eslint-plugin-import
Creating your own React design system analytics tool
Using react-scanner to implement an Omlet alternative
Upgrading React with micro-frontends
How to upgrade React incrementally across multiple micro-frontends
Module not available for eager consumption
Fixing a Module Federation error
Delay using a federated module
Ensure federated module has loaded before using it
Using the experimental React Compiler
Trying out the React Compiler with React 19 beta
Using GitLab API to create a DORA metrics dashboard
Measure developer team productivity using deployment frequency and lead time for changes
Using TypedDict with invalid attribute names
How to use a TypedDict with item keys that aren't valid identifiers
Mock server-sent events (SSE) with msw
Mock Service Worker supports mocking SSE
Exclude node_modules with Webpack
Avoid bundling dependencies when building a library
Accessibility testing
Overview of approaches and tools for testing web accessibility
Dynamically load remoteEntry.js files
Control loading Webpack Module Federation remoteEntry.js files to improve peformance
Configure Boto3 endpoint_url
Use environment variables to point Boto3 at local services
Mocking Boto3 with pytest
Mock requests to AWS services with pytest
Platform team challenges
Challenges faced when introducing a platform team
Python TypedDict with Generics
How to define a Python type for a dict with generic values
Contract testing with OpenAPI & TypeScript
Validate contracts between backend services and frontend applications