<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://plainionist.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://plainionist.github.io/" rel="alternate" type="text/html" /><updated>2026-08-30T17:05:18+00:00</updated><id>https://plainionist.github.io/feed.xml</id><title type="html">Plainionist</title><subtitle></subtitle><author><name>Plainionist</name></author><entry><title type="html">Book Review: Agentic Spec-Driven Development</title><link href="https://plainionist.github.io/Agentic-Spec-Driven-Development/" rel="alternate" type="text/html" title="Book Review: Agentic Spec-Driven Development" /><published>2026-08-30T00:00:00+00:00</published><updated>2026-08-30T00:00:00+00:00</updated><id>https://plainionist.github.io/Agentic-Spec-Driven-Development</id><content type="html" xml:base="https://plainionist.github.io/Agentic-Spec-Driven-Development/"><![CDATA[<p>Spec-driven development sounds like writing a big specification before starting to code.</p>

<p>This book is about something much more interesting: how to set up your project and development process so that AI agents
can do most of the actual work — guided by clear intent, context, guardrails, and verification.</p>

<p><img src="https://plainionist.github.io/assets/agentic-spec-driven-development.jpg" alt="Book: Agentic Spec-Driven Development: A Practical Method for Using AI to Build Complete Specifications for Software, Products, and Knowledge Work" title="Agentic Spec-Driven Development: A Practical Method for Using AI to Build Complete Specifications for Software, Products, and Knowledge Work" /></p>

<p><a href="https://www.amazon.com/Agentic-Spec-Driven-Development-Practical-Specifications-ebook/dp/B0GX38ZZYT/ref=sr_1_1">Agentic Spec-Driven Development: A Practical Method for Using AI to Build Complete Specifications for Software, Products, and Knowledge Work</a></p>

<!--more-->

<h2 id="more-than-spec-driven-development">More than spec-driven development</h2>

<p>The core idea is that when AI writes the code, engineering judgment does not disappear.
It moves into the specification.
You define the intent, constraints, architecture, and expected behavior. The agent figures out how to implement it.</p>

<p>But this does not mean writing a huge specification upfront. The book acknowledges that you cannot think of everything in advance.
Specifications evolve iteratively as implementation exposes missing decisions, conflicts, and edge cases.</p>

<p>That makes the approach much more pragmatic than it might sound from the title.</p>

<h2 id="intent-over-instruction">Intent over instruction</h2>

<p>A key idea of this book is <em>intent over instruction</em>.
Tell the agent what you want to achieve, why you want it, which constraints matter, and where the guardrails are.
Then let it reason about how.
You do not need to dictate the answer. You need to give AI enough context to find it.</p>

<p>The same principle applies to rules. Do not try to prevent every possible failure with more and more natural-language instructions.
Keep rules generic and use deterministic mechanisms such as scripts, tests, and architecture fitness functions when you need deterministic behavior.</p>

<h2 id="a-practical-guide-to-agentic-development">A practical guide to agentic development</h2>

<p>What makes the book especially useful is that it goes far beyond specifications.
It covers prompts, durable rules, token efficiency, sessions and memory, project knowledge, artifacts, auditability,
tests, architecture fitness functions, and the overall development process.</p>

<p>It even provides a complete sample setup with ready-to-use rule files.</p>

<p>So you can either try the author’s method as it is or take the underlying concepts and integrate them into your own setup.
If you are new to agentic development, this is a great foundation because it explains not only how to write specs,
but how to structure an entire project around AI agents.</p>

<p>And if you already work extensively with coding agents, it is still worth reading because it makes you reflect on your own setup.</p>

<p>Despite the title, I would almost call this a book about harness engineering.
And that is exactly why I found it worth reading.</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[Spec-driven development sounds like writing a big specification before starting to code. This book is about something much more interesting: how to set up your project and development process so that AI agents can do most of the actual work — guided by clear intent, context, guardrails, and verification. Agentic Spec-Driven Development: A Practical Method for Using AI to Build Complete Specifications for Software, Products, and Knowledge Work]]></summary></entry><entry><title type="html">Book Review: Harness Engineering: Designing the Systems That Make AI Coding Agents Reliable</title><link href="https://plainionist.github.io/Harness-Engineering/" rel="alternate" type="text/html" title="Book Review: Harness Engineering: Designing the Systems That Make AI Coding Agents Reliable" /><published>2026-08-25T00:00:00+00:00</published><updated>2026-08-25T00:00:00+00:00</updated><id>https://plainionist.github.io/Harness-Engineering</id><content type="html" xml:base="https://plainionist.github.io/Harness-Engineering/"><![CDATA[<p>Models are getting better and better. But they are still non-deterministic.
The harness is what turns them into mostly reliable AI coding agents.
So this is where we, as software engineers, need to focus now.</p>

<p><img src="https://plainionist.github.io/assets/harness-engineering.jpg" alt="Book: Harness Engineering: Designing the Systems That Make AI Coding Agents Reliable" title="Harness Engineering: Designing the Systems That Make AI Coding Agents Reliable" /></p>

<p><a href="https://www.amazon.com/Harness-Engineering-Designing-Systems-Reliable/dp/B0GY9CVQLF/ref=sr_1_17">Harness Engineering: Designing the Systems That Make AI Coding Agents Reliable</a></p>

<!--more-->

<p>The book starts with the fundamentals: what exactly is harness engineering, and why is it important?
From there, it covers a broad range of topics such as context and state, workflows, verification, team behavior, handoffs, recovery, and governance.</p>

<p>One theme runs through the whole book: <strong>Make knowledge, rules, and expected behavior explicit.</strong>
The goal is to structure the context, processes, and environment around coding agents well enough
that more and more of the work can be automated reliably.</p>

