Backend Engineering

Services, APIs, event consumers and the data they own.

evidenced in: 6 case studies · 1 companies
DynamoxDistributed Systems
Accepting inspection answers instantly and processing them durably, with an outbox
Redesigned how field inspectors' answers reach the platform, so the mobile app gets an immediate confirmation after validation while a background consumer processes the answers durably, with retries and traceable failures; outcome qualitative, not measured.
DynamoxGreenfield
Moving customer reporting off the transactional database
Customer-facing indicators were timing out as analytical queries competed with live application traffic. I authored the architecture decision to separate the workloads, revised it to account for warehouse latency, and helped another engineer establish the service foundation. Rollout is in progress; end-state latency has not been measured.
DynamoxIncident
Correcting production data safely with reversible, auditable tooling
Corrected tens of thousands of corrupted production records (~33k in one case) with no maintenance window, using reusable CLI commands with dry-run, rollback files, batch auditing and event re-publishing, a "correction command" pattern the team then reused.
DynamoxSecurity
Making container and dependency hardening a standing practice, not an audit response
Turned container and dependency hardening into a standing quarterly practice across two backend services over four quarters, covering non-root runtimes, 135 CVEs flagged and all 7 rated critical remediated in the first pass, then a base-image and dependency overhaul that took the audit from 69 findings to 16, unfixable OS CVEs from 160 to 0, and the final image from 1.64 GB to 463 MB, with exploitability-based accepted risk documented rather than version numbers chased, and one self-inflicted rollout regression root-caused and fixed the same day.
DynamoxDistributed Systems
Synchronizing a Cross-Service Data Edit Atomically
Made an edit to an organizational node in the asset hierarchy propagate consistently across denormalized copies in seven tables and two services, via a single atomic transaction with post-commit events, the work that made me the team's reference for cross-service synchronization.
DynamoxPerformance
Making asset-tree search faster across the API and interface
Browsing a large asset hierarchy meant repeated database queries and slow loading. I contributed a recursive backend traversal that reduced the query pattern from N×3 calls to three, while another engineer completed most of the final search story. The shared feature added contextual search and progressive prefetch; no before-and-after latency was measured.