I build, improve, automate and rescue Ruby on Rails applications.

12+ yearsBlock (Cash App)ZiplineQantas Hotels

I believe good software should be reliable, well-tested and easy to maintain. I also enjoy learning how different businesses work and figuring out what kind of software would make the biggest difference.

For small and medium businesses, that often means replacing complex spreadsheets, repetitive admin or manual data entry with custom applications and automated workflows. My focus is on solving the right problem, saving time and reducing mistakes.

I'm equally comfortable helping a startup turn an idea into a SaaS prototype or MVP, or working in a large, established Rails codebase. Much of my experience is in maintaining and modernising complex applications by adding useful features and bringing them up to current standards without rewriting what already works.

Available for freelance or contract work

Services

How I can help.

Build

  • Internal business applications
  • SaaS prototypes and MVPs
  • Customer portals
  • E-commerce and payments
  • API integrations
  • Responsive desktop, tablet and mobile design

Improve

  • New features
  • Bug fixes
  • Test coverage
  • Performance improvements
  • Security hardening
  • Dependency upgrades

Automate

  • Spreadsheet replacements
  • Repetitive admin tasks
  • Data entry and imports
  • Copy-and-paste workflows
  • Report generation
  • Collate data from multiple sources

Rescue

  • Urgent production fixes
  • Legacy Rails application audits
  • Finish vibecoded apps
  • Stabilise buggy AI code
  • Security checks
  • Broken deployments and failing tests

Contract work is also available. Short-term engagements with your existing team are welcome when you need an experienced Rails hand without committing to a permanent hire, even just for a week or two if that's all that's needed.

Work History

12+ years of Rails across product companies and big-tech scale.

Block / Cash App

2024-2026

Senior Software Engineer

High-scale card issuing and digital wallet token infrastructure at Cash App. Built event-driven systems and card fulfilment pipelines, extracted core domains from a large monolith into microservices processing tens of millions of events a month.

Zipline

2021-2024

Senior Software Engineer

A healthcare compliance SaaS for hospitals and aged care providers built in Ruby on Rails at an early-stage startup, pivoting often based on customer feedback. Led major migration of customer data from Firebase to PostgreSQL, built multiple APIs for importing data from external systems.

Qantas Hotels

2014-2021

Senior Software Engineer

Hotel booking platform, working as it moved from a large Rails monolith toward a service-oriented architecture. Built the internal event-sourcing framework, led the Qantas Frequent Flyer Points integration, connected the platform to partner APIs including Expedia, Mastercard, and Adyen.

Verify on LinkedIn →

Portfolio

01 / Block · Senior Software Engineer · 2024–2026

Cash App

At Block, I worked on the backend infrastructure behind Cash App Card issuing and digital wallet tokenisation.

I built event-driven card fulfilment pipelines and helped extract core domains from a large Rails monolith into microservices processing tens of millions of events each month.

There are no public screenshots for this project because my work was primarily on internal backend systems and infrastructure.

02 / Qantas Hotels · Senior Software Engineer · 2014–2021

Qantas Hotels

Qantas Hotels is a large hotel search and booking platform integrated with the Qantas Frequent Flyer program.

I worked on the platform for seven years as it evolved from a large Rails monolith toward a service-oriented architecture. I helped build its internal event-sourcing framework, led the Frequent Flyer points integration, and connected partner APIs including Expedia, Mastercard and Adyen.

03 / Freelance client project

Profit on Props

profitonprops.com

Profit on Props is a profit tracking journal for prop firm traders, bringing accounts, trades, balances, targets, rules and progress together instead of relying on scattered notes and spreadsheets.

I took a half-finished vibecoded prototype through to launch readiness by adding features, fixing bugs, building test coverage, improving deployment, and redesigning the dashboard and account pages.

Pricing

Free fixed-price quotes upfront.

I will provide a fixed-price quote for every task or project and we agree on scope and payment terms before work begins. It is often easier to understand requirements by discussing them on a video call so I will likely request to schedule one for any work other than small tasks. This will enable me to provide the most accurate fixed-price quote possible.

Smaller tasks estimated at less than ten hours will be quoted at my standard hourly rate, otherwise my discounted rate will be applied.

Rates

Standard

$120

AUD/hour · plus GST

10+ Hours · Discounted

$100

AUD/hour · plus GST

Contract

$750

AUD/day · plus GST

Scope

Scope often changes as work progresses. If unforeseen issues come up, or a new piece of work is needed, I will discuss it with you and quote it separately before continuing. You will never be hit with unexpected costs, and no additional work happens without your approval.

Payment

Smaller tasks quoted at the standard rate will require a 20% deposit upfront. Larger projects will typically be divided into milestones with payment at the completion of each stage.

Payment is currently accepted via Wise. Bank transfer can also be arranged for Australian clients.

Milestones

Milestones reduce risk. Larger projects can be broken into smaller milestones, so you only commit to the next useful piece of work instead of the whole project upfront.

Get In Touch

Share your requirements or just ask a question.

Whether you're not sure where to start and need help to figure it out or you know exactly what you want, give me as much detail as you can and I'll do my best to help.

Safety Note

Please do not send passwords, API keys, production secrets, or private repository invites in this form. We will agree on a safe access path once the engagement is confirmed.