<p>Interestingly, many of the suggested practices also make sense for human software teams:
clear responsibilities, explicit rules, defined processes, and automated verification.
With agents, however, these things need to be even more explicit so they can actually follow them.</p>

<p>This broad coverage is also the biggest value of the book for me.
It makes you aware of how many different aspects influence whether coding agents work reliably
and provides plenty of patterns and ideas to think about.</p>

<p>The downside is that it is not an easy read.
It is well structured, but often feels more like an instruction manual.
Examples are included throughout the book, but they often stay on an abstract, meta level.
I frequently understood <em>why</em> something was important, but missed the concrete example that creates the real “aha” moment.</p>

<p>I think the book would be much stronger with simpler explanations and one realistic sample project used consistently throughout.</p>

<p>So, important content and definitely worth knowing about - but probably not the best book on harness engineering. 🤷‍♂️</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[Models are getting better and better. But they are still non-deterministic. The harness is what turns them into mostly reliable AI coding agents. So this is where we, as software engineers, need to focus now. Harness Engineering: Designing the Systems That Make AI Coding Agents Reliable]]></summary></entry><entry><title type="html">Book Review: Context Engineering Fundamentals</title><link href="https://plainionist.github.io/Context-Engineering-Fundamentals/" rel="alternate" type="text/html" title="Book Review: Context Engineering Fundamentals" /><published>2026-08-24T00:00:00+00:00</published><updated>2026-08-24T00:00:00+00:00</updated><id>https://plainionist.github.io/Context-Engineering-Fundamentals</id><content type="html" xml:base="https://plainionist.github.io/Context-Engineering-Fundamentals/"><![CDATA[<p>A strong foundation in context engineering is a key skill for agentic development.</p>

<p><em>Context Engineering Fundamentals: Learn Prompt Design, Context Memory, and Agent-Based AI with LangChain, RAG, and MCP for Next-Gen LLM Applications</em>
by James Acklin focuses mainly on building LLM applications.</p>

<p>It covers prompt design, context and memory, RAG, MCP, agent patterns, and application architecture.</p>

<p>The book includes lots of exercises and code samples, mostly using LangChain,
which illustrate the concepts very well and help you understand how things actually work.</p>

<p>Even though this is not a book about coding agents directly, many of the concepts transfer.
For coding agents to be productive, they need the right context at the right time -
focusing on relevant information while ignoring what is not needed.
Understanding the fundamentals of context engineering helps a lot when thinking about how to provide that context.</p>

<p>The book also goes beyond managing the context window.
It explains how complete LLM applications are built and how the different pieces work together.</p>

<p>It finishes with a few case studies that put those concepts into practice.
Even if you are not planning to build an LLM application yourself, I found this part interesting.
It gives you a better idea of how LLMs can be embedded into real applications
and also a better understanding of how tools like GitHub Copilot work behind the scenes.</p>

<p>So, while this is not a practical guide for coding agents, I think it is well worth reading if you want to build a solid foundation in context engineering
and become better at working with agents.</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[A strong foundation in context engineering is a key skill for agentic development. Context Engineering Fundamentals: Learn Prompt Design, Context Memory, and Agent-Based AI with LangChain, RAG, and MCP for Next-Gen LLM Applications by James Acklin focuses mainly on building LLM applications. It covers prompt design, context and memory, RAG, MCP, agent patterns, and application architecture. The book includes lots of exercises and code samples, mostly using LangChain, which illustrate the concepts very well and help you understand how things actually work. Even though this is not a book about coding agents directly, many of the concepts transfer. For coding agents to be productive, they need the right context at the right time - focusing on relevant information while ignoring what is not needed. Understanding the fundamentals of context engineering helps a lot when thinking about how to provide that context. The book also goes beyond managing the context window. It explains how complete LLM applications are built and how the different pieces work together. It finishes with a few case studies that put those concepts into practice. Even if you are not planning to build an LLM application yourself, I found this part interesting. It gives you a better idea of how LLMs can be embedded into real applications and also a better understanding of how tools like GitHub Copilot work behind the scenes. So, while this is not a practical guide for coding agents, I think it is well worth reading if you want to build a solid foundation in context engineering and become better at working with agents.]]></summary></entry><entry><title type="html">Book Review: Staff Engineer: Leadership Beyond the Management Track</title><link href="https://plainionist.github.io/Staff-Engineer/" rel="alternate" type="text/html" title="Book Review: Staff Engineer: Leadership Beyond the Management Track" /><published>2026-04-27T00:00:00+00:00</published><updated>2026-04-27T00:00:00+00:00</updated><id>https://plainionist.github.io/Staff-Engineer</id><content type="html" xml:base="https://plainionist.github.io/Staff-Engineer/"><![CDATA[<p>If you are looking for a career in a larger software company beyond the traditional management track - 
meaning: without moving into people management - then this book can be a useful guide.</p>

<p><img src="https://plainionist.github.io/assets/staff-engineer.jpg" alt="Book: Staff Engineer: Leadership Beyond the Management Track" title="Staff Engineer: Leadership Beyond the Management Track" /></p>

<p><a href="https://www.amazon.com/Staff-Engineer-Leadership-Beyond-Management/dp/B097CNXP89/ref=sr_1_1">Staff Engineer: Leadership Beyond the Management Track</a></p>

<!--more-->

<p>The book explains different senior individual contributor roles, such as Tech Lead, Staff Engineer, and Software Architect.
More importantly, it explains what is expected from these roles beyond technical expertise.</p>

<p>And that is probably the most valuable part.</p>

