CRM & ERP: the systems behind the business, not the dashboards
Most of my time over the last several years has been on CRM and ERP systems, production-scale platforms where the data model is the business and downtime is measured in angry phone calls, not blog posts. Real estate operations, brokerages, sales pipelines, document workflows. Systems where the schema decisions you make in week one are still showing up in week 200.
The pattern that holds across all of them: schema-first thinking. Migrations, indices, constraints, designed before the UI exists, because the UI changes monthly, but the data lives for the lifetime of the business. The Laravel/Lumen ecosystem has been the consistent backbone, with Angular/Next.js handling the UX layer. CRUD is the easy half. The hard half is the integration surface: telephony, listing portals, ad platforms, finance systems, and the auth/permissions matrix nobody wants to talk about until it's broken.
Backend & APIs: where business logic actually lives
REST APIs, webhooks, queue workers, async job processing. I treat the backend as the thing that has to survive load and survive change, not the thing that ships features fastest. SQL optimization for high-volume tables. Validation layers that fail loud before bad data lands. Webhook signing, idempotency keys, retry policies: the unsexy plumbing that decides whether your platform feels reliable or feels like dice.
I've built integration surfaces in fintech (partner callbacks, third-party API integrations, production debugging in Agile teams) and in real estate (listing portal sync, lead ingestion, telephony hooks). The common thread isn't the domain; it's the discipline of treating each external integration as a contract you can't fully trust, and wrapping it in code that knows how to fail safely.
AI workflows: useful AI, not LinkedIn AI
The chatbot you're likely reading this with is a small example: a portfolio assistant grounded on a live snapshot of this site, with explicit anti-fabrication rules baked into the system prompt. The same playbook scales to RAG backed lead scoring, internal Q&A bots grounded on real documentation, and pipelines where an LLM is one step in a longer automation, not the entire product.
Tools: OpenAI / Anthropic / Gemini / xAI provider APIs, vector stores (Pinecone), n8n and Zapier for orchestration, LangChain where it actually adds value. The principle is always the same: ground the model on real data, constrain its outputs, log everything, and treat the LLM as a fallible component; never as the source of truth.
AWS & delivery: boring infra is good infra
Production runs on AWS: EC2, RDS, S3, fronted by Apache or Nginx, with CI/CD via GitHub Actions and TLS via Let's Encrypt. Cloudflare for DNS, edge caching, and DDoS. Docker for containerized deploys. PM2 for Node processes. The unglamorous list, because nothing about production should be interesting.
I own what I ship: meaning I sit on-call when it breaks and I write the runbook before that happens. Migrations get zero downtime patterns. Backups get tested, not just configured. The boring parts are where most teams lose weeks of recovery time.
Frontend modernization: Angular upgrades, performance, UX
Angular v9 → v17 upgrade paths. Performance budgets that hold up on slow networks. Accessibility passes that don't feel like a checkbox exercise. React/Next.js for greenfield projects where SSR and edge rendering pay off. The end goal is the same in either ecosystem: internal teams ship faster because the codebase doesn't fight them.
How I actually work
Five concrete steps. No agency theatre.
- Discover. Map the business process, find the bottleneck, agree on what success looks like: measurable, not vibes.
- Design data. Schema-first. Migrations, indices, constraints; production scale planned from day one.
- Ship clean UI. Angular / Next.js with real world UX, not just CRUD. Mobile first, accessible, fast.
- Automate. Background jobs, AI workflows, n8n triggers. The boring parts run themselves.
- Deploy & own. AWS-ready CI/CD, monitoring, on-call. I own what I ship, even after launch.
Read the actual case studies
The above is the worldview. Below are the receipts: the full case studies with decisions, tradeoffs, and what broke along the way.
Want everything? View Work/Case Studies →
If any of this lines up with what you're trying to ship, whether that is CRM, ERP, AI workflows, or AWS delivery, the fastest move is a short call. I'll be honest about whether I'm the right fit and what a realistic timeline looks like.