Tdd

21 Commandments for Greenfield Development

A Developer's Guide to New Projects  

The “greenfield” project is known by developers as a productivity Nirvana. It is a beautiful place where there is no legacy, no bugs and endless possibilities. It is also littered with mines.

I’ve recently seen a number of anti-patterns around the creation and early growth new projects, and thought I’d summarize the anti-patterns I’d seen in the past as a guide for developers to avoid these common pitfalls.

more»

Surgeons Who Won’t Sew

And What It Means for Your Engineering Team  

Then she gets up and leaves. The patient is still on dialysis, still bleeding in places, and their internal organs are still on show for everyone else in the room. The patient’s immediate future is secure, but eventually they are still going to bleed to death.

As a DevOps engineer, perhaps one of the best things you can do for an engineering team is to empower them to write and utilize tests. This may be as simple as setting them up with a hosted CircleCI account, or might be as involved as setting up an entire build pipeline on an internal CI system like TeamCity, AWS Codebuild or Jenkins.

more»

Qubula Puzzle Game

A game using ReactJS and MobX


Qubula is a puzzle game where puzzles are generated from a gene and a random seed.

An Elixir program generates the puzzles, and outputs level files in JSON.

The frontend of the game is built in ReactJS, with the frontend state management written using Mobx-state-tree.

more»

Ruby Service Objects

Live coding a utility gem for creating service objects

The Ruby on Rails framework often gets a lot of hate over the years.

Rails makes it easy to get up and running quickly. Unfortunately, its beginner-friendly approach leaves you high and dry months later when you have thousands of lines of code.

Rails applications of this type are often referred to as Rails monoliths.

One of the best ways to refactor and save an aging Rails monolith, is to extract service objects.

In these videos we create a “base service” which allows us to easily build service objects with powerful error handling and chaining capabilities.

more»