<p>At this level, engineering is no longer only about writing better code yourself.
It is about creating leverage. You are expected to influence technical direction, improve collaboration, guide decisions, mentor others,
and help the organization make better trade-offs.</p>

<p>In that sense, the book gives a useful map for engineers who want to grow without becoming managers.
It also gives practical guidance on how to move toward these roles, what kind of work gets you there, and what expectations usually come with the title.</p>

<p>That said, I think the relevance depends heavily on context.</p>

<p>If you work in a smaller company, this book may not be that useful.
Many smaller organizations simply do not have such a clearly defined individual contributor ladder.
The same person may be developer, architect, tech lead, mentor, and delivery driver all at once — without anyone calling it “Staff Engineer.”</p>

<p>I also doubt the book is highly relevant if you or your company do not care much about titles.
A lot of the book is about understanding the shape of these roles inside larger organizations.
If your environment is more pragmatic and less title-driven, the value is more limited.</p>

<p>The second half of the book contains stories from people who took that career path.
I skipped those completely. Maybe they are useful if you want personal career examples, but for me they were not worth the time.</p>

<h2 id="tldr">TLDR;</h2>

<p>The book is useful if you want to understand how senior technical roles work in larger companies and how to grow beyond the management track.
It is less useful if you are mostly interested in better engineering practices, smaller-company realities, or hands-on technical leadership without the title system around it.</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[If you are looking for a career in a larger software company beyond the traditional management track - meaning: without moving into people management - then this book can be a useful guide. Staff Engineer: Leadership Beyond the Management Track]]></summary></entry><entry><title type="html">Book Review: Thinking Fast and Slow</title><link href="https://plainionist.github.io/Thinking-Fast-And-Slow/" rel="alternate" type="text/html" title="Book Review: Thinking Fast and Slow" /><published>2026-04-26T00:00:00+00:00</published><updated>2026-04-26T00:00:00+00:00</updated><id>https://plainionist.github.io/Thinking-Fast-And-Slow</id><content type="html" xml:base="https://plainionist.github.io/Thinking-Fast-And-Slow/"><![CDATA[<p>If you believe humans are mostly rational and think logically,<br />
then this book is for you 😉</p>

<p><img src="https://plainionist.github.io/assets/thinking-fast-and-slow.jpg" alt="Book: Thinking Fast and Slow" title="Thinking Fast and Slow" /></p>

<p><a href="https://www.amazon.com/Thinking-Fast-Slow-Daniel-Kahneman/dp/0374533555/ref=sr_1_1">Thinking Fast and Slow</a></p>

<!--more-->

<h2 id="the-key-idea">The key idea</h2>

<p>The core thesis of the book is that our thinking can be described as two systems.</p>

<p><strong>System 1</strong> is fast, automatic, intuitive, and effortless. It helps us recognize patterns, react quickly, read emotions, and make instant judgments.
But it also jumps to conclusions.</p>

<p><strong>System 2</strong> is slow, deliberate, analytical, and effortful. It helps us calculate, reason, compare options, and question assumptions.
But it is also lazy.</p>

<p>Most of the time, System 1 creates an answer first, and System 2 only checks it if there is enough reason or energy to do so.
That means we often feel rational while we are actually just justifying our first impression.
And because System 1 is very good at creating coherent stories from incomplete information, wrong conclusions can still feel obviously true.</p>

<p>This is not just interesting psychology; it has very practical consequences for how we explain ideas,
make decisions, give feedback, and collaborate as software engineers.</p>

<h2 id="5-practical-takeaways">5 practical takeaways</h2>

<h3 id="1-make-the-missing-context-visible">1. Make the missing context visible</h3>

<p>One of the strongest ideas in the book is: <strong>What you see is all there is.</strong></p>

<p>People reason based on the information available to them, not based on all the information that would be relevant.
And definitely not based on all the context you have in your head.</p>

<p>This matters a lot in collaboration. When people disagree with your proposal, they may not be irrational.
They may simply see a different part of the problem.</p>

<p>So before arguing for a solution, make the context visible.
What problem are we solving? What constraints do we have? What alternatives did we consider? What information influenced our conclusion?</p>

<p>Better context often creates better alignment.</p>

<h3 id="2-do-not-trust-confidence-too-much">2. Do not trust confidence too much</h3>

<p>The book shows again and again that confidence can be misleading.</p>

<p>A conclusion can feel correct simply because the story in our head is coherent.
But a coherent story is not the same as a true story.</p>

<p>This is important in discussions, planning, and architecture decisions.
Someone may sound very confident and still be wrong. And that someone may be you.</p>

<p>A useful habit is to ask: <strong>What evidence would change my mind?</strong></p>

<p>This moves the discussion away from confidence and toward verification.</p>

<h3 id="3-use-framing-consciously">3. Use framing consciously</h3>

<p>Kahneman shows that the way information is framed influences how people judge it.</p>

<p>The same facts can lead to different reactions depending on how they are presented.
That does not mean we should manipulate people. It means we should be responsible with framing.</p>

<p>In collaboration, this means we should be careful how we present problems, risks, and proposals.</p>

<p>“Refactoring this module will take two weeks.”</p>

<p>creates a different reaction than:</p>

<p>“Every new feature in this area currently takes longer because this module is hard to change.
Spending two weeks on refactoring should reduce the cost of all future changes in this area.”</p>

<p>Same topic. Different frame. Different understanding.</p>

<p>Good communication is not only about being logically correct. It is also about helping others see the point clearly.</p>

<h3 id="4-make-comparison-easy">4. Make comparison easy</h3>

<p>System 2 is slow, effortful, and lazy.</p>

<p>So if we want people to think carefully, we should not make the thinking unnecessarily hard.</p>

