Available — senior / staff roles

Hi, I'm Owen.
I write PHP for a living,
and I'm not even mad about it.

Senior Developer based in Denver, Colorado. 20 years of shipping websites and web applications — mostly Drupal, sometimes other technologies.

~/owen.png
Owen Bush — portrait
go avs 512 × 512
experience
20y
shipping production PHP
primary stack
Drupal
+ PHP
D7 through D11, no skips.
located
Denver, CO
MDT · UTC−6 · a mile up
39.74°N · 104.99°W
get in touch
Let's talk about coding.
[email protected]
/ 01

About

— a short version

I've spent two decades writing PHP and, more specifically, being paid to understand Drupal deeply enough to have opinions about it that my family don't care to hear. I'm happy writing new code, integrating systems, and making things work. I am also proficient in working with legacy systems, and making them not broken anymore.

These days I lead backend work on enterprise Drupal platforms, review a lot of PRs, mentor juniors into seniors, and still write a alot of code. Outside the terminal: music production; hockey watching; and family raising are my main passions. I also love wings.

I believe in
  • + maintainable code
  • + standards compliance
  • + contribution to the community
  • + security best practices
  • code for the sake of code
/ 02

Stack

— what I reach for first
Backend
  • PHP 5 → 8.3
  • Drupal 7–11
  • Symfony
  • MySQL / MariaDB
  • Docker / DDEV
CI/CD
  • Git
  • Github Actions
  • Gitlab
  • Gitlab CI
  • Circle CI
Infra
  • Docker
  • Linux / shell
  • Nginx / Apache
  • Acquia / Pantheon / Amezmo / Digital Ocean
Also
  • Mentoring
  • Code review
  • British accents
  • Colorado Avalanche hockey
  • Electronic music production
/ 03

Work

— 2007 → now
2021 — now Senior Developer Lullabot 5y
2019 — 2021 Development Team Lead Interpersonal Frequency 2y
2017 — 2019 Drupal Engineer Interpersonal Frequency 2y
2017 — 2017 Lead Developer NEWMEDIA 1y
2015 — 2017 Backend Drupal Developer NEWMEDIA 2y
2013 — 2014 Senior Backend Web Developer Cogent Elliott 1y
2010 — 2013 Backend Web Developer Cogent Elliott 3y
2007 — 2010 Senior Developer Vizwoz 3y
/ 04

Projects

— open source & side quests
Drupal Contrib · PHP
drupal/conditions_helper
An API-only module designed to simplify the integration and utilization of Drupal Core's Conditions API.
Drupal Contrib · PHP
drupal/entity_type_access_conditions
A Drupal module that allows you to control access to entity types and their bundles based on configurable conditions.
Drupal Contrib · PHP
drupal/field_visibility_conditions
A Drupal module that allows you to control the visibility of fields based on configurable conditions.
Drupal Contrib · PHP
drupal/lb_styles_conditions
A Drupal module that allows you to control access to Layout Builder Styles based on configurable conditions.
Drupal Contrib · PHP
drupal/views_access_conditions
A Drupal module that allows you to control access to views based on configurable conditions.
Drupal Contrib · PHP
drupal/paragraphs_contextual_validation
Adds configurable rules to paragraph reference fields: limit how many times a type appears, require a type to be first or last, or require two types to be (or not be) adjacent.
Drupal Contrib · PHP
drupal/liquid_voting
Liquid Voting brings liquid democracy (proxy voting) to Drupal, built on top of VotingAPI.
Drupal Contrib · PHP
drupal/recurring_events
A plug-and-play recurring events and registration system designed to be site agnostic and extensible.
Drupal Contrib · PHP
drupal/field_inheritance
The field inheritance module can be considered to be a field-level entity reference alternative.
AI · TypeScript
Decodie Skill
An AI agent skill that generates structured learning entries as a byproduct of AI-assisted coding sessions.
AI · TypeScript
Decodie UI
A browsable, filterable interface for exploring learning entries generated by the decodie-skill during coding sessions.
AI · TypeScript
Decodie VSCode Extension
View and create Decodie learning entries directly in your editor.
AI · Shell
Decodie DDEV Extension
A DDEV add-on that integrates the Decodie learning companion into your local development environment.
AI · Github
Decodie Github Action
Automatically analyze changed files in pull requests and generate Decodie learning entries using the same skill that powers Claude Code and the VSCode extension.
AI · Github
Decodie Github Bot
An interactive GitHub bot that responds to @decodie-bot mentions in pull request comments. Mention it on highlighted code to get an explanation, or in a top-level comment to generate Decodie learning entries for the PR.
Music · TypeScript
Ableton Inspector
Extract comprehensive information from Ableton Live Set (.als) files including tempo, time signature, musical key, samples, song structure, and track organization.
Music · TypeScript
Splice Chrome Extension
A Chrome extension that automates the process of generating certified licenses for multiple Splice samples at once.
/ 05

Speaking

— selected talks
2025
Rule Your Platform: Leveraging Drupal's Conditions API for Modular Site Control
DrupalCamp Colorado
2023
Habits of an Effective Drupal Contributor
DrupalCon Pittsburgh
2020
Recurring Events Module
Drupal GovCon
2019
An Introduction to the Recurring Events Module
DrupalCamp Colorado
2017
Building a Donation Form Management System for Denver Rescue Mission
DrupalCamp Colorado
/ 06

Contact

— say hi
/ get in touch

Like the cut of my jib?
Then say hi.