claim 1independent
Dynamox
role
period
domain
Full Stack Developer (mid-level)
2025-Present
Industrial inspection & condition monitoring
Industrial monitoring & inspection company where I grew from junior to mid-level full-stack developer, becoming the team's reference for cross-service data synchronization.
overview
Dynamox builds an industrial monitoring and inspection platform (predictive maintenance for industrial assets). I joined in February 2025 and work on the squad that owns the inspection domain: inspection routes, checklists, teams, compliance ("adherence") and reporting, building both the web front end and the backend services behind it.
business domain
Industrial predictive maintenance and asset inspection: field teams follow inspection routes, complete checklists against equipment, and the platform tracks coverage and compliance so plants can act before failures happen. The work spans data-heavy backends (large asset hierarchies, event-driven synchronization between services) and operator-facing web UIs.
responsibilities
- —Full-stack delivery of inspection-domain features (React front end; NestJS backends).
- —Cross-service data synchronization via an event-driven (Kafka) architecture, the domain I became the team's reference for.
- —Production reliability: incident response, debugging deadlocks/connection issues, safe production data corrections.
- —Platform work: security/CVE remediation, observability, CI/CD and test infrastructure, and infrastructure-as-code for the team.
achievements
- +Became the team's reference for cross-service synchronization through an atomic, seven-table edit propagation across two services, culminating in an architecture decision I owned autonomously.
- +Made an unreliable test suite trustworthy again, unblocking the team's CI, and, in review, empirically disproved three of four proposed production changes.
- +Founded a new analytics/reporting service, including the OLTP-vs-OLAP architecture decision behind it, reviewed and signed off by seven stakeholders across engineering and the platform team, with a security/privacy risk review folded into the decision itself and a latency risk I caught and corrected between two versions of the ADR.
- +Owned production reliability and data-integrity work, including safe, reversible large-scale data corrections and incident response with post-mortems.
- +Turned a customer-blocking production incident into a documented architecture decision through a post-mortem, an ADR, and a rebuilt consumer, then root-caused a later production deadlock to a messaging-partition mismatch and closed a silent-failure gap with retry and a dead-letter queue.
- +Delivered a complex feature end to end, alone, across database, backend, and front end.
- +Raised the team's engineering baseline in observability, security, and documentation, often on my own initiative.
- +Prototyped applied AI with a safety-first design, a human-in-the-loop agent for bulk route creation: the model ranks candidates and never emits identifiers, and every write goes through explicit human confirmation. Prototype stage, reaching write mode with tests, never shipped to production. (Deliberately not a case study; see the curation note at the end of this file.)
- +Eliminated a 5,000-line hand-maintained API schema by generating OpenAPI from the code's own decorators, validated on one endpoint until the generated output matched the manual one, then rolled out across ~10 domains toward ~21 controllers, alongside adding the service's first CI test pipeline. (Deliberately not a case study; see the curation note at the end of this file.)
- +Made container and dependency hardening a standing quarterly practice across four quarters: 135 CVEs flagged and all 7 critical remediated in the first pass, then an audit taken from 69 findings to 16, unfixable OS CVEs from 160 to 0, and the shipped image from 1.64 GB to 463 MB.
- +Caught a warehouse query at 69% of a hard byte ceiling before it started failing, then audited my own migration, found 79% of production rows never backfilled and 9,299 alerts silently dropped from the product, and repaired 70,502 rows idempotently.
- +Changed the shape of a product-defined epic by moving where a new state is handled. A platform-wide "hibernated asset" status was specified as an exclusion rule for eight read paths; applying it once at the write boundary made most of that scope unnecessary, and the refined design replaced the roadmap item as the epic's source of truth. Design contribution; development scheduled to start 2026-08-31, so no shipped number yet.
- +Promoted from junior to mid-level in ~11 months, backed by evidence across all six competency areas.
references cited
dependent claims — 13 filed under claim 1
Designing a single computation path for a cross-service metric
Synchronizing a Cross-Service Data Edit Atomically
Making a flaky end-to-end suite deterministic without hiding failures
Founding an analytics service by moving reporting off the transactional database
Correcting production data safely with reversible, auditable tooling
Delivering a large asset tree end to end, from recursive SQL to progressive prefetch
Bringing error observability to a team that had none
Making container and dependency hardening a standing practice, not an audit response
Responding to a production incident with the missing architecture decision, not just a patch
Choosing the right altitude to fix a bug found in review, not just the fastest patch
Designing the safety guarantees for an AI-orchestrated cleanup, not just automating the grind
Trading a runtime join for a materialized column, then finding the 79% my own migration left behind
Changing where a new state is handled, instead of teaching eight read paths about it
lessons learned
Eventually-consistent derived data should have exactly one computation path. Multiple writers deriving the same value is the defect; consolidating the derivation is the fix.
Parallel AI agents need the same safety design as any other concurrent workers. Isolate their work by disjoint file ownership, or they will corrupt each other's changes exactly like any other race condition.
Push hierarchy traversal into the database. A recursive query that returns matches with their ancestors beats a per-level request cascade the client has to orchestrate.