Case Study: Testing the Codium.AI VS Code Extension
How I wrote tests for a VS Code extension that relies on a React.js WebView as its UI, using Playwright, Mocha and some HTTP hacking
How I wrote tests for a VS Code extension that relies on a React.js WebView as its UI, using Playwright, Mocha and some HTTP hacking
Fakes are complete implementations of an API used to replace IO-bound adapters with memory-bound doubles to facilitate Acceptance Testing
Learning Tests are an easy and useful methodology for integration with new and unknown APIs, reducing stress and improving feedback times.
How I learned Flutter to create an iOS app for usage during concerts with my band, using TDD and Acceptance Testing.
How I used React with TypeScript and Firebase to build my own client management system, using TDD and Acceptance Testing.
Fixture test data create stale and outdated data, and make tests unreliable. Object Builders are a better way, here's how to use them.
Relying on .env files couples your codebase to env vars, making your software harder to change. Here's how to decouple them.
Code rots because we build too many features, too fast. Emergent Design is an effective way to fight code rot and make change easier.
How I helped Versatile remove fear of change in a key subsystem by introducing TDD and refactoring to Hexagonal Architecture.
Update, January 2022: Shortly after publishing this post the Mac failed to connect to the display. Through a friend who works at Apple I...
When there are too many dirty pots and plates in the sink, it's impossible to clean them. It's the same with software and technical debt.
In 1996, aged 16, I wrote a PC game called "Tzvika's Revenge", along with another friend who did the art. We stole the audio clips from...
Written 56 years ago, the Litany Against Fear plays an important part in the novel Dune, allowing the protagonist to overcome his...
Prototypes are a lie; when it's good enough for production, it *becomes* production. Here's how to make them easily maintainable.
For the past few months I've been working with a startup building a mobile app using #ReactNative. I last used #React back in 2016, and...
Writing features we might need in the future is not only a waste of time, it makes your software harder to maintain.
This blog post was originally published in the Orbs Engineering blog in 2018. My previous post described how the Go reference...
Hexagonal Architecture allows us to separate pure logic from external constraints and enables writing fast, integrative acceptance tests.