<p>This matters when we present options. Long verbal explanations are difficult to compare.
People will often anchor on the first option, remember the most vivid argument, or simply follow the most confident person in the room.</p>

<p>A small decision table is often better:</p>

<ul>
  <li>option</li>
  <li>benefit</li>
  <li>cost</li>
  <li>risk</li>
  <li>when it works</li>
  <li>when it fails</li>
</ul>

<p>This does not make the decision automatic. But it makes careful thinking easier.</p>

<h3 id="5-slow-down-important-decisions">5. Slow down important decisions</h3>

<p>Fast thinking is useful. We need intuition, experience, and quick judgment.</p>

<p>But the book is also a warning: intuition is not reliable everywhere.</p>

<p>For important decisions, we should deliberately slow down. Especially when the decision is expensive, risky, hard to reverse, or emotionally loaded.</p>

<p>Write the decision down. List alternatives. Separate facts from assumptions. Ask what could go wrong. Use an ADR when the decision matters.</p>

<p>Not because documents are magic.</p>

<p>But because writing forces System 2 to participate.</p>

<h2 id="conclusion">Conclusion</h2>

<p><strong>Do not believe everything you think.</strong> 😉</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[If you believe humans are mostly rational and think logically, then this book is for you 😉 Thinking Fast and Slow]]></summary></entry><entry><title type="html">Book Review: Radical Candor</title><link href="https://plainionist.github.io/Radical-Candor/" rel="alternate" type="text/html" title="Book Review: Radical Candor" /><published>2026-03-30T00:00:00+00:00</published><updated>2026-03-30T00:00:00+00:00</updated><id>https://plainionist.github.io/Radical-Candor</id><content type="html" xml:base="https://plainionist.github.io/Radical-Candor/"><![CDATA[<p>If you want to become a better <strong>people manager</strong> –<br />
or if you wish your manager would improve –<br />
this is definitely a book worth looking at 😉</p>

<p><img src="https://plainionist.github.io/assets/radical-candor.jpg" alt="Book: Radical Candor" title="Radical Candor" /></p>

<p><a href="https://www.amazon.com/Radical-Candor-KIM-SCOTT/dp/1509845380/ref=sr_1_5">Radical Candor</a></p>

<!--more-->

<p>Some time ago I started looking for material on how to become more effective inside an organization.</p>

<p>Technical skills alone are rarely enough.<br />
At some point, the real challenges become <strong>communication, feedback, and collaboration</strong>.</p>

<p>That search eventually led me to <em>Radical Candor</em>.</p>

<p>What immediately caught my attention was the subtitle:</p>

<blockquote>
  <p><em>How to get what you want by saying what you mean.</em></p>
</blockquote>

<p>That sounded exactly like the kind of practical advice I was looking for.</p>

<h2 id="what-i-took-away-from-the-book">What I Took Away From the Book</h2>

<p>While reading the book, I found several helpful ideas and practical hints.</p>

<p>Many concepts felt familiar because I had encountered similar ideas in the past, particularly in books by Tom DeMarco.<br />
Still, it was useful to see these principles applied specifically to <strong>leadership and management</strong>.</p>

<p>The central idea of the book is simple but powerful:</p>

<p>Good leadership requires a balance between <strong>caring personally</strong> and <strong>challenging directly</strong>.</p>

<p>Managers should be honest and direct with feedback, while also showing genuine care for the people they work with.</p>

<p>That balance is what the author calls <strong>Radical Candor</strong>.</p>

<h2 id="my-perspective">My Perspective</h2>

<p>I am not a people manager myself.</p>

<p>My role is closer to that of a <strong>technical lead</strong> or <strong>staff engineer</strong>, so I skipped some sections
that focus heavily on day-to-day management topics like hiring, performance reviews, or team administration.</p>

<p>However, many ideas in the book are still highly relevant even if you are not managing people directly.</p>

<p>In any technical role, you constantly interact with colleagues, give feedback on work, and discuss decisions.<br />
Learning how to do that <strong>clearly and respectfully</strong> is an important skill.</p>

<h2 id="final-thoughts">Final Thoughts</h2>

<p>Overall, I would say the book is <strong>definitely worth reading</strong>.</p>

<p>That said, it is probably most valuable for <strong>people managers or aspiring managers</strong>.</p>

<p>If you mainly work in technical roles, you will still find useful insights, but some parts of the book may feel less relevant.</p>

<p>Still, the core idea is simple and powerful:</p>

<p>Clear, honest communication combined with genuine care for people can dramatically improve how teams work together.</p>

<p>And that is a lesson that applies far beyond management.</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[If you want to become a better people manager – or if you wish your manager would improve – this is definitely a book worth looking at 😉 Radical Candor]]></summary></entry><entry><title type="html">Book Review: The Art of Systems Thinking</title><link href="https://plainionist.github.io/The-Art-of-Systems-Thinking/" rel="alternate" type="text/html" title="Book Review: The Art of Systems Thinking" /><published>2026-03-22T00:00:00+00:00</published><updated>2026-03-22T00:00:00+00:00</updated><id>https://plainionist.github.io/The-Art-of-Systems-Thinking</id><content type="html" xml:base="https://plainionist.github.io/The-Art-of-Systems-Thinking/"><![CDATA[<p>When I was researching how to improve my problem-solving skills -
which are an essential part of being a software engineer - I somehow came across this book.
Of course the second part of the title immediately caught my attention.</p>

<p>At first I could not make much sense of the first part of the title, but I bought the book anyway.
After reading the introduction it suddenly made perfect sense, because already there I learned:</p>

<p>In systems thinking, a system is more than just the sum of its parts.</p>

<blockquote>
  <p>A system is something that maintains its existence and functions
