Why We Don't Do Daily Stand-Ups at Supercede
Published on August 30, 2021
A hard look at the motivations for — and inevitable realities of — the Cult of Agile daily stand-up. This toxic workplace ritual is designed to demoralise engineers and perpetuate micromanagement. Stop doing them.
20% Time at Supercede
Published on June 23, 2021
Software development is all about discovery and invention, and it'd be foolish for a business to relegate that time to evenings and weekends. At Supercede, we set explicit work time for this every week.
How I Write Elm Applications
Published on November 7, 2020
This covers a few patterns that I often lean on when writing non-trivial single-page applications in Elm. The bulk of this is breaking apart the application state, and then traversing it with lenses.
Why I Love Monday Mornings
Published on May 22, 2020
An exercise in gratitude and inclusivity. An explicit, recurring opportunity for everyone on the team to speak up. It costs nothing, and yet it changes everything. Try it!
How I Work From Anywhere in the World
Published on February 2, 2020
There are many wonderful places to be in the world, but few that are nice to be in year round, at least in terms of climate and economics. I'm using a few specific tools to help navigate this.
Rewriting Routes in Yesod
Published on January 22, 2020
Routes that are clear and comprehensible to the user are fundamental to good web application design. With a bit of care, we can tidy up some routes that would typically be noisy in a Yesod application.
Bleep. Bloop. I Am Approving Your Transaction.
Published on October 5, 2019
Sometimes what you really need in your software system is a helping hand from a tiny robotic friend.
On Technical Debt
Published on October 4, 2019
Implementing a Content Security Policy in Yesod
Published on September 21, 2019
Tracing User Requests in Yesod
Published on July 9, 2019
Rich Hickey Doesn't Know Types
Published on April 9, 2019
Sorry Rich, typing preferences are one thing, but the implication that parametricity is effectively useless is just a bridge too far. You can't expect to say something wrong on the Internet and get away with it!
You Think CSS-in-JS is Bad?
Published on January 30, 2019
Yes, web development really was this crazy a decade ago. And this only scratches the surface!
Hello World in Haskell
Published on January 27, 2019
Keeping CSS Simple
Published on January 12, 2019
Modern CSS tooling gives you so much added power. But are you sure it's more power that you want? Perhaps it's time we stop digging ourselves a deeper hole.
Silence, At Last
Published on December 14, 2018
Yesod is a Minimal Web Framework
Published on December 13, 2018
Published on February 1, 2017
The Knowledge Is A Scam
Published on January 30, 2017
Showing The Weather In Tmux
Published on September 23, 2016
Bash scripting for fun and profit. And the weather, obviously.
Git Is Your Single Point Of Truth
Published on August 19, 2016
Not all project management tools are created equal, and most of them are fundamentally flawed with regards to one of the most important aspects of a software development project. Here's one that isn't.
Published on May 28, 2016
Some fuel to stoke the flames of the language wars.
Working In The Dark
Published on March 6, 2016
It's not uncommon to work unsociable hours, be that because of deadlines, midnight inspiration, or just skipping a few timezones. But that doesn't mean your eyes have to suffer. Here's how I protect mine.
Deploying A Haskell Web Service With Nix
Published on February 1, 2016
The entire process from zero to “Hello, Haskell!” running on a cheap Amazon EC2 instance.
The Case Against Dynamic Typing
Published on January 26, 2016
You can have your cake, you can eat your cake, and you can automatically verify the fundamental correctness of the pâtisserie at bake-time.
Code Review Done Right
Published on November 24, 2015
Code review is an oddly bureacratic process for a team of software developers to follow. What follows are my non-technical thoughts on conducting constructive, humane reviews of code.
My Uncomplicated Git Workflow
Published on November 12, 2015
Stop screwing around with version control ceremony and learn to love Git from the command line.
The World's Most Boring Build System
Published on November 11, 2015
Visualising Code Growth with Git and D3.js
Published on October 25, 2015
Using Git to Manage Todos
Published on October 19, 2015
The TODO comments in your codebase will linger and rot, but this small bash script will coerce your team into cleaning up after themselves.
How I Write Invoices in Vim
Published on September 5, 2015
I use Vim for writing code, composing emails, taking notes, and just about everything. It makes sense to use it for building business paperwork too.
How I Find and Replace in Vim
Published on September 2, 2015
A simple and effective way to find and replace across an entire project with plain Vim, without plugins.
Automatic Quality Assurance with Git Hooks
Published on June 22, 2015
How to use a pre-commit hook in Git to make sure every commit passes all tests and style checks.
Moving to the Beginning of the Line
Published on May 26, 2015
A nice little Vim function that moves the cursor to the first non-whitespace character on the current line, or the first column if it was already on the first character.
Shell Script Static Analysis in Vim
Published on May 17, 2015
How to configure Vim to provide immediate feedback on the quality of your shell scripts.
Free Internet on Trains
Published on May 7, 2015
A bash function for changing your MAC address on OSX which usually works around Internet access time limits on public WiFi hotspots.
Working with Whitespace
Published on December 21, 2014
A couple of tips for weeding out trailing whitespace and unnecessary blank lines in Vim.
Folding Paragraphs in Vim
Published on October 29, 2014
Tame hairy text files with a fold expression.
Red, Green, WTF?
Published on May 8, 2014
Published on December 9, 2013
A visualisation experiment in Sass using loops and animation.
Published on August 8, 2013
Animating the border-radius property with CSS3 for fun and profit.
Published on July 2, 2013
A brief overview of the hardware and software I use to Get Stuff Done™.