How I Work as an Engineer: Specifications, System Design, AI, and Verification
Over the years, the way I approach software engineering has changed. Earlier in my career, a large part of the work was translating requirements into code, choosing the right framework, and figuring out how to implement a feature. Those skills still matter. But as systems become more interconnected and AI coding tools make implementation faster, I find that the most important engineering work increasingly happens before and after the code is written . Before implementation, I need to understand the problem, define the constraints, and make architectural decisions. After implementation, I need to establish that the system behaves correctly—not just in the happy path, but under retries, invalid inputs, partial failures, and changing requirements. This is the workflow I try to follow. 1. Define the Problem Before Writing Code I start by asking a few questions: What problem are we actually solving? What does success look like? What constraints already exist? Which...