as a whole through the interaction of its parts.</p>

  <p>Your body is the perfect example. It consists of many different parts and organs,
each acting separately yet all working together and each affecting the others.</p>
</blockquote>

<p><img src="https://plainionist.github.io/assets/the-art-of-systems-thinking.jpg" alt="Book: The Art of Systems Thinking: Essential Skills for Creativity and Problem Solving" title="The Art of Systems Thinking: Essential Skills for Creativity and Problem Solving" /></p>

<p><a href="https://www.amazon.com/Art-Systems-Thinking-Essential-Creativity/dp/0722534426/ref=sr_1_1">The Art of Systems Thinking: Essential Skills for Creativity and Problem Solving</a></p>

<!--more-->

<p>Once you start looking at the world through the lens of systems thinking, you begin to notice systems everywhere.
We live in a world shaped by systems: political systems, economic systems, belief systems, organizations, teams - and of course software systems.</p>

<p>One quote from the book captures this shift in perspective very well:</p>

<blockquote>
  <p>If you cut a system in half, you do not get two smaller systems,
but a damaged system that will probably not function.</p>
</blockquote>

<p>This illustrates why traditional scientific analysis - breaking things into smaller pieces - only provides a limited understanding.
Many important behaviors arise from the <strong>interactions between parts</strong>, not from the parts themselves.</p>

<p>To truly understand systems - whether a team, an organization, or a complex software system - we must respect this idea.</p>

<p>This is especially relevant in software engineering.</p>

<p>A team is more than a group of individuals.
An architecture is more than a collection of modules.
A development process is more than a sequence of activities.</p>

<p>What actually shapes the outcome are the <strong>connections and dependencies between the elements</strong>.</p>

<p>This book provides a framework for thinking about exactly that.
It encourages you to step back from isolated incidents and ask a much more useful question:</p>

<p><strong>What kind of system is producing these results?</strong></p>

<p>Instead of focusing on individual mistakes or symptoms,
systems thinking pushes us to examine the structure that creates the patterns we observe.</p>

<p>The behavior of a system is largely determined by <strong>how its components interact</strong>, not simply by the components themselves.</p>

<p>Many of the most interesting properties of a system belong to the <strong>whole</strong>, not to any individual part.
When we take a system apart to analyze it, we often lose exactly the properties we were trying to understand.</p>

<p>Because the elements within a system influence each other, systems often resist attempts to change them.
But when change finally happens, it can sometimes occur abruptly and dramatically.</p>

<p>A key shift in systems thinking is moving away from linear cause-and-effect reasoning.
Instead of straight lines, systems are better understood as <strong>circles of influence</strong>.</p>

<p>The essence of systems are feedback loops, which we can split into two types:</p>

<ul>
  <li><strong>reinforcing feedback</strong>, which amplifies change and pushes the system further in the same direction</li>
  <li><strong>balancing feedback</strong>, which counteracts change and stabilizes the system</li>
</ul>

<p>All systems have a goal, a desired state where the system tends to settle or remain balanced.</p>

<p>Another important aspect of systems is <strong>delay</strong>.
Cause and effect are often separated in time because feedback loops take time to complete.
This is one reason why systems can behave in ways that appear confusing or counterintuitive.</p>

<p>Most systems contain certain points where <strong>small adjustments can lead to disproportionately large results</strong>.
These leverage points are far more effective places for intervention than applying more effort everywhere.</p>

<p>Interestingly, some of the most powerful leverage points lie in <strong>mental models</strong>.</p>

<p>Mental models are the beliefs and assumptions we rely on to interpret the world.
They shape how we understand cause and effect and how we decide to act.</p>

<p>In that sense, our mental models themselves form a kind of system.
If these internal models are incomplete or flawed, we may unknowingly recreate the same systemic problems.</p>

<p>Learning can also be viewed through a systems perspective.</p>

<p>Learning follows a feedback pattern: we take action, observe the results, adjust our understanding, and act again.
Over time this cycle moves us closer to our intended outcome.</p>

<p>Since the world is always richer than any single representation we hold, it is important to consider <strong>multiple perspectives</strong>.
Broadening our viewpoints expands our mental models and improves our ability to understand the system.</p>

<p>The final part of the book demonstrates how systems can be <strong>visualized through diagrams and causal maps</strong>.
Making relationships and feedback loops visible helps turn vague intuition into something that can be analyzed and discussed.</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[When I was researching how to improve my problem-solving skills - which are an essential part of being a software engineer - I somehow came across this book. Of course the second part of the title immediately caught my attention. At first I could not make much sense of the first part of the title, but I bought the book anyway. After reading the introduction it suddenly made perfect sense, because already there I learned: In systems thinking, a system is more than just the sum of its parts. A system is something that maintains its existence and functions as a whole through the interaction of its parts. Your body is the perfect example. It consists of many different parts and organs, each acting separately yet all working together and each affecting the others. The Art of Systems Thinking: Essential Skills for Creativity and Problem Solving]]></summary></entry><entry><title type="html">Book Review: Extreme Ownership</title><link href="https://plainionist.github.io/Extreme-Ownership/" rel="alternate" type="text/html" title="Book Review: Extreme Ownership" /><published>2026-03-15T00:00:00+00:00</published><updated>2026-03-15T00:00:00+00:00</updated><id>https://plainionist.github.io/Extreme-Ownership</id><content type="html" xml:base="https://plainionist.github.io/Extreme-Ownership/"><![CDATA[<p>Software projects are almost always executed in teams.</p>

<p>When you work in a great team, it’s one of the most enjoyable aspects of the job.
But when teams don’t function well, the amount of friction can be enormous.</p>

