The last 100 blog posts
The formatting for earlier posts may be a little skewiff. If you find something like that, patches are very welcome.
- Open Letter to the Rails Foundation — 09 Mar 2023
- Please explain, Elastic Search — 02 Mar 2023
- Why game programming and why Magic? — 07 Feb 2023
- Are the switches on a Kinesis Gaming Freestyle Edge RGB Keyboard hot-swappable? — 28 Jan 2023
- Ruby GraphQL field notes — 24 Jan 2023
- The method method — 20 Jan 2023
- CSS :has selector for selects that have options — 02 Dec 2022
- Hanami 2.0 Thoughts — 28 Nov 2022
- The Gem Foundation — 24 Nov 2022
- A replacement for strong parameters — 09 Nov 2022
- Using Union Types with GraphQL Mutations in Ruby — 06 May 2022
- Typed View Components with dry-types — 08 Mar 2022
- Culture and Values — 09 Dec 2021
- A tour of Twist — 11 Aug 2021
- On coding tests — 27 Jul 2021
- Using Ruby 2.7's new triple-dot syntax to clean up service objects — 21 Jul 2021
- Job Hunt Q2 2021 — 19 Jul 2021
- How I found a new contract gig — 29 Apr 2021
- View Components: The Missing Link — 07 Apr 2021
- The Bikeshed — 29 Mar 2021
- Maintainable Rails — 23 Mar 2021
- Contracting as a developer in Australia — 04 Mar 2021
- Twist V2 - Live Coding — 13 Jan 2021
- React Select + Capybara + Selenium — 23 Sep 2020
- Selenium, Capybara, ChromeDriver: connection refused error debugging — 29 Aug 2020
- How to tidy up Git Pull Requests — 23 Apr 2020
- The Stand Down — 06 Apr 2020
- ROM and Dry Showcase: Part 4 — 20 Feb 2020
- ROM + Dry Showcase: Part 3 - Testing — 03 Feb 2020
- ROM + Dry Showcase: Part 2 - Validations & Operations — 02 Feb 2020
- ROM + Dry Showcase: Part 1 - Application + Database setup — 01 Feb 2020
- Getting Started with Rails: Extended Edition — 19 Jan 2020
- They fixed the keyboard — 28 Nov 2019
- Rough Edges — 18 Nov 2019
- RubyConf Indonesia Keynote - Transcript — 19 Sep 2019
- The 2018 MacBook Pro Keyboard Drives Me Crazy — 29 Aug 2019
- Culture Amp Junior Engineering Program Discontinued — 16 Jul 2019
- Ruby Trickery — 05 Mar 2019
- JEP #2: The first 8 weeks — 04 Mar 2019
- Polymorphic Routes — 13 Dec 2018
- Working Towards Integration Testing Duolithic Applications — 16 Oct 2018
- Junior Engineering Program: Resources — 29 Aug 2018
- Junior Engineering Program: Onboarding — 28 Aug 2018
- Junior Engineering Program: Launch — 27 Aug 2018
- Culture Amp Junior Engineering Program: Retrospective — 27 Aug 2018
- Joy of Elixir - Progress Update — 22 Aug 2018
- Web Directions Code Leaders: Hiring Juniors — 02 Aug 2018
- Making Tests Go Faster — 15 Jun 2018
- On Writing Software Well #2: Using callbacks to manage auxiliary complexity: A review — 15 Mar 2018
- My thoughts on Hanami — 07 Mar 2018
- Hiring Juniors (RubyConf AU Talk) — 07 Mar 2018
- How require loads a gem — 03 Nov 2017
- Rails, Dropzone.js, Amazon S3 and imgix — 28 Aug 2017
- Joy of Elixir — 27 Jul 2017
- Rails' CurrentAttributes considered harmful — 22 Jun 2017
- Rails 5 in Action — 30 Mar 2017
- Toy Robot, Deep Dive Rails and AsciiDoc Toolchain — 20 Feb 2017
- Validating nested JSON data with ex_json_schema — 24 Nov 2016
- Elixir Tip: Enum.any? + match? — 28 May 2016
- Multitenancy with Rails 2nd Edition — 22 May 2016
- Working with date ranges in Active Record — 09 Mar 2016
- Truncating indexes in Elasticsearch 2 — 22 Feb 2016
- Programming Phoenix Review — 24 Dec 2015
- Open source work — 16 Nov 2015
- Active Record, change_column and scales — 10 Nov 2015
- My self-publishing success story — 06 Aug 2015
- Deploying a Rails application on Ubuntu: Passenger Edition — 08 Jul 2015
- Mac OS X, Ruby, ruby-install, chruby and You — 09 Jun 2015
- Getting started with Ruby and Rails — 30 Apr 2015
- Filtering by index in Elasticsearch — 03 Dec 2014
- Ubuntu, Ruby, ruby-install, chruby, Rails and You — 05 Oct 2014
- Working Remotely — 02 Oct 2014
- Go package management — 02 Sep 2014
- Thoughts on Go — 08 Aug 2014
- Add header to Rack::Test request — 06 Aug 2014
- Ryan Bigg is now a Git... — 22 Jul 2014
- Initial thoughts on Lotus — 19 Jun 2014
- Spree, Factories and Callbacks — 17 Jun 2014
- Community Management — 02 Apr 2014
- Violence in the Ruby community — 14 Oct 2013
- Order adjustments within Spree — 24 Sep 2013
- Debugging Rails Controllers — 05 Sep 2013
- Bundler local paths — 16 Aug 2013
- Waiting for AJAX in Capybara — 09 Jul 2013
- Finding SQL queries in Rails — 26 Jun 2013
- About spec/support — 02 Feb 2013
- Multitenancy with Rails — 21 Jan 2013
- A story about scaffolding — 07 Jan 2013
- No more writing for Manning — 12 Nov 2012
- I didn't submit a talk to RubyConf Australia — 01 Nov 2012
- JavaScript Arrays and Objects — 03 Oct 2012
- On Hiring — 25 May 2012
- How not to hire me — 25 May 2012
- Engines talk — 19 May 2012
- Caffeine and Sleep — 27 Apr 2012
- Integration testing engines — 26 Apr 2012
- Polymorphic Routes — 27 Mar 2012
- Please learn Rails — 17 Mar 2012
- Frontier, we need to talk — 14 Mar 2012
- Engines and Authentication — 03 Mar 2012