Available for projects
Backend integrations that don't wake you up at 3 AM.
I build the data pipelines Shopify and SaaS companies depend on — retry-safe webhooks, inventory syncs, and API integrations engineered to run quietly in the background. 15+ years of Rails experience, AI-accelerated delivery.
Why reliability matters to your bottom line
In Shopify and SaaS, "almost working" isn't enough. A dropped webhook or a misaligned inventory sync can cost thousands in lost revenue and customer trust. I help companies replace webhook chaos with resilient, retry-safe pipelines that scale predictably — whether that's connecting Shopify to a complex 3PL or building custom SaaS automation. I focus on the edge cases others miss.
Specific problems I solve
- The overselling problem — You're selling on Shopify but your warehouse or 3PL isn't updating fast enough. I build real-time inventory syncs that account for pending orders and safety stock levels.
- The lost webhook nightmare — Standard webhooks fail. I implement robust, idempotent consumers with graceful retry handling so an order never gets lost between your store and your ERP.
- Complex data mapping — When your SaaS needs to talk to Shopify but the data structures don't align. I build middleware and translation layers so "Product A" in System 1 always equals "Product A" in System 2.
- High-volume scaling — Preparing your backend for BFCM or viral launches where API rate limits become a bottleneck. Queue architecture, backoff strategies, and load testing before the traffic hits.
- Legacy system integration — Safely bridging older databases or infrastructure with modern APIs, without rewriting everything from scratch.
- Infrastructure cost reduction — I've helped clients cut AWS bills by over 50% without sacrificing performance.
Stack & specialisation
I'm a specialist, not a generalist. My focus: Ruby on Rails, PostgreSQL, Sidekiq + Redis, and the Shopify ecosystem. That depth means I'm significantly more efficient than someone who works across 10 different languages and platforms.
Integrations: Shopify API, ShipStation, Stripe, Webflow, and custom REST/GraphQL APIs. I'm also a contributor to the ShipStation Ruby gem with deep knowledge of its internals.
Modern workflow: AI-accelerated development pipelines, automated test suites, and documentation your team can actually maintain after the engagement ends.
Real work, real results
-
The Hidden Problem with Shopify + ShipStation: Why Custom Packing Slips Aren't So Simple
Most ecommerce brands assume this is easy. It isn't — and I found a way around the limitations the official integration can't solve. -
Syncing Legacy ASP Data into Klaviyo: A Behind-The-Scenes Journey
How I helped a client bring years of customer history into Klaviyo — profiles, custom properties, and eCommerce events — through a bespoke WordPress plugin. -
Bridging Shopify and ShipStation on Heroku: A Story of Custom Fulfillment
When the native integration wasn't enough, I built a lightweight Heroku backend that passed exactly the custom data the client's warehouse needed. -
Building a Custom Klaviyo Subscription Plugin for WordPress
A client migrating from Rails to WordPress needed flexible multi-list subscription management. I built it from scratch. -
Cutting AWS Costs by Over 50%
How I helped an ecommerce client halve their infrastructure bill by moving managed OpenSearch and RDS to right-sized EC2 instances. -
Building the zenti-ruby Gem: A Payments Integration Story
Why I open-sourced a Ruby gem for the Zenti payments API — and how it quietly ended up behind millions in transactions. -
Is Upwork Worth It in 2025? My 12-Year Honest Take
Not a case study — just a straight answer after 12 years on the platform, from oDesk to today. -
The 'I' in AI Doesn't Stand for Intelligence: A Developer's Take on Vibe Coding
A real story of an AI agent turning a one-line git deploy into a token-burning, branch-switching mess — and why "vibe coding" isn't a substitute for actually knowing your stack. -
ShipStation Custom Fields 1, 2 and 3: How to Get Engraving Text and Gift Messages on a Packing Slip
The Shopify ShipStation connector only passes three custom fields, and none of them are per item. Here is what fails, what works, and what it costs to do it properly. -
Shopify Orders With No Tracking After ShipStation Ships Them: Why It Happens
Tracking numbers that never reach Shopify mean angry customers and extra support tickets. Here is where the sync breaks and how to build a safety net. -
Shopify Webhooks Missing Orders? How to Build an Order Sync That Survives Retries
Shopify webhooks can arrive late, twice, or in the wrong order. Here is how to build a receiver that never loses an order and never creates a duplicate. -
Shopify API Rate Limits During Black Friday: How to Keep Your Sync From Falling Behind
When traffic spikes, your integrations hit Shopify API limits and orders start to queue up. Here is how to design for it before the sale, not during it. -
Why Your Shopify Store Oversells When Your Warehouse Syncs Inventory
Overselling usually comes from how the sync is designed, not from a bug. Here are the common causes and a safer way to calculate what you can sell. -
How to Import Historical Orders Into Klaviyo Without Triggering Your Flows
Bringing years of customer history into Klaviyo is valuable, but a careless import can spam customers. Here is the order of operations I follow. -
Klaviyo Signup Form for Multiple Lists: Why One API Call Is Not Enough
Letting visitors pick several Klaviyo lists sounds easy until you meet the API. Here is how to do it reliably, including what to do when part of it fails. -
Is RDS Multi AZ Worth the Money for a Small Ecommerce Store?
Managed databases are comfortable and expensive. Here is how to decide whether you need them, using the questions I ask before touching a client's AWS bill. -
Shopify Metafields vs Line Item Properties: Where Should Your Custom Data Live?
Engraving text, gift messages, care instructions and VIP flags all need a home in Shopify. Here is how to choose between line item properties, metafields, cart attributes and notes. -
Handling Stripe Webhooks in Rails Without Double Fulfilling or Missing a Payment
Redirects fail, tabs get closed and Stripe sends events more than once. Here is how to build a Rails webhook handler you can trust with real orders. -
Sidekiq Retries and Idempotent Jobs for Ecommerce: Stop Sending Duplicate Orders
Sidekiq will run your job again after a failure, a crash or a deploy. If the job places an order or sends an email, that matters. Here is how to write jobs that are safe to repeat. -
ShipStation API for Rails Developers: Rate Limits, Webhooks and the Gotchas
Notes from building ShipStation integrations in Ruby: authentication, the request limit, how its webhooks really work, and the small details that cause big headaches. -
Where to Host a Small Integration Backend: Heroku and Its Alternatives
A webhook receiver and a few background workers do not need a big platform, but they do need to stay up. Here is how I think about choosing where they run. -
How to Hire a Developer for a Shopify Integration (and What to Ask Before You Sign)
A practical guide for store owners: how to describe the job, what questions reveal real experience, which red flags to watch for, and how to avoid owning a system nobody can maintain.
How I work
- Result-first — You share the business objective. I design the architecture and implement the code. AI makes me faster; 15 years of experience makes sure it's right.
- Async by default — Deep work over unnecessary meetings. You'll get regular, detailed progress updates and documentation that makes the system maintainable for years.
- Built to last — I don't just fix a bug; I build systems that keep working long after the project ends. The goal is to be the technical partner you only have to call once.
Is your project a good fit?
I work best with founders and product teams who value quality over shortcuts. The ideal situation: you have a working product, but the integrations and syncing are starting to crack as you scale.
If you're dealing with Shopify API limitations, inventory sync issues, or systems that don't talk to each other — let's fix it.
Payment
I accept PayPal for most clients. Crypto (Monero) also available — see Monerica.
Get occasional breakdowns
When I find something worth writing up — a fix, a pattern I keep seeing in client stores, something that actually moved revenue — I send it out. No schedule. No filler.