<p>A key factor behind great teams is great technical leadership.</p>

<p>Good tech leads are not only strong in technical topics.
More importantly, they need leadership skills.</p>

<p>In that regard, military teams and software teams are not so different.
Both operate under pressure, must coordinate complex work, and rely heavily on trust and clear communication.</p>

<p>If you want to understand what truly matters in leadership,
<strong>this book is an excellent resource.</strong></p>

<p>That’s why I picked this book, and if you are a tech lead - or want to become one -
I highly recommend reading it.</p>

<p><img src="https://plainionist.github.io/assets/extreme-ownership.jpg" alt="Book: Extreme Ownership: How U.S. Navy SEALs Lead and Win" title="Extreme Ownership: How U.S. Navy SEALs Lead and Win" /></p>

<p><a href="https://www.amazon.com/Extreme-Ownership-U-S-Navy-SEALs/dp/1250183863/ref=tmm_hrd_swatch_0">Extreme Ownership: How U.S. Navy SEALs Lead and Win</a></p>

<!--more-->

<p>The book presents <strong>12 principles to “lead and win.”</strong></p>

<p>Each chapter follows the same structure:</p>

<p>A <strong>story from Navy SEAL operations</strong> in Iraq that sets the stage for the principle and helps build an intuitive understanding of why it matters.<br />
If you are not interested in the military details, these sections can be read quickly.</p>

<p>The <strong>principle section</strong> then explains the core idea.</p>

<p>Finally, the <strong>business section</strong> shows how the principle applies in organizations and teams.</p>

<p>Here are the <strong>12 leadership principles</strong> from the book.</p>

<h2 id="1-extreme-ownership">1. Extreme Ownership</h2>

<blockquote>
  <p>The leader must own everything in his or her world.</p>
</blockquote>

<p>Leaders must take full responsibility for everything in their team’s results.
There are no excuses and no blaming others.
When leaders own failures, they can fix the real problems.</p>

<h2 id="2-no-bad-teams-only-bad-leaders">2. No Bad Teams, Only Bad Leaders</h2>

<blockquote>
  <p>When it comes to standards, as a leader, it’s not what you preach, it’s what you tolerate.</p>
</blockquote>

<p>Team performance reflects leadership quality.
If a team fails, the leader must change the approach rather than blame individuals.
Good leadership can turn around even poorly performing teams.</p>

<h2 id="3-believe">3. Believe</h2>

<blockquote>
  <p>In order to convince and inspire others to follow and accomplish a mission
a leader must be a true believer in the mission.</p>
</blockquote>

<p>Leaders must truly believe in the mission.
If they don’t, they cannot convincingly communicate it to the team.
Understanding the “why” is essential to gain commitment.</p>

<h2 id="4-check-the-ego">4. Check the Ego</h2>

<p>Ego prevents learning, collaboration, and effective decision-making.
Leaders must stay humble and open to feedback.
Mission success is more important than personal pride.</p>

<h2 id="5-cover-and-move">5. Cover and Move</h2>

<p>Teams must support and protect each other to succeed.
Success depends on collaboration between units rather than isolated efforts.
The entire organization must work as one team.</p>

<h2 id="6-simple">6. Simple</h2>

<blockquote>
  <p>And when things go wrong — and they inevitably do — complexity compounds issues
that can spiral out of control into total disaster.</p>
</blockquote>

<p>Plans must be simple and easy to understand.
Complexity creates confusion and increases the risk of failure.
Clear and straightforward plans improve execution.</p>

<h2 id="7-prioritize-and-execute">7. Prioritize and Execute</h2>

<blockquote>
  <p>“Relax, look around, make a call.”</p>
</blockquote>

<p>When multiple problems arise, leaders must focus on the most critical one first.
Solve issues step by step instead of becoming overwhelmed.
Calm prioritization enables effective action in chaos.</p>

<h2 id="8-decentralized-command">8. Decentralized Command</h2>

<blockquote>
  <p>Every tactical-level team leader must understand not just what to do but why they are doing it.</p>
</blockquote>

<p>Decision-making authority should be pushed down to leaders closest to the problem.
Everyone must understand the mission well enough to act independently.
This creates speed, flexibility, and resilience.</p>

<h2 id="9-plan">9. Plan</h2>

<p>Leaders must carefully plan missions and involve key team members in the process.
Clear communication of the plan ensures everyone understands their role.
Preparation reduces uncertainty and improves execution.</p>

<h2 id="10-leading-up-and-down-the-chain-of-command">10. Leading Up and Down the Chain of Command</h2>

<p>Leaders must manage relationships with both superiors and subordinates.
If higher leadership doesn’t understand something, it’s the leader’s responsibility to explain it clearly.
Ownership extends both upward and downward.</p>

<h2 id="11-decisiveness-amid-uncertainty">11. Decisiveness Amid Uncertainty</h2>

<blockquote>
  <p>There is no 100 percent right solution. The picture is never complete.</p>
</blockquote>

<p>Leaders must make decisions even when information is incomplete.
Waiting for perfect certainty often leads to missed opportunities.
Timely action is usually better than hesitation.</p>

<h2 id="12-discipline-equals-freedom">12. Discipline Equals Freedom</h2>

<p>Discipline in planning, training, and execution creates freedom in operations.
Consistent discipline reduces chaos and improves performance.
The more disciplined the team, the more effectively it can operate.</p>

<h2 id="final-thoughts">Final Thoughts</h2>

<p>While reading the book, I could immediately relate many of the principles to my daily work.</p>

<p>If you take a fresh look at how your team operates,<br />
I’m pretty sure you’ll recognize some of the same patterns.</p>

