From Vibe Coding to Agentic Engineering
AI can produce code quickly, but engineers still own the understanding, judgment, and system-level decisions that make software dependable.
A field guide for growing engineers
Short, faithful explanations of enduring ideas—selected for engineers learning to build, reason, and lead in the AI era.
AI can produce code quickly, but engineers still own the understanding, judgment, and system-level decisions that make software dependable.
Good design continuously reduces the amount of system knowledge a developer must hold in mind to make a safe change.
Choose structures that keep concerns separate, even when a more familiar tool feels easier in the moment.
A good API makes the common path obvious, mistakes difficult, and future evolution possible without exposing implementation decisions.
Valuable tests protect important behavior while remaining stable when implementation details change.
Debugging becomes systematic when you replace guesses with reproducible evidence and narrow the search space one fact at a time.
For every system resource, check utilization, saturation, and errors before chasing more elaborate performance theories.
Design every integration with the assumption that dependencies will slow down, fail, and recover imperfectly.
The most valuable software models emerge through sustained collaboration with domain experts and remain useful only inside explicit boundaries.
Teams improve systems faster when the people who build a service also receive its operational feedback and have the tools to act on it.
Teams ship more predictably when leaders bound the problem before committing and let builders vary scope inside a fixed appetite.
Project process is an enabler, not the goal; capable teams execute through autonomy, clear ownership, direct communication, and strong tooling.
Product ownership turns a vision into a continuously reprioritized flow of small outcomes while protecting the team from excess work in progress.
Glue work can make a team succeed while quietly stalling the career of the person doing it unless the work is allocated, framed, and rewarded deliberately.
The Staff path is not simply more difficult coding; it is organizational leadership exercised through technical judgment, influence, and leverage.
Management is a parallel profession, not a promotion, and moving between IC and management roles can deliberately build stronger technical leaders.
Seniority is engineering maturity: sound judgment under uncertainty, responsibility for outcomes, and the ability to make everyone around you more capable.
A Tech Lead is accountable for a team’s technical direction and quality—not simply the strongest coder, a project coordinator, or a junior Engineering Manager.
A meeting that looks like one hour on a manager’s calendar can destroy half a day of a maker’s productive work.
System design is the discipline of choosing which goals matter most and combining techniques that satisfy them without pretending every desirable property can be maximized.
Catastrophic outages are hard to predict in detail but often share recurring shapes that can be tested, monitored, and contained in advance.
Encapsulation makes local reasoning possible by forcing every use of a data abstraction through operations that preserve its meaning.
Software quality follows the process that creates it, and a process can improve only when the organization observes reality and changes its behavior.
Technical leadership aligns how a group applies technology, and engineers can begin practicing it by owning one neglected source of misalignment before receiving the title.
Agentic development needs enough specification to make correctness testable, but not so much stale prose that agents must reconcile competing sources of truth.
Manage your career around the options and life you want, then make your experience visible enough that other people can connect it to opportunities.
Useful mentoring contributes lived experience to the mentee’s real question while preserving their agency and making overlooked capability visible.