13) Tobias K. Torrissen om kodekvalitet, konferanser og AI
Truls Jørgensen og Audun Fauchald Strand — Heis Podcast · podcast · 2026-03-16 source ↗ Reader 🖥️
Agent HarnessAI as AmplifierArchitecture Decision RecordsCode QualityCraft CommunityPublic-Sector DigitalizationSoftware Design FundamentalsTechnology Leadership (Heis)Vibe Coding
In the age of LLM-generated code, the durable value of an engineering leader is not in writing code but in cultivating the engineering practices, explicit design discipline, and craft community that determine whether a long-lived system can be understood, maintained, and adapted — and code quality, understood as 'obvious over clever,' matters more in this era, not less.
practical · mixed — A conversation that mixes narrative (JavaZone origins, NAV quality reviews, son who vibecodes apps), expository reflection (his three-camp taxonomy of AI coders, his definition of architecture's purpose), and prescriptive practical argument (juniors should learn fundamentals before AI tools; teams should double down on engineering practices in the AI era; KS processes should leave more room for product thinking). The overall thrust is action-guiding: how should an engineering leader, junior, or team behave now that code is cheap to generate.
Structure
| Part | Role |
|---|---|
| Introduction: Torrissen's career arc — Skatteetaten, Scienta consultancy leadership, role in early JavaZone, JavaBin board, Dataforeningen | Establishes Torrissen's authority as a fagperson-leder hybrid: someone who leads consultants but is grounded in the craft and in community-building over two decades |
| JavaZone origin narrative: Roots conference Bergen (Cockburn, Fowler), early program committee, growth from 200 → spectrum-scale, the 'we thought we did not have to pay VAT' war story, Sun Microsystems bailout | Narrative evidence for the thesis that fagmiljø (craft community) is formative — Torrissen attributes his career direction to a single lunch at Roots |
| KS1/KS2 process explanation and Torrissen's role as IT-alibi for Finansdepartementet | Context: explains the institutional setting of his code-quality reviews and why he reluctantly stays in a process he is partially critical of |
| NAV code-quality review methodology and findings — sit down with developers, talk architecture, no traffic-light report, 'voksenopplæring' for leadership | Practical exemplar of his reviewing philosophy: not revision, not grading, but facilitated reflection that surfaces what developers already know |
| Architecture critique: 'everyone wants microservices, Kotlin, event sourcing' — Sykepenger as a case where koreografert/event-driven was chosen but the underlying domain (forvaltningsloven) is stable and may not require that flexibility | Concrete extended example of his core claim that architecture must underbygge virksomhetens mål, not follow fashion |
| Microservices as 'architecture of last resort' — Parnas-style law of distribution (don't, don't yet, do if expert), Vlad Khononov's 'Balancing Coupling' | Theoretical scaffolding: invoking design laws and recent literature to ground the skepticism |
| Audun's pushback: monolith (KOS) was unmaintainable, microservices are sosial skalering — domain isolation in-process keeps failing because humans don't respect non-enforced boundaries | Counter-position. The episode lets this stand; Torrissen does not concede but the disagreement is named |
| Three-camp taxonomy of developers in the AI era: (1) head-in-sand, (2) harness LLM into quality engineering, (3) vibecoders / large-scale agentic parallel work | Central conceptual contribution. Names the design space and positions himself in camp 2 |
| Engineering practices that matter more under AI: fast feedback loops, observability, frequent delivery, learning-oriented methodology — citing a TET (Telenor?) talk on Claude adoption | Evidence: teams with good practices get a productivity step-up from AI; teams without amplify chaos |
| Reflection on explicitness: 'I used to design by intuition; now I have to tell the language model.' Architecture Decision Records as fosilitering of process | Mechanism: why AI sharpens design discipline — it forces what was tacit into text |
| Aesthetic concession: classical code-quality metrics (cyclomatic complexity, method length) matter less now; 'beautiful code' may be receding as a craft value; 'obvious over clever' (NAV's tekniske retning) is what survives | Calibration: not everything from old code-quality discourse carries forward; some loss is real |
| Quality-vs-context: timeføring system vs. NAV sykepenger vs. politiet straffesak — different systems warrant different quality bars; AI lowers the entry threshold for low-stakes software, market for software grows | Qualification: quality is not monotonic. Different software 'modes' (reference to Heinemeier Hansson?) warrant different bars |
| Will developers be unemployed? Only ~20% of system development is programming; cheaper software grows the market; long-tail bespoke software (the frisørkjede booking system) becomes economic | Counter-pessimism argument. Hands-off industry forecast |
| Advice to juniors: learn IT architecture and core principles before climbing into the 'Formula 1 car' of language models — 'drive a Toyota Corolla first'; TDD from 2004 still relevant; dora.dev | Pedagogical conclusion: fundamentals first |
| Conferences as formative: Roots Bergen as career-defining; JavaZone, Booster, Kodemaker fagdag, Kode24-dagen as ongoing fagmiljø; JavaZone's real success is generational continuity | Closing return to the opening — community as the lifelong infrastructure for craft |
Key terms
- kodekvalitet (code quality) Code Quality
Not classical metrics (cyclomatic complexity, coupling, method length) but: obviousness over cleverness, readability, deletability, fitness-for-purpose for the system's actual mode (long-lived regulated software vs. throwaway). Quality is defined by whether the team — '70 forvaltere' of varying ambition and life-balance — can collectively own and evolve the code over 30 years. - obvious, ikke clever Software Design Fundamentals
A design heuristic: prefer code that is immediately understandable to a new reader over code that is compact, elegant, or sophisticated. Few abstractions, explicit over implicit. - tilført vs. essensiell kompleksitet Software Design Fundamentals
Borrowed Brooks/Moseley-Marks framing: essential complexity is inherent to the domain (you can move it but not destroy it); accidental/added complexity is what design discipline can remove. The job is minimising added complexity so only essential remains. - engineering-praksiser
A bundle: fast feedback loops, observability, frequent delivery, learning-oriented work methodology, TDD, architecture decision records, pair/team design discussion. Practices that produce 'bevissthet rundt hvordan du utvikler software'. - harnesse (en språkmodell) Agent Harness
To wrap and constrain a language model so it produces code of quality matching the team's standards — explicit design context, ADRs, practices, observable feedback. Camp 2 in the taxonomy. - vibecoding Vibe Coding
Used loosely. He distinguishes: (a) his son spying out apps from home for ad revenue — kortsiktig, kjapt, deretter — which he calls his personal meaning; (b) the more serious 'on-to-pi-tenakt' parallel-agentic large-scale development that doesn't engage with code as an abstraction. He hints these are conflated in discourse. - fagmiljø / community Craft Community
A self-organising volunteer-driven craft community (JavaBin, JavaZone, Booster, Kodemaker fagdag) that produces formative encounters and intergenerational transmission of practice. He attributes his career to such encounters. - Architecture Decision Records (ADR) Architecture Decision Records
Less important for sporbarhet than for facilitating a fornuftig prosess where team perspectives are aired. The act of producing them is the value, not the artifact. - KS1 / KS2 Public-Sector Digitalization
Norwegian state-investment quality-assurance gates (concept choice; project pre-realisation plan). He criticises them for over-quantifying targets early and locking in goals that learning will outdate, but works inside them to nudge toward smidig/produktutvikling. - voksenopplæring
What his code-quality reviews actually deliver to client leadership instead of the requested traffic-light verdict: adult education in what their developers know and what tradeoffs they face. - goldplating Software Design Fundamentals
The product-development failure mode where teams over-invest in first-iteration polish because tight user feedback creates over-identification with the user's wants. He has a høne to plukke with product-utviklingsmiljø about this. - obvious-rapport / tilrådninger (ikke terningskast)
His review output: a map of choices made and why, plus directional recommendations (more/less distributed, focus more on technical debt) — explicitly not a score.
Propositions
- explicitCode quality matters more in the AI era, not less.conf: high
- explicitThe right yardstick for code quality is whether ~70 long-tenured maintainers — across a 30-year average lifespan for state systems — can collectively understand and evolve the code; 'obvious' beats 'clever'.conf: high
- explicitClassical code-quality metrics (cyclomatic complexity, method/class length, coupling, cohesion) are largely irrelevant to whether a code-quality review surfaces what matters; they are not where it skorter.conf: high
- explicitAesthetic 'beautiful code' as a craft value is receding; when machines do more of the writing, prettiness matters less than readability and ownership.conf: high
- explicitThere are three current camps of developers regarding AI: (1) those who refuse to engage, (2) those who harness LLMs into quality-engineering workflows, (3) those who run large-scale parallel agentic work without engaging with code as an abstraction.conf: high
- explicitTeams with good engineering practices (fast feedback, observability, frequent delivery) get a steep productivity step-up from AI; teams without amplify their existing chaos.conf: high
- explicitAI raises the value of explicit, articulated design — what used to be tacit intuition must now be written down so the language model can act on it.conf: high
- explicitArchitecture should under-build the business's actual goals, not follow industry fashion; the fact that 'every customer in Norway has the same goals' (microservices, Kotlin, event sourcing) is a red flag.conf: high
- explicitdevelopedMicroservices are 'an architecture of last resort'; teams move to them too quickly, hiding global complexity in local-simplicity-per-service.conf: highextends ←SWLW #710: Revised rules of Eng Leadership, When AI costs more than the engineer, and more. · p9 — Kokane applies the 'microservices are an architecture of last resort; teams adopt them too fast' caution to agentic loops — same over-adoption critique, new abstraction.
- explicitdevelopedMicroservices may nonetheless be justified for social scaling — letting many people work on one problem — because in-process domain boundaries keep failing in practice.conf: highrefines ←Article: Modular Edge Computing at Multi-Tenant SaaS Scale on Cloudflare Workers · p3 — Refines Torrissen/Audun's 'social scaling' justification for microservices with the operational precondition their debate never named (per heis-13#g2): decomposition escapes 'last resort' status specifically once the platform offers a same-process/same-machine call primitive that removes the network-hop tax — otherwise that same tax is what makes premature splitting a last resort in the first place.
- explicitThe value of an external code-quality review is not the verdict but the structured conversation it forces among developers and leadership; the team already knows the problems.conf: high
- explicitConferences and fagmiljø are formative substrate for engineers — single encounters (a lunch at Roots Bergen with Cockburn and Fowler) can determine a whole career.conf: high
- explicitJuniors should learn IT architecture and core principles (TDD, design heuristics) before relying on language models — 'drive a Toyota Corolla before the Formula 1 car'.conf: high
- explicitcorroboratedDevelopers will not be made unemployed by AI because only about 20% of system development is actually programming; the other 80% (understanding, coordinating, deciding) remains human.conf: mediumsupports ←Podcast: Formal Methods for Every Engineer in an AI-Powered Future · p19 — Supports the claim that only ~20% of development is programming while the other 80% (understanding, deciding) remains human — Moreira's version is that defining correctness and understanding the system stay human even as AI writes the code.
- explicitCheaper software production will expand the market for bespoke software — the frisørkjede that today tolerates a crappy booking system will commission a perfect one.conf: medium
- explicitdevelopedQuality bars should differ by software 'mode' — high-stakes, regulated, long-lived public systems (sykepenger, straffesak) warrant rigorous engineering; throwaway personal apps warrant near-zero ceremony.conf: highrefines ←Bliki: Vibe Coding · p12 — Fowler turns Torrissen's discrete quality modes into continuous scaling dimensions: risk grows with code lifetime, audience size, and data sensitivity, not with code volume.
- explicitProduct development culture systematically goldplates first iterations because tight user feedback over-identifies teams with a narrow user group.conf: medium
- explicitThe Norwegian KS process under-serves software because it locks in quantifiable goals too early; in NAV-scale work, four-five years of learning makes the original goals obsolete.conf: high
- implicitEngaging from inside imperfect institutional processes (KS) is more leveraged than refusing them, even though one risks being identified with their failures.conf: high
- explicitSoftware is best understood as a learning activity — both technologically and domain-wise — and the bransje's appeal is that you never do the same thing twice.conf: high
- implicitSaying yes by default — having '100 words for yes and none for no' — is an underrated career-building strategy in fagmiljø work.conf: medium
- explicitThe cost structure of software is shifting further toward maintenance: if making code becomes near-free, the share of total cost that is keeping-it-running grows.conf: high
Arguments
Engineering practices matter more under AI, not less. strength: high
Explicit premises:
- Teams with good practices get a steep productivity step-up from AI (TET/Claude observation).
- Teams without good practices amplify existing chaos with AI.
- AI forces tacit design knowledge to become explicit and written.
- Long-lived systems still need maintainable code over decades.
Implicit premises:
- Productivity gains under AI distribute unequally across teams; this distribution is determined by pre-existing practice quality.
- Tacit design intuition does not transfer to LLMs; explicit articulation does.
- The composition of a 30-year-old codebase is determined more by its early discipline than by its tooling at any moment.
- An engineering leader's job is to set the discipline floor that determines whether AI is leverage or amplification of dysfunction.
Inferences:
- Investing in engineering practices is a higher-leverage decision in 2026 than in 2020, even though it looks the same on paper.
- Organisations that adopted AI coding without underlying practice discipline are sitting on technical debt that will be expensive to reverse.
Microservices should be 'an architecture of last resort'; default to monolithic in-process designs. strength: medium
Explicit premises:
- Distribution adds complexity that often outweighs the local-simplicity gains.
- Empirical studies suggest all-in-one-class is best up to ~500 lines; only then do you need additional structure.
- Vlad Khononov / Balancing Coupling shows local-vs-global complexity tradeoff is the right lens.
- Teams adopt microservices for fashion rather than for goals that justify the cost.
Implicit premises:
- Global complexity is harder to perceive than local complexity; therefore biases push teams toward microservices.
- Most domains do not change fast enough to need distributed flexibility (forvaltningsloven changes rarely).
- Architecture choices should be derivable from domain volatility, not from team-size or hiring fashion.
Inferences:
- If you cannot articulate the global-complexity cost of your microservice topology, you have not yet earned it.
- Many existing microservice systems would deliver better value as well-modularised monoliths.
Code-quality reviews should not produce verdicts but facilitate adult education for leadership. strength: high
Explicit premises:
- Developers already know the problems; the review surfaces them officially.
- Traffic-light verdicts are over-simplified for the real tradeoffs.
- Bad choices are usually due to prioritisation pressure, not incompetence or unwillingness.
- Leadership lacks the technical context to interpret detailed findings without translation.
Implicit premises:
- The bottleneck on improvement is leadership understanding, not developer knowledge.
- External authority can grant developers permission to surface concerns they already had.
- Translating between technical and leadership levels is a distinct skill worth charging consulting rates for.
Inferences:
- An organization that pays for a code-quality review and gets a verdict has been short-changed.
- If your consultants will not be tabloid with leadership, you are not getting value from them.
Junior developers should learn fundamentals before leaning on AI tooling. strength: high
Explicit premises:
- TDD, software design principles, and architecture are still load-bearing 20 years on.
- Driving a 'Formula 1' (language model) without a Toyota Corolla (fundamentals) is risky.
- AI tools demand explicit articulation of design — which juniors cannot do without the fundamentals.
Implicit premises:
- Without internalised principles, a junior cannot recognise when AI output is wrong.
- The ability to drive a language model well is bounded above by your own design vocabulary.
- Communities like JavaZone, Booster, Kodemaker fagdag are still the cheapest way to acquire the vocabulary.
Inferences:
- Organisations that hire juniors and route them through AI-first workflows are creating a generation that cannot diagnose bad output.
- The seniors who can review AI work will be in higher demand, not lower.
Software jobs will not disappear despite AI generation. strength: medium
Explicit premises:
- Only ~20% of system development is programming.
- Cheaper software grows the market (long-tail bespoke).
- Maintenance share of total cost grows as creation cost falls.
- High-stakes systems still require human accountability.
Implicit premises:
- The 80% of non-programming work is harder to automate than programming itself.
- Demand for software is highly elastic with respect to price.
- Accountability cannot be transferred to a model.
Inferences:
- The professional category may bifurcate: low-stakes vibecoders for throwaway apps; engineering-discipline professionals for regulated long-lived systems.
- Engineering leadership becomes more, not less, distinctive as a role.
JavaZone's deep success is not its peak attendance but its generational continuity. strength: medium
Explicit premises:
- Many founder-driven conferences die when founders move on.
- JavaZone is now on roughly the sixth generation of program committees.
- The hardest organisational act was getting someone else to take over.
Implicit premises:
- Community institutions require explicit succession mechanisms.
- Founders should plan for their own removal as part of building.
- Conference longevity is a proxy for the health of a craft community.
Inferences:
- Other Norwegian fagmiljø institutions (JavaBin, Dataforeningen, Booster) should be evaluated on succession not on current attendance.
Narratives
- Roots Bergen (Recent Object Oriented Trends conference, early 2000s): Torrissen as a young developer has lunch with Alistair Cockburn and Martin Fowler, decides this is what he wants to do, joins the early JavaBin programkomite — eventually becoming program committee lead for JavaZone's first 5-6 years.
→ Implicitly supports the proposition that single conference encounters can be career-defining and the broader claim that fagmiljø is formative substrate. - The VAT war story: JavaBin volunteer organisers, as 'pur unge utviklere', personally on the hook when Skatteetaten claimed VAT was due on conference tickets; Sun Microsystems bailed them out.
→ Texture for the amateur-volunteer origin of Norwegian Java community; supports the implicit point that institutions get built by people who don't know they're not allowed to do this. - First NAV Sykepenger workshop: developers were surprised the reviewers didn't show up in suits with tape recorders. Torrissen reframes review as 'å sitte rundt et bord og snakke om faget vårt'.
→ Implicitly supports the proposition that the review's value is process, not verdict. - His son, freshly out of military service, vibecoding apps from home one per day, hoping ad revenue will arrive; 'arveløs så mange ganger at det funker ikke mer'.
→ Personifies camp 3 of the AI-coding taxonomy and the throwaway-app long tail; defines 'vibecoding' by example. - Sykepenger architecture: from coordinated to choreographed event-driven design where each step does not know where it sits in the flow — but forvaltningsloven is stable, so the flexibility may not be needed; loose coupling justified instead by drift/resilience.
→ Concrete example of architecture chosen for legitimate but secondary reasons rather than for fashion; supports the claim that reflection on domain volatility should drive design. - December obsession with Advent of Code at Novit/Kold (Kotlin), spending hours not on solving but on making the solution beautiful.
→ Personal acknowledgement that aesthetic craft attachment is real, even as he argues it matters less now — gives the concession emotional weight. - Talk at Kode24-dagen the day before recording: a TDD talk that ran half an hour past, on a practice from 2004 still being explained in 2026.
→ Supports the claim that fundamentals are durable across two decades. - TET/Telenor's Claude adoption talk: teams with mature engineering practices saw productivity step-ups; teams without saw it fall.
→ Empirical anchor for the engineering-practices-matter-more argument. - KOS (millions of lines, pre-distribution): unmaintainable monolith at Norge Tilsynsmyndigheter / Nord. Audun and Torrissen both worked there.
→ Counter-narrative to Torrissen's monolith preference; supports Audun's social-scaling argument for microservices. - Frisørkjede that today uses a crappy generic booking system, but in a world of cheap bespoke software would commission a perfect one.
→ Hypothetical illustration of demand-elasticity / long-tail bespoke argument.
Questions addressed
- ✅ What does 'good code quality' mean in 2026?
Obvious over clever; readable and maintainable by a varied team over decades; fit for the system's mode rather than measured by static metrics. - ✅ How should engineering practice change in the AI era?
Double down on engineering discipline — fast feedback, observability, frequent delivery, explicit design, ADRs. AI raises the marginal value of these, doesn't replace them. - ✅ Will developers be unemployed?
No: programming is ~20% of the work; the market for bespoke software expands; high-stakes work still requires human accountability. - ⭕ When are microservices justified?
Disagreement: Torrissen says rarely (last resort); Audun says regularly for social scaling because in-process boundaries don't hold. The conversation names but does not resolve this. - ✅ What should juniors do?
Learn fundamentals (architecture, TDD, core principles) before relying on LLMs; engage with fagmiljø. - ✅ What is the value of an external code-quality review?
Not a verdict but a facilitated conversation that re-surfaces what developers already know, and translates it for leadership. - ⭕ How should the Norwegian KS process serve software better?
Critique articulated (over-quantification, lock-in to obsolete goals) but reform path is unspecified beyond 'focus more on how to work than on what to achieve'. - ⭕ What survives of aesthetic craft when machines write the code?
Personal mourning acknowledged; 'beautiful code' likely fades as a professional value but the conversation does not work out what should replace aesthetic discipline as a craft anchor. - ⭕ When the code-quality review is itself agentic, what happens?
Joked about. Not engaged.
Gaps
- incompleteTorrissen's frame is largely Norwegian consultancy and public-sector. The 30-year-lifespan argument is anchored in NAV/Skatt/politi; he gestures at differential quality bars for low-stakes consumer apps but does not engage with product-company contexts (startup, scaleup, SaaS) where the relevant time horizon is 3-5 years and the relevant readers are 5-10 engineers, not 70 forvaltere.
Read next: Read this against the Pocock workshop extraction (product-company AI workflow) and Vidar Moe (Heis), to see how product-company engineers calibrate quality differently. - incompleteThe microservices disagreement with Audun is left as a clean disagreement; the conversation doesn't work out under what conditions Torrissen's 'last resort' would tip to Audun's 'social scaling necessity'. A reader is left without a heuristic to decide.
Read next: Vlad Khononov's 'Balancing Coupling' (cited by Torrissen); Audun's reference to KOS as evidence; James Lewis / Sam Newman on microservices boundaries; possibly recent Fowler/Bockeler 'static sensors' work that already sits in the corpus.closed byArticle: Modular Edge Computing at Multi-Tenant SaaS Scale on Cloudflare Workers — Supplies the missing tipping-point heuristic for when Torrissen's 'microservices as last resort' flips to Audun's 'social-scaling necessity': the split stops being a last resort exactly when (a) a single shared execution unit's blast radius spans an unacceptable number of tenants/teams, and (b) the platform offers a same-process call primitive (Cloudflare service bindings) that removes the network-hop cost — absent (b), the coupling cost of splitting still favors keeping the monolith. - incompleteThe 'engineering practices matter more under AI' claim rests on one cited Telenor talk. Strong intuition, weak evidence. A serious version needs DORA-style measurement of practice maturity × AI uplift.
Read next: DORA 2025 (already in user's library); the Entur AI adoption piece; Addy Osmani's agent patterns; any rigorous productivity studies. - incompleteThree-camp taxonomy of AI-coders is clean but binary on camp 3 (vibecoders) — conflates throwaway-app-spammers with large-scale parallel-agentic professional work. These have opposite stakes and opposite engineering risks.
Read next: Gene Kim's vibecoding series; Steve Yegge's manifesto; Anthropic harness-design talk (already in extractions); 'No Vibes Allowed' counter-pieces.closed byBliki: Vibe Coding — Provides the distinction Torrissen's camp-3 taxonomy conflates: vibe coding (never looking at the code, appropriate only for disposable software) is categorically different from professional agentic programming (p1, p2, p5). - incompleteThe 'obvious over clever' principle is presented as inheritance from NAV's tekniske retning but the tradeoff against domain-modelling power, type-system expressiveness, and idiomatic language use is not explored. A 'maximally obvious' codebase in a functional language with strong types may look obscure to a Java-trained 70-forvalter pool.
Read next: Greg Young / Vlad Khononov on domain modelling; Ousterhout's 'A Philosophy of Software Design'; Rich Hickey's 'Simple Made Easy' (vs. 'easy ≠ obvious'). - incompleteTorrissen acknowledges he's about to participate in a recursive case (reviewing code that was itself generated agentically) and only jokes. The methodology gap — how does code review change when the developer's intent is partially encoded in prompts, ADRs, and context files rather than commit history — is left for next time.
Read next: Anthropic 'harness design' talk and the Pocock workshop already in this corpus. - incompleteThe advice to juniors assumes the fundamentals taught today are the right ones; doesn't engage with the possibility that fundamentals themselves need re-curation for a world where LLMs are the second author. What does TDD even mean when test generation is also automated?
Read next: Kent Beck's recent 'Tidy First?' work on AI and design; 'starving genies' series; DORA on AI testing practices. - uninformedTorrissen disclaims familiarity with the formal 'distribution law' he invokes (Parnas/Helland-style). He gets the spirit right but doesn't engage with the literature on when distribution is forced (latency, regulatory, fault isolation).
Read next: Pat Helland's papers; Parnas on module boundaries; Vlad Khononov directly. - incompleteCode quality discussion is silent on data and persistence design — arguably the longest-lived and hardest-to-change layer in 30-year systems. The whole conversation is about behavioural code.
Read next: Stripe-style schema evolution practice; Martin Kleppmann's data engineering work; event-sourcing reflections from CQRS practitioners.
Closes gaps elsewhere
- Eight years of wanting, three months of building with AI · g2 — Torrissen answers how juniors should calibrate AI use: learn IT architecture and core principles (TDD, design heuristics) before relying on language models — drive the Toyota Corolla before the Formula 1 car.
Related documents
- Eight years of wanting, three months of building with AI
- Fragments: July 6
- Claude Code Source Leak Megathread
- Bliki: Vibe Coding
- Software Design in the Agentic Age: Placing Your Bets
- Software Design in the Agentic Age: Place Your Bets
- 11 Tips For AI Coding With Ralph Wiggum
- Addy Osmani's Post
- AI Is Changing Software Engineering. The Fundamentals Still Matter.
- AI Enthusiasts Are in a Race Against Time, AI Skeptics Are in a Race Against Entropy