I build custom software, APIs, integrations, and backend systems that solve technical problems and connect the tools your business already depends on.
Most technical problems don't announce themselves as "we need a software engineer." They show up as something smaller that keeps costing time or money.
The technology is selected based on the problem, not the other way around — I don't force every project into the same stack.
Software engineering isn't just writing new code — a lot of it is understanding why something already built is behaving incorrectly. Root-cause analysis, debugging, API troubleshooting, webhook failures, data synchronization problems, workflow failures, third-party integration issues, performance bottlenecks, broken custom features, legacy/no-code migrations, and production deployment issues all fall under the same discipline: find out what's actually happening before deciding what to build.
Understand the business requirement and the existing system before proposing anything.
Inspect code, APIs, logs, workflows and data to find out what's actually happening.
Choose the simplest reliable architecture — not the most impressive one.
Implement the software, integration or automation according to that design.
Test edge cases, failure modes and real-world scenarios, not just the happy path.
Deploy safely and improve reliability or performance where the real usage shows it's needed.
Many developers build software in isolation — inside one application's codebase, disconnected from everything else the business runs on. My work often sits at the intersection of:
That means I can investigate problems that cross multiple systems — a CRM that's not syncing, a workflow that silently fails, an API that returns incomplete data — rather than only being able to look inside one application at a time.
Real projects, not hypothetical capabilities. Full detail on each is on the case studies page.
34+ rental properties across 5 booking platforms with no reliable single source of truth for schedules or revenue.
A self-healing iCal sync engine pulling 35+ calendar feeds every 30 minutes, plus WhatsApp automation and a direct Lodgify revenue API integration.
An application built on a no-code AI platform needed to move to independent infrastructure.
Full export and audit of everything the app depended on, then replicated functionality on self-hosted infrastructure with no ongoing platform dependency.
Back-in-stock alerts only worked per-product, not per-variant — a gap the store's app couldn't cover natively.
App settings audit plus a custom per-variant notification feature built for the store's specific workflow.
Customer and order data needed to flow from WooCommerce into Customer.io without manual CSV exports.
A direct integration syncing customer profiles and order events in real time, triggering email campaigns from actual purchase behavior.
Customer conversations on WhatsApp needed to run without a person manually replying to every message.
A WhatsApp Business API chatbot handling the core conversation flow, plus an automated follow-up sequence for customers who stop responding.
AI can be integrated into traditional software systems when it genuinely helps — LLM API integrations, AI-assisted workflows, AI agents, intelligent routing, AI classification, AI-powered customer support, AI data processing, and CRM + AI integrations. I treat AI as one more tool in the system, used specifically where judgment is needed, not layered on for its own sake. For the dedicated AI-agent side of this work, see AI automation services.
Custom software doesn't have to replace the tools you already use — it can sit alongside n8n, Make, Zapier, GoHighLevel, Shopify, your CRM, AI APIs, webhooks and databases, filling in exactly the gap those tools can't cover on their own. See how this plays out in n8n automation, CRM automation, GoHighLevel automation, and Shopify automation.
If a system is broken, disconnected, difficult to scale, or missing functionality, I can help investigate the problem and determine the right technical solution.