<p>And that’s a good place to start improving.</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[Software projects are almost always executed in teams. When you work in a great team, it’s one of the most enjoyable aspects of the job. But when teams don’t function well, the amount of friction can be enormous. A key factor behind great teams is great technical leadership. Good tech leads are not only strong in technical topics. More importantly, they need leadership skills. In that regard, military teams and software teams are not so different. Both operate under pressure, must coordinate complex work, and rely heavily on trust and clear communication. If you want to understand what truly matters in leadership, this book is an excellent resource. That’s why I picked this book, and if you are a tech lead - or want to become one - I highly recommend reading it. Extreme Ownership: How U.S. Navy SEALs Lead and Win]]></summary></entry><entry><title type="html">Book Review: Prompt Engineering for LLMs: The Art and Science of Building Large Language Model-Based Applications</title><link href="https://plainionist.github.io/Prompt-Engineering-for-LLMs/" rel="alternate" type="text/html" title="Book Review: Prompt Engineering for LLMs: The Art and Science of Building Large Language Model-Based Applications" /><published>2026-03-03T00:00:00+00:00</published><updated>2026-03-03T00:00:00+00:00</updated><id>https://plainionist.github.io/Prompt-Engineering-for-LLMs</id><content type="html" xml:base="https://plainionist.github.io/Prompt-Engineering-for-LLMs/"><![CDATA[<p>Most of us see the huge advantage AI gives us - when used wisely.</p>

<p>We can use it as intelligent auto-completion,
or ask it to implement entire features.</p>

<p>But to get good results, we need to engineer good prompts.</p>

<p>That’s why I picked up <em>Prompt Engineering for LLMs</em>.
Here’s what I learned.</p>

<p><img src="https://plainionist.github.io/assets/prompt-engineering-for-llms.jpg" alt="Book: Prompt Engineering for LLMs: The Art and Science of Building Large Language Model-Based Applications" title="Prompt Engineering for LLMs: The Art and Science of Building Large Language Model-Based Applications" /></p>

<p><a href="https://www.amazon.com/Prompt-Engineering-LLMs-Model-Based-Applications/dp/1098156153/ref=sr_1_1">Prompt Engineering for LLMs: The Art and Science of Building Large Language Model-Based Applications</a></p>

<!--more-->

<p>The book primarily targets developers who want to build LLM applications.
Think of a chat application like ChatGPT or a coding assistant like Copilot.</p>

<p>But even if you do not plan to build such systems yourself,
understanding how these applications are constructed gives you deep insight into how today’s LLMs and LLM-based products really work.</p>

<p>The book is divided into three parts.</p>

<h2 id="part-1--fundamentals">Part 1 – Fundamentals</h2>

<p>The first part covers the fundamentals of large language models.</p>

<p>It explains how they work, how they process data, what they can do, and just as importantly,what they cannot do.
It also introduces the core architecture of LLM-based applications.</p>

<p>This section is especially helpful if you mainly use LLMs but want to understand what is happening behind the scenes.
It builds the conceptual foundation you need before thinking about prompt engineering in a more systematic way.</p>

<h3 id="part-2--engineering-prompts">Part 2 – Engineering Prompts</h3>

<p>The second part focuses on prompt engineering itself.</p>

<p>Some of the concepts are useful for everyday users of LLM tools.
But the primary audience here is developers who design and build LLM applications.</p>

<p>This section explains how to gather relevant content, how to structure and preprocess that content,
and how to assemble effective prompts using different techniques.
It moves from theory to applied engineering and shows how prompts are not just “questions,”
but carefully constructed inputs that shape the model’s output.</p>

<h3 id="part-3--advanced-topics">Part 3 – Advanced Topics</h3>

<p>The third part goes deeper into advanced topics.</p>

<p>It discusses integrating tool execution into prompts and building more capable LLM applications.
It covers how to simulate reasoning, how to design conversational agents, and how to structure larger LLM workflows.</p>

<p>The book concludes with a discussion about evaluating the quality of LLM applications once you have built them -
which is an important and often overlooked aspect.</p>

<h3 id="final-thoughts">Final Thoughts</h3>

<p>If you simply want to use LLMs more effectively in your daily work, you probably do not need to spend the money.
There are cheaper resources that teach basic prompt tips.</p>

<p>But if you want to deeply understand how LLM applications work internally - and eventually build your own - this is a solid book.</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[Most of us see the huge advantage AI gives us - when used wisely. We can use it as intelligent auto-completion, or ask it to implement entire features. But to get good results, we need to engineer good prompts. That’s why I picked up Prompt Engineering for LLMs. Here’s what I learned. Prompt Engineering for LLMs: The Art and Science of Building Large Language Model-Based Applications]]></summary></entry><entry><title type="html">Book Review: Beyond Vibe Coding - From Coder to AI-Era Developer</title><link href="https://plainionist.github.io/Beyond-Vibe-Coding/" rel="alternate" type="text/html" title="Book Review: Beyond Vibe Coding - From Coder to AI-Era Developer" /><published>2026-02-16T00:00:00+00:00</published><updated>2026-02-16T00:00:00+00:00</updated><id>https://plainionist.github.io/Beyond-Vibe-Coding</id><content type="html" xml:base="https://plainionist.github.io/Beyond-Vibe-Coding/"><![CDATA[<p>AI can get your project 70% done in minutes.<br />
But what about the hard 30% - the part where real engineering begins?</p>

<p><em>Beyond Vibe Coding</em> cuts through the hype and draws a sharp line between short-term velocity and sustainable AI-assisted engineering.<br />
It explains why prompting is really about expressing intent, why fundamentals still matter, and how juniors, mid-levels, and seniors must adapt differently in the AI era.</p>

