Problem
Carbon compliance stopped being an annual report and became a daily operation. That changes what the software has to be. Our clients didn’t need a nicer form to fill in once a year; they needed supply chain data that could survive an audit, arriving continuously, from suppliers who were still emailing each other spreadsheets.
Architecture
v1.0 was a modular monolith on Nest.js. I’d defend that choice again for a product whose domain boundaries nobody understood yet, including us. v2.0 split it along product lines, and the supply chain system now talks to the two others through explicit APIs rather than shared tables.
My role
- v1.0: founding backend engineer, and Team Lead inside a year
- v2.0: backend developer on the supply chain management system. Milestone planning with the PO, sitemap and flow design, and the integration work with the frontend team and the other two product lines through OpenAPI v3.0 contracts
Impact
- v1.0 shipped to enterprise clients in production
- v2.0 is where Specification-Driven Development came in, and the reason was not methodology enthusiasm: there were no PM-provided specs to build against. So the redesign went through spec-kit (GitHub’s open-source spec-kit), then contracts, then integration, and the cross-product contract layer got written down instead of agreed verbally (40+ interface YAMLs)
Lessons
Writing code, then managing people writing code, then writing specs for AI to write code. Every one of those moves reset where my highest-value contribution actually sits, and each time it took me a while to notice the old answer had expired.