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.
- Ruby Retreat 2024 — 22 Oct 2024
- Use classes to represent data — 18 Sep 2024
- Debugging Checklist — 09 Jul 2024
- Separation of data and view layers in React components — 05 Jul 2024
- Decreasing Ruby app build times — 28 Jun 2024
- Scheduling with Ice Cube — 22 May 2024
- Thought Experiment: Without React or GraphQL — 20 May 2024
- What was that branch? — 14 May 2024
- code is like garden — 04 May 2024
- One year with the Ergodox EZ — 29 Apr 2024
- Tailwind has won — 26 Mar 2024
- View Components, Table Edition — 26 Jan 2024
- Audit Logging Notes — 20 Dec 2023
- NaNoWriMo Retro — 03 Dec 2023
- Ruby 3, Hashes and Keyword Arguments — 09 Nov 2023
- Saving time with fzf — 27 Aug 2023
- Ubuntu, Ruby, Selenium Manager, Chrome and ChromeDriver — 22 Aug 2023
- Alpine Linux, Selenium Manager, Chrome and ChromeDriver — 22 Aug 2023
- Zoom's return to the office — 07 Aug 2023
- How to fix: Chromedriver 115, cannot find chrome binary — 28 Jul 2023
- Rails 7, React, TypeScript, ESBuild and View Components — 01 Jun 2023
- Rails 7, Bootstrap CSS + JavaScript with ESBuild — 24 Apr 2023
- 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