The Life and Death of a Pipeline Master
12 November, 2018Originally posted in late 2015 or early 2016 as an internal blog post. It tells the story of introducing and later abandoning a strategy for…
Software Development is a Team Sport
21 April, 2018What does it mean to be a member of a “software development team?” Is the team a single collective, or a collection of individuals? When…
Exposing CSS Hidden Complexities with React
18 November, 2017When we create web applications we use style sheets to describe presentation, and we use JavaScript to manage all the bits of state and…
The State of CSS
25 May, 2017It’s no secret that we are currently experiencing a Cambrian explosion of innovation by the JavaScript community. But what you may not be…
I’ve noticed some confusion in how Single Page Applications are served among developers who are new to these apps. This post is a short…
An Exploration of JavaScript Builders
03 March, 2017Builders seems to be a popular topic for me, as I’ve blogged about the builder pattern before . This time, however, I look at builders…
It's not magic, you just don't understand it yet
19 November, 2016Dev 1 : “Wait, how did it do that?” Dev 2 : “I have not clue, it’s Spring * magic.” Dev 1 : “Oh well, as long as it just works…
On Injecting a JavaScript Environment
04 November, 2016Updated 2017-02-12 : Added a strategy for loading configuration at initial page load, using an “env.js” file. Recently, I needed to inject…
Harmonious Stylesheets and Inline Styles in React
15 October, 2016Styling React components seems to be one of those things where there are a lot of solutions ( libraries ) emerging that try to solve the…
Homogeneous Pipelines with Docker
26 September, 2016Continuous Integration Build Pipelines are a dirty, nasty place. What usually starts out as a couple of simple tasks or bash scripts…
We ended Part II with an inner Builder for , which forced us to revert to specifying seemingly arbitrary values in each test that needed…
In Part I , we created a separate Builder class in an attempt to move away from a constructor with too many parameters. In the process, the…
Over the past few months on my project, a pattern emerged for using Builders and Object Mothers to build-up objects for unit testing. We…
YAGNI a'int a Design Principle
12 February, 2016You Ain’t Gonna Need It is an XP practice that encourages developers to focus on the requirements at hand right now. It warns against the…
You're a Champion
23 January, 2016Recently, my team embarked on a strategy/experiment designed to distribute the effort of driving features from inception through completion…
Database Migrations Best Practices
15 August, 2015Only once have I worked on a project that did not interact directly with a relational database. (Awww, those were the days) In every other…
Hackathons for the Enterprise
26 July, 2015A few months ago I helped to plan and execute a Hackathon for my project team. Though it was not the first team Hackathon I have…
Watching the Watchers in AngularJS
07 April, 2015I have been doing quite a bit of AngularJS performance tweaking on my latest project. It is no secret that Angular performance can quickly…
Easing into Rubocop with git
25 February, 2015Dropping Rubocop into an existing codebase We (my team) recently introduced rubocop to a Rails app and a Sinatra app to encourage (aka…
How to Support Apprentices on an Agile Development Team
26 January, 2015Recently, my team was tasked with figuring out how to introduce what we chose to call “Apprentice Developers” into the team in order to help…
Testing JavaScript Web Workers with Jasmine
29 August, 2014JavaScript Web Workers have been around for awhile now, but I had not needed them until recently. Without going into too much domain…
GOTO Chicago 2014 Experience Report
26 May, 2014I had the privilege of attending Goto;con 2014 in Chicago. It was smaller than I anticipated, spread over just a few conference rooms in a…
Meet LazyDoc
25 December, 2013I’ve been pretty heads down in a ThoughtWorks project for the better part of 2013 and have unfortunately neglected this blog. But 2014 is…
Fun With Rails I18n
29 January, 2013Skipping the Basics… Anyone wanting to develop a truly internationalized application needs to address translating the text of the app into…
Rails Controller Specs Don't Always Play Nice With Hashie
26 December, 2012Hashie and Rspec - The Problem: Hashie is a neat little Ruby gem that extends Hash and gives object-like access and functionality to hashes…