<p><img src="https://plainionist.github.io/assets/beyond-vibe-coding.jpg" alt="Book: Beyond Vibe Coding: From Coder to AI-Era Developer" title="Beyond Vibe Coding: From Coder to AI-Era Developer" /></p>

<p><a href="https://www.amazon.com/Beyond-Vibe-Coding-AI-Era-Developer/dp/B0F6S5425Y/ref=sr_1_1">Beyond Vibe Coding: From Coder to AI-Era Developer</a></p>

<!--more-->

<p>AI tools are now part of everyday development.<br />
The real question is not whether we use them - but how.</p>

<p>How do we integrate AI without sacrificing quality, maintainability, and engineering discipline?</p>

<p><em>Beyond Vibe Coding: From Coder to AI-Era Developer</em> attempts to answer exactly that.</p>

<p>The book introduces a useful distinction:</p>

<ul>
  <li><strong>Vibe coding</strong> optimizes for short-term speed.</li>
  <li><strong>AI-assisted engineering</strong> optimizes for sustained velocity and reliability.</li>
</ul>

<p>AI can accelerate you - but only if it is embedded in real engineering practices.</p>

<h2 id="programming-with-intent">Programming With Intent</h2>

<p>The central shift the author proposes is subtle but important:<br />
AI development is not about generating code - it’s about expressing intent clearly.</p>

<p>Prompting, in this view, is less about clever tricks and more about communication discipline:</p>

<ul>
  <li>Provide context</li>
  <li>Be specific</li>
  <li>Avoid overloading</li>
  <li>Refine iteratively</li>
</ul>

<p>Treat AI like a junior developer. Give direction. Review the results. Iterate.</p>

<p>The book introduces techniques such as role prompting and chain-of-thought reasoning, but the deeper takeaway is this: effective prompting requires structured thinking.</p>

<h2 id="the-70-problem">The 70% Problem</h2>

<p>One of the strongest ideas in the book is the “70% problem.”</p>

<p>AI can reliably scaffold a feature, generate boilerplate, or get a system mostly running.<br />
But the final 30% - domain-specific decisions, edge cases, architectural trade-offs - remain human territory.</p>

<p>AI handles <strong>accidental complexity</strong> well.<br />
Engineers still own <strong>essential complexity</strong>.</p>

<p>That distinction matters.</p>

<ul>
  <li>You must understand the generated code</li>
  <li>You must review and test it</li>
  <li>You must debug it when it breaks</li>
  <li>You must not merge what you cannot explain</li>
</ul>

<p>The last 30% is where real engineering begins.
For juniors especially, skipping that part risks long-term skill atrophy.</p>

<h2 id="practical-guidelines">Practical Guidelines</h2>

<p>The book reinforces pragmatic, almost conservative engineering habits:</p>

<ul>
  <li>One task per session to avoid context confusion</li>
  <li>Keep prompts concise and focused</li>
  <li>Treat AI output like code from a junior developer</li>
  <li>Don’t merge what you don’t understand</li>
  <li>Provide coding standards and architectural rules explicitly</li>
  <li>Share effective prompts within the team</li>
  <li>Reflect and iterate regularly</li>
</ul>

<p>In short: AI does not replace engineering practices - it amplifies them.</p>

<h2 id="adapting-to-the-ai-era">Adapting to the AI Era</h2>

<p>The book makes one thing clear: AI does not level the playing field.<br />
It changes how each experience level creates value.</p>

<p><strong>For seniors, AI is leverage.</strong></p>

<ul>
  <li>Act as architect and editor-in-chief</li>
  <li>Use AI to accelerate large refactorings and strategic improvements - without losing control</li>
  <li>Continue cultivating domain mastery and long-term foresight</li>
</ul>

<p>Experience becomes more valuable, not less.<br />
AI amplifies judgment.</p>

<p><strong>Mid-level engineers are encouraged to grow beyond feature implementation.</strong></p>

<ul>
  <li>Build deeper domain expertise</li>
  <li>Take ownership of code review and quality assurance</li>
  <li>Develop systems thinking, architecture, and design skills</li>
</ul>

<p>The shift is subtle but important: move from <em>writing code</em> to <em>understanding systems</em>.</p>

<p><strong>For juniors, AI is an accelerator - but only if fundamentals are solid.</strong></p>

<ul>
  <li>Learn the fundamentals - don’t skip the “why”</li>
  <li>Practice problem-solving and debugging without the AI safety net</li>
  <li>Build an eye for maintainability</li>
  <li>Develop prompting and tooling skills deliberately</li>
</ul>

<p>AI can speed up progress.<br />
It cannot replace foundational understanding.</p>

<h2 id="final-thoughts">Final Thoughts</h2>

<p>If you are new to AI-assisted development, this book provides a structured and grounded starting point.<br />
It helps you avoid common mistakes and establish sustainable workflows from the beginning.</p>

<p>If you have already experimented extensively with vibe coding and developed your own patterns, you may find fewer surprises.
The book consolidates solid ideas rather than introducing radically new ones.</p>

<p>Still, it offers an important reminder:</p>

<p>While tools evolve, software engineering fundamentals still apply.</p>]]></content><author><name>Plainionist</name></author><category term="book" /><summary type="html"><![CDATA[AI can get your project 70% done in minutes. But what about the hard 30% - the part where real engineering begins? Beyond Vibe Coding cuts through the hype and draws a sharp line between short-term velocity and sustainable AI-assisted engineering. It explains why prompting is really about expressing intent, why fundamentals still matter, and how juniors, mid-levels, and seniors must adapt differently in the AI era. Beyond Vibe Coding: From Coder to AI-Era Developer]]></summary></entry></feed>