I am a passionate developer with over a decade of IT experience since 2012. I have been a developer, a project engineer and a tech sales and then came back to development because this is the activity I love. I’m interested in state-of-the-art methodologies like Test-Driven Development and Pair Programming.
I have developed on many stacks from assembler & C to Swift. Lately I’m into full-stack web development with React & Vue and node.js & python over various platforms like AWS and Cloudflare.
I enjoy sharing my knowledge and regularly speak at conferences and meetups. Here is a list of my talks with associated materials.
Below is a list of videos that helped me shape my views.
- Engineering
- Adventures in Spacetime - Kevlin Henney - NDC London 2025 - YouTube
- Opening Keynote: Greg Young - Stop Over-Engenering - YouTube
- Programming’s Greatest Mistakes • Mark Rendle • GOTO 2023
- Tidy First? A Daily Exercise in Empirical Design • Kent Beck • GOTO 2024
- Failure Is Always An Option • Dylan Beattie • GOTO 2023
- Refactoring & testing
- Structure and Interpretation of Test Cases • Kevlin Henney • GOTO 2022 - YouTube
- Refactoring Is Not Just Clickbait - Kevlin Henney - NDC London 2023 - YouTube
- Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 - YouTube
- Part 1/3 - Introducing the Gilded Rose kata and writing test cases using Approval Tests, Emily Bache - YouTube
- Part 2/3 - Refactoring item logic using ‘lift up conditional’, Emily Bache - YouTube
- Part 3/3 - Replace Conditional with Polymorphism, Emily Bache - YouTube
- From 0% to Cleanly Refactored 100% tested code - Llewellyn Falco - Craft 2019
- AI-assisted programming
- Architecture
- Microservices
- Event Sourcing & CQRS
- Event Storming
- Redux
- RxJS
- IaC Infrastructure as Code
- NoSQL
- DynamoDB
- AWS re:Invent 2018: Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401) - YouTube
- AWS re:Invent 2023 - Data modeling core concepts for Amazon DynamoDB (DAT329) - YouTube
- AWS re:Invent 2023 - Advanced data modeling with Amazon DynamoDB (DAT410) - YouTube
- AWS re:Invent 2023 - Dive deep into Amazon DynamoDB (DAT330) - YouTube
-
Approach to refactoring with AI
AI has been widely adopted in software development for some time now. It’s a decent tool for creating new code, but when it comes to refactoring, I believe, there’s a fundamental flaw…
-
Conventional Commits with Risk
This article is about a small idea we tried in our open-source project: adding a “risk” mark to Conventional Commits. Just a few symbols help to see fast which commits are safe, which need testing, and which are risky. It started as an experiment, but it really changed how we think about testing and releasing.
-
Testing the Behavior of a GraphQL Schema
I submit a PR that adds a new resolver to my GraphQL schema. My teammate tells me they’ve merged and deployed it. But when I try to access the new resolver, it isn’t reachable, and I can’t figure out why. I check the infrastructure test and see that the schema has changed - but my resolver is missing. I start losing my mind.
-
Test-Driven Education
In a recent discussion with one of my mentors in full-stack web development, I was explaining how I learned certain frameworks and libraries. After seeing my approach, he remarked, “This looks like… Test-Driven Education.”
-
Overcoming the Struggles of Naming Variables
While contributing to the obsidian-tasks project with Clare Macrae, I was introduced to two powerful concepts that helped me tackle one of the hardest problems in programming - naming variables.
-
Data flow approach to full stack web-development
The way I am developing features for full stack applications has a pattern. I’m pretty sure that I’m not inventing anything new, this is more of an exercise for me to bring clarity to myself first, but maybe someone can find this helpful too.
-
Automated and versioned type importing from GraphQL schema
While recently working on a GraphQL project I had a task where the schema (part of the Infrastructure-as-Code) had to be exported to the frontend and the backend in TypeScript.
-
Testing Svelte reactivity with a wrapper
In an open-source project that I’m co-developing with Clare Macrae, we had to TDD some functionality in a Svelte component, but first we had to cover the behaviour of the existing component with tests looking like “The user has done this, test that the component has behaved like that”.
-
Programming Culture
Once I had a conversation about programming education with a director of a programming school. There was one word in that conversation that shifted it into a whole new direction.