Model before code
Build the concept map: In your own words, define: functional vs non-functional requirements, back-of-envelope estimates, latency budgets, system boundaries, API contracts. Add one real example and one failure example for each. Do the modeling exercise: Estimate writes/day, redirects/second, and five years of storage for a shortener with 10M new links each month. Write every assumption. Write the pre-code brief: Write one page: problem, user, guarantees, non-goals, constraints, core data, and the first slice of URL shortener · baseline. Socratic design check: Answer the AI one question at a time. Change your brief only when the challenge reveals a real gap.
You can explain every term without copying a definition. Your assumptions and calculations are visible beside the answer. Another engineer could say what you will and will not build. You have recorded at least three clarified decisions.
if this becomes confusing
- Draw the request or event timeline before naming infrastructure.
- State the source of truth and the invariant before changing code.
- When discussing scale, attach a number and a failure mode.