<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Joseph Gefroh]]></title><description><![CDATA[Gefroh writes about the messy middle of product and engineering leadership: turning ambiguity, misalignment, and scaling complexity into durable execution.]]></description><link>https://blog.jgefroh.com</link><image><url>https://substackcdn.com/image/fetch/$s_!sphd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cef45a3-7420-4cba-95f3-46a3b5d34293_100x100.png</url><title>Joseph Gefroh</title><link>https://blog.jgefroh.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 24 Jun 2026 16:49:52 GMT</lastBuildDate><atom:link href="https://blog.jgefroh.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Joseph Gefroh]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[joseph.gefroh@gmail.com]]></webMaster><itunes:owner><itunes:email><![CDATA[joseph.gefroh@gmail.com]]></itunes:email><itunes:name><![CDATA[Joseph Gefroh]]></itunes:name></itunes:owner><itunes:author><![CDATA[Joseph Gefroh]]></itunes:author><googleplay:owner><![CDATA[joseph.gefroh@gmail.com]]></googleplay:owner><googleplay:email><![CDATA[joseph.gefroh@gmail.com]]></googleplay:email><googleplay:author><![CDATA[Joseph Gefroh]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The War-time Operator]]></title><description><![CDATA[Founder-mode isn't the only option for companies entering wartime.]]></description><link>https://blog.jgefroh.com/p/the-war-time-operator</link><guid isPermaLink="false">https://blog.jgefroh.com/p/the-war-time-operator</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Mon, 15 Jun 2026 15:01:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!n0b4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n0b4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n0b4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png 424w, https://substackcdn.com/image/fetch/$s_!n0b4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png 848w, https://substackcdn.com/image/fetch/$s_!n0b4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png 1272w, https://substackcdn.com/image/fetch/$s_!n0b4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n0b4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png" width="1456" height="614" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:614,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6332407,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/199901281?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!n0b4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png 424w, https://substackcdn.com/image/fetch/$s_!n0b4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png 848w, https://substackcdn.com/image/fetch/$s_!n0b4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png 1272w, https://substackcdn.com/image/fetch/$s_!n0b4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7713b2a-b263-4159-b23d-1468c3a97489_3510x1480.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>An oft-misapplied concept</h1><p>Ben Horowitz has a piece called <a href="https://a16z.com/peacetime-ceo-wartime-ceo/?source=jgefroh.com">War-time CEO / Peace-time CEO.</a> It&#8217;s an excellent read, with plenty of insights.</p><p>I&#8217;ve found though that many who read it come away with the over-simplified impression that it&#8217;s all or nothing - either you&#8217;re always directly involved in everything with no process during war-time or you&#8217;re always delegating everything into a perfect process during peace-time. That&#8217;s not what the piece says, yet the conclusion seems to be common.</p><p>The consequence of that simplification chain leads to people bucketing Operators into peace-time and bypassing operations completely once war-time rolls around.</p><p>In reality - there&#8217;s a messy middle where <em>operators excel, </em>helping companies navigate the uncomfortable period between the two extreme states of peace-time and war-time and ensuring war-time doesn&#8217;t break things that didn&#8217;t need to break. </p><p>When war-time hits, people at companies don&#8217;t just shift suddenly, ready to execute. Their operations don&#8217;t magically optimize themselves. The structure doesn&#8217;t remodel automatically. People often just stay stuck in peacetime operations, or start jumping ship, deteriorating the situation further.</p><p>Transitioning to war-time is a massively disruptive event, and the default mode is to break many things and keep them broken in the name of moving fast and breaking things. </p><p>In reality - moving fast and breaking things is irresponsible when your alternative option was to move fast and not break things. </p><p><strong>After the break</strong></p><p>Afterwards, it requires leadership and change to put back together - skills that are, by the time they are needed, gone from the organization.</p><p>Some companies brute-force their way through crisis. Few have people with the depth in putting the pieces back together. They do the best they can, but suffer losses that didn&#8217;t need to be lost, sacrifice gains that didn&#8217;t need to be sacrificed. They survive, but at a higher cost than they actually needed to pay.</p><p>Surviving is not thriving. It takes another skillset entirely to take a company in a crisis and <em>thrive</em>. That&#8217;s where effective wartime operators can help companies <em>excel</em> in times of turbulence, all while supporting providing a structure that can leverage the benefits founder-mode brings.</p><div><hr></div><h1>Thriving is thriving</h1><p>What do wartime operators actually do?</p><ul><li><p>Understand the entire system and its influences and pulling the key levers - first, second, and third order effects providing leverage</p><ul><li><p>Focus on the high leverage to maintain high effectiveness for effort, which critically matters in crisis.</p></li></ul></li><li><p>Make effective, rapid decisions and communications to prevent ambiguity and alignment drift</p><ul><li><p>Don&#8217;t allow delays to fester for more than minutes - measure wait times in seconds.</p></li></ul></li><li><p>Supervise, and in some cases step into, execution to ensure sufficient quality and speed as context dictates</p><ul><li><p>Be more attentive to specific key details - but spend your energy on the things that really matter.</p></li></ul></li><li><p>Improve efficiency of operations and execution, ensuring economy of limited resources and effort, including violating bypassing operations when needed</p><ul><li><p>Maintain the minimum bar of operations necessary to keep things from creating new fires and adjust the rituals that don&#8217;t provide the ROI.</p></li></ul></li><li><p>Rally teams around challenges to maintain and increase morale through difficult times</p><ul><li><p>People won&#8217;t be motivated because everything is calm, people will be motivated because the waters are choppy and they are showing their strength</p></li></ul></li><li><p>Change perspectives to see and capture opportunities, lifting team out of ruminating on failures</p><ul><li><p>Doing better the next time should be baked in to the culture.</p></li></ul></li><li><p>Focus teams on the critical priorities, factoring in urgency, importance, risk, effort, and a dozen other tradeoffs <em>rapidly</em></p><ul><li><p>Instead of &#8216;everything is critical&#8217;, focus on <em>what is actually critical</em></p></li></ul></li><li><p>Preserve and improve organizational knowledge for the post-crisis transition</p><ul><li><p>The company needs to survive its survival.</p></li></ul></li></ul><p>This is different than peace-time operations. In a crisis context, you don&#8217;t get effective outcomes through taking actions that align with the traditional peace-time management that seems the default of much of the advice out there:</p><ul><li><p>&#8220;Get everyone&#8217;s opinions so they feel included and bought in&#8221;</p></li><li><p>&#8221;Give people stretch goals so they can grow&#8221;</p></li><li><p>&#8221;Get data and evidence on processes before acting to make good decisions&#8221;</p></li><li><p>&#8220;Leave 20% time for self-directed education and training to support teams&#8220;</p></li><li><p>&#8220;Let people define the &#8216;how&#8217; so that you don&#8217;t micromanage and ruin autonomy&#8220;</p></li><li><p>&#8220;Let the team run some experiments to see what happens&#8221;</p></li></ul><p>This &#8216;sage advice&#8217; just contributes to the spiral during wartime.</p><p>That&#8217;s not to say the <em>outcomes they achieve</em> aren&#8217;t important: buy-in is still important, growth is still important, good decisions are still important, leveraging individual skills is still important, understanding effects is still important. It&#8217;s just during a crisis, you have to achieve the same outcomes <em>differently. </em>The mechanism must change with the operating environment,</p><p>If you follow a peace-time playbook during war-time, you&#8217;ll feel good about your ideals but your organization will fail.</p><p>This is where a lot of leaders that step in during crisis fail to mitigate losses or recognize further gains - they ditch the peacetime practices without necessarily preserving the outcomes with wartime variants. As a result, people leave, morale suffers, costs increase, and it makes it that much harder to get through the tunnel, if they do at all.</p><div><hr></div><h1>I expect to see more crises</h1><p>Company stabilization and transformation during existential stress has historically been a very, very small subset of lifecycle events. </p><p>Most of the time, it&#8217;s been limited to fairly predictable stages:</p><ul><li><p>Startups going through different lifecycle phases, from build to MVP to scale-up</p></li><li><p>Companies getting disrupted by internal or external market shocks</p></li><li><p>Already fragile organizations that suddenly become hit with the wrong combination of events simultaneously - key departures, client churn</p></li></ul><p>With the advent of AI, I expect to see far more crises at companies. </p><p>External malicious actors can expose a company&#8217;s secrets more rapidly. The opportunity for internal mistakes increases ten-fold due to increased risk surface area and system connectivity with LLMs. People secretly burnt out from worry both due to macro-economic and industry trends suddenly encounter the straw that breaks their back. Acceleration of output and execution can overwhelm those downstream of the value chain. Deception and bypassing of traditional governance controls such as in hiring has become easier for even unsophisticated actors.</p><p>Everything is more flammable now - and there&#8217;s more and more people running around with flamethrowers. Unresilient organizations will burn.</p><p>Leaders would do well to apply their peacetime methods to help alleviate some of the potential risks, but also prepare their wartime toolkit before the inevitable crisis occurs.</p><div><hr></div><h1>What can leaders do to prepare?</h1><p>That&#8217;s the magic question, isn&#8217;t it?</p><ul><li><p><strong>Train your teams on wartime principles</strong> - adaptability, pro-activity, willingness to step across boundaries, initiative</p></li><li><p><strong>Train your teams on leveraging AI</strong> - a tool is less scary once people figure out how to leverage it</p></li><li><p><strong>Train your teams on a forward-looking mindset - </strong>AI isn&#8217;t coming to replace their jobs, it&#8217;ll help them expand their roles and opportunities</p></li><li><p><strong>Automate downstream for an increase in scale - </strong>whether that&#8217;s reviews, delivery artifacts, etc. - make sure your downstream processes can operate at the scale of an ever-increasing input while maintaining the bars you have</p></li><li><p><strong>Build in buffer </strong>- some organizations have done cuts to run leaner and more efficient, but some have overdone it to the point of creating systemic fragility - there&#8217;s no room to handle acute disruption in a perfectly efficient organization. A wrench in a gear will break the whole system without backup gears.</p></li><li><p><strong>Map your system - </strong>dependencies exist everywhere in an organization. You want to know what you need to do, how it needs to happen, and what their dependencies are. That way, you are aware of key risks - and can mitigate them pro-actively.</p></li><li><p><strong>Build resilience</strong> - your team needs to embrace adaptability, change, and direct intervention, not fight against it. Prepare their mindsets ahead of time, bake in collaboration vs. hand-offs.</p></li><li><p><strong>Aim for efficiency - </strong>Teach people how they can do their jobs faster and more efficiently. The key: don&#8217;t be overly efficient. Build the capability but never fully saturate it.</p></li></ul><p>Build teams that work well together but also can work independently and fully own end-to-end things <em>by themselves</em>, <em>while keeping others in the loop</em>.</p><p>Build up the capability to project out plans into the future, but with an understanding that no plan survives contact with reality and rapid changes may be required.</p><p>Build up rapid ways to collect feedback and input from the team, while still ensuring that decision-makers are clear and there&#8217;s an understanding that it&#8217;s not a vote.</p><p>Build up a tolerance for being told &#8216;how&#8217; while providing space for improvements to occur <em>after efficient execution achieves the goal</em>.</p><p><strong>What does this enable?</strong></p><p>Turns out, effective war-time operations enables more effective<em> founder-mode. </em></p><p>If effective war-time operations are set up, it enables a leader to apply their founder-mode to <em>exactly where it is needed</em> and provide <em>leverage</em>. Instead of throwing the entire organization into chaos, they can focus and push forward key leverage points while the rest of the company operates tightly, effectively, efficiently, and with stability - providing the structure necessary to direct and leverage founder-mode efforts in the places it is needed most.</p><div><hr></div><h1>Not all operators can do this</h1><p>A thing that is true from that article - many, many operators established their careers<em> solely in peace-time</em> <em>contexts.</em> </p><p>The phrase <em>&#8220;sweet summer child&#8221;</em> comes to mind. </p><p>When hit with crisis, their operations break, and they fall into chaos. They can&#8217;t handle the stress, they don&#8217;t have the skills to execute, and they try to delegate in a time when it requires direct intervention and complete rework of the established processes. </p><p>These folks fall behind. Their organizations become almost <em>useless</em> as they attempt to <em>preserve</em> instead of <em>transform</em>. They are rightfully and more effectively replaced by war-time founder-mode leaders.</p><p>Like the piece said, it does require true understanding of management and leadership fundamentals, and a flip in mindset. At the same time - it doesn&#8217;t require throwing out the baby with the bathwater.</p><p>All other things held equal, in wartime, effectiveness can be stack-ranked for war-time:</p><p>Peace-time operation is less effective than founder-mode which is less effective than a war-time operations which is less effective than war-time operations supported by war-time operations.</p><p>Put another way - you go from &#8216;bad&#8217; to &#8216;good&#8217; to &#8216;great&#8217; to &#8216;excellent&#8217;.</p><div><hr></div><p>Wartime operators provide can help a company entering crisis to preserve the outcomes that matter while changing the mechanisms that achieve those outcomes to operate fast enough for the new environment. Effective war-time operations can reduce the friction and heavy costs of war-time and even leave the company better than it was in peace-time.</p><div><hr></div><p><em><a href="https://jgefroh.com/">Gefroh</a> is a product and engineering leader in Kirkland, Washington. He often writes about Leadership, Management, Operations, AI, and Product Engineering. He has never actually watched Game of Thrones.</em></p>]]></content:encoded></item><item><title><![CDATA[Align, Empower, Execute - Efficiently execute with the AEE Cycle]]></title><description><![CDATA[Understanding the fundamentals of team execution supercharges your management ability to execute faster, more efficiently, and in a more aligned manner.]]></description><link>https://blog.jgefroh.com/p/align-empower-execute-efficiently</link><guid isPermaLink="false">https://blog.jgefroh.com/p/align-empower-execute-efficiently</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Mon, 08 Jun 2026 15:01:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dI7u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!57Rh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!57Rh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png 424w, https://substackcdn.com/image/fetch/$s_!57Rh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png 848w, https://substackcdn.com/image/fetch/$s_!57Rh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png 1272w, https://substackcdn.com/image/fetch/$s_!57Rh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!57Rh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png" width="1456" height="330" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:330,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72646,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/197429309?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!57Rh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png 424w, https://substackcdn.com/image/fetch/$s_!57Rh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png 848w, https://substackcdn.com/image/fetch/$s_!57Rh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png 1272w, https://substackcdn.com/image/fetch/$s_!57Rh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21d82dba-ff89-4c62-b809-71ab509b3e29_2676x606.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">The AEE Cycle</figcaption></figure></div><p>Align, Empower, Execute. I call this the AEE Cycle - the fundamental cycle of any execution that occurs in an organization. Whether the work is being done by engineering teams, or even just basic projects - managing the cycle effectively a powerful management tool for achieving leverage and project success and operational efficiency.</p><div><hr></div><h1>AEE - The Cycle</h1><p>AEE is simple conceptually:</p><ul><li><p>Your team needs to know what to do (Align)</p></li><li><p>Your team needs resources to do it (Empower)</p></li><li><p>Your team needs to go and do it (Execute)</p></li></ul><p>It&#8217;s a cycle - once the team executes, something in the environment might change that invalidates assumptions, necessitates a change in the direction, or perhaps just to catch natural goal drift. The team then goes back to Align at some point in the future, going through the cycle again, and again, and again.</p><p>That helps keep the team on track, focused on execution, and ensures that projects don&#8217;t stall.</p><div><hr></div><h2><strong>Align - Providing the team clarity</strong></h2><p>Alignment is the most important activity to start with. You want to point your team in the right direction so that their efforts can be put into productive ends. To do this, you <em>align</em> and provide the details.</p><p>I recommend creating a document that articulates all of this precisely, though you can also do this verbally.</p><h3><em><strong>What do you want to achieve?</strong></em> </h3><p>One-sentence<em> </em>should be enough to describe this. If you need more, you probably don&#8217;t have the necessary clarity of thought.</p><h3><em><strong>Why do you want to achieve this?</strong></em> </h3><p>While &#8220;because I want to&#8221; might be fine <em>for you</em>, it has to be understandable and <em>acceptable</em> to your <em>team.</em> The <em>Why?</em> matters a lot because it also shapes decisions.</p><p><em>&#8220;Because it&#8217;s a great side market with potential for 10x growth 5 years from now&#8221;</em> causes the team to make very different decisions than <em>&#8220;Because it&#8217;s an existential crisis for the company if we don&#8217;t get this done.&#8221;</em></p><h3><em><strong>Under what constraints?</strong></em></h3><ul><li><p><strong>Time</strong> - Is there a deadline or schedule?</p></li><li><p><strong>Money</strong> - Is there a cost limit, or alternatively - a minimum investment?</p></li><li><p><strong>Effort -</strong> Is this a sole focus, or one of several projects? Where does it fall in prioritization?</p></li><li><p><strong>Quality -</strong> Is there a desire to make it great, or is it a &#8216;get it out the door&#8217; to get speed to market?</p></li><li><p><strong>Scope - </strong>Is there need to be comprehensive solution, or would an MVP be acceptable?</p></li></ul><p>Explain why each tradeoff is what it is. Why is the deadline there? Is it for alignment with GTM, something required by a customer, a made up number? Why do we want to invest this much money in it, and is there wiggle room?</p><h3><em><strong>What do you NOT want to achieve?</strong></em></h3><p>This is one a lot of leaders forget, which leads to an accrual of alignment failures during execution. People need to know what <em>not</em> to do and what <em>not</em> to worry about.</p><p>If you have a team full of high-initiative people, they may, in their efforts to be pro-active, go down a completely different path towards a completely different destination than you actually need. </p><p>It&#8217;s a common source of scope-creep. You need to give people boundaries and <em>anti-goals</em>: things you definitely do not want to do or happen.</p><p>An anti-goal might be something like: </p><p>For example, if the goal given to a growth team is <em>&#8220;Increase signups by 5%&#8221;</em>, an accompanying anti-goal might be: <em>&#8220;We do NOT want to change the sequence of steps within the sign-up or user registration experience.&#8221;</em></p><h3><em><strong>A common trap</strong></em></h3><p>Just remember - e<em>xplaining</em> something is different than <em>justifying</em> something. </p><p>Explaining is providing reason behind decisions, which teams benefit from as they make decisions. Justifying is proving that your reasoning is legitimate for approval. </p><p>You&#8217;re the leader - the only person you have to justify your decisions to your is your boss. Your team has no approval authority.</p><p>Once explained, you should set the expectation that your team commits - even if they disagree. Make sure decision-rights are clear, otherwise you create opportunities for additional alignment problems through your attempts to align. It&#8217;s a common trap a lot of leaders fall into that creates execution friction later on.</p><div><hr></div><h1><strong>Empower - Meeting team needs</strong></h1><p>Once your team understands what they need to do, under what constraints, and why, it&#8217;s now your job to <em>empower</em> them.</p><p>Empowerment is simple - conceptually:</p><ul><li><p>Give people the resources they need - money, time, focus, freedom, etc.</p></li><li><p>Give people the knowledge they need - clarification, expectation, etc.</p></li><li><p>Give people the capabilities they need - authority, skills, access, etc.</p></li><li><p>Give people boundaries - ie. emphasize what they <em>don&#8217;t need</em> and <em>won&#8217;t get</em></p></li></ul><p><strong>Give people the resources they need</strong> </p><p>This might look like authorizing and specifying a budget. It might mean deprioritizing other projects or work. It might mean getting stakeholders off their backs so they can focus.</p><p><strong>Give people the knowledge they need</strong></p><p>This might be providing a central place to find documentation like meeting notes, explainers, or links to other artifacts. </p><p>It at minimum means you&#8217;ve taken the alignment and written it down.</p><p><strong>Give people the capabilities they need</strong></p><p>Do they need access to a SaaS tool? Get them access. Do they need a connection with another team? Do the intro. Do they need borrowed authority to make decisions in a space? Connect the stakeholders and tell them who the deciders are. Do this <em>ahead of time</em> so that it doesn&#8217;t create wait time<em> </em>and delays during execution.</p><p><strong>Give people boundaries</strong></p><p>Once again - tell people what they won&#8217;t get. If they ask for a tool and you aren&#8217;t going to give it to them, don&#8217;t tell them &#8220;let me check&#8221;, tell them &#8220;You aren&#8217;t going to get that tool for this project.&#8221; It helps avoid wasted time from the team pursuing pathways that lead to dead-ends.</p><div><hr></div><h1><strong>Execute - Letting your team work</strong></h1><p>After Align and Empower, it&#8217;s your time for you to <em>step back.</em></p><ul><li><p>You&#8217;ve aligned and provided clarity, including expectations of behavior</p></li><li><p>You&#8217;ve empowered the team, providing them what they need</p></li></ul><p><strong>Step back. Let the team cook.</strong></p><p>Your active over-involvement here will likely <em>cause more issues</em> and misalign teams. They&#8217;ll read your interventions as reprioritization, changes to the boundaries and constraints, and it&#8217;ll create re-work, hesitancy, doubt, and sloppiness as implementations pivot back and forth.</p><p>To effectively let a team execute, you need to delegate. The rules of delegation are simple but difficult emotionally:</p><ul><li><p>Even the most highly competent team will take different paths to achieve the same result. You must judge the outcome and how it met the constraints, not the process by how it got there.</p></li></ul><ul><li><p>Over nit-picking on implementation that ultimately doesn&#8217;t change the outcome will reduce empowerment and alignment, completely stalling a project&#8217;s execution.</p></li><li><p>You must be available and responsive and provide direction, but not controlling.</p></li></ul><p>These are hard things to do. You&#8217;ll see the team do things that you feel are a waste of time, or are not how you would do it. You, as the leader, need to step back and let them maneuver within the boundaries you have provided.</p><p>The only exception to this - key efforts during wartime mode, where the <em>how</em> matters as much as the <em>what</em>. In that case, you should have already set the expectation <em>during alignment</em> so the team is operating in the right posture and you retain direct control.</p><div><hr></div><h1><strong>Keeping a close eye</strong></h1><p>If you&#8217;re working in an organization, chances are you can&#8217;t just leave teams alone for months at a time hoping they are doing their work. You have people to report to, other efforts to coordinate, risks to manage and mitigate, interventions to perform.</p><p>Once the team executes - you need to check their progress.</p><p>This is the beauty of the Align, Empower, Execute <em>cycle</em>: <em><strong>we&#8217;re back to Align!</strong></em></p><h2>Touchpoints</h2><p>How? By establishing supervision touch-points. These are moments you bake in ahead of time where you can ensure that the work is being done in the manner it needs to be done, help address any uncertainties that have arisen, or respond and react to new discoveries.</p><p>Depending on the effort or its importance or its rate of change your supervision touch-points might range anywhere from monthly to hourly in extreme cases.</p><p>While I don&#8217;t recommend hourly except for crisis-related efforts, weekly is a good place to start - it&#8217;s enough time for work to get done but also enough time where something may have changed about the environment or work.</p><p>How frequently you have your touch-points is an entire science / art all on its own I&#8217;ve written about before - <a href="https://blog.jgefroh.com/p/on-cultivating-agility-leveraging">tempo</a>.</p><h2>Milestones</h2><p>For more autonomous, experienced teams, you can switch from a time-based tempo to a Milestone-based tempo.</p><p>Instead of checking in and aligning on a set frequency, check in and align according to milestones. These might be specific project phases (eg. RFC, Beta Release, GTM) or key dates (eg. 2 weeks post-start, project mid-point).</p><p>This gives you the ability to track to the granularity you need without requiring wasted alignment effort.</p><p>Just note - you really need a pro-active, autonomous team for this approach to work. If a team spins its wheels and never gets to Beta Release, you run the risk of introducing wasted time or even a complete project failure if you don&#8217;t have enough time to get the project back on track. Choose your milestones carefully.</p><p>Milestones might look like phase gates:</p><ul><li><p>When the team starts discovery</p></li><li><p>When the team develops an execution plan</p></li><li><p>When the team starts implementation in earnest</p></li><li><p>When the team has a working prototype</p></li><li><p>When the team has a functional end-to-end flow</p></li><li><p>When the team is ready for testing</p></li><li><p>When the team is ready for GTM</p></li></ul><p>or they might look like deliverables:</p><ul><li><p>When the team delivers the MVP</p></li><li><p>When the team delivers the Search feature</p></li><li><p>When the team delivers the Filter feature</p></li></ul><p>or some combination - the milestones are theoretically infinite - you can have extreme granularity or high levels of abstraction.</p><div><hr></div><h1><strong>Optimizing the cycle</strong></h1><p>Alignment, Empowerment, and Execution isn&#8217;t just a single, linear path. It&#8217;s a cycle. You Align, Empower, Execute, Align, Empower, Execute, Align, Empower, Execute until the project is done.</p><p>The key here is optimizing for the entire cycle.</p><p>Here&#8217;s a very difficult truth: the only <em>value creation</em> that occurs here is <em>execution</em>. Ideas are endless, it&#8217;s what happens with those ideas that turns it into reality that matters.</p><p>The trap is that many leaders attempt to achieve the above by ignoring Alignment and Empowerment and focusing on Execution, which paradoxically reduces time spent in Execution dramatically due to the confusion and chaos it creates. It breaks the cycle, leading to extra effort to align and empower and less time spent on executing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yaXO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yaXO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png 424w, https://substackcdn.com/image/fetch/$s_!yaXO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png 848w, https://substackcdn.com/image/fetch/$s_!yaXO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png 1272w, https://substackcdn.com/image/fetch/$s_!yaXO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yaXO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png" width="1456" height="497" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:113124,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/197429309?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yaXO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png 424w, https://substackcdn.com/image/fetch/$s_!yaXO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png 848w, https://substackcdn.com/image/fetch/$s_!yaXO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png 1272w, https://substackcdn.com/image/fetch/$s_!yaXO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a0c01b-7f56-4955-80b0-8de55dc98a0b_2322x792.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A broke AEE cycle spends most of its time aligning unpredictably and least time on executing</figcaption></figure></div><p>If you&#8217;re leading a team, you actually want to have AEE cycles where you spend as minimal amount of time and effort necessary in Alignment and Empowerment and maximize your team in Execution, but to achieve that - you have to effectively Align and Empower.</p><h3>Spend more to spend less</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dI7u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dI7u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png 424w, https://substackcdn.com/image/fetch/$s_!dI7u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png 848w, https://substackcdn.com/image/fetch/$s_!dI7u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png 1272w, https://substackcdn.com/image/fetch/$s_!dI7u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dI7u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png" width="1456" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93409,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/197429309?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dI7u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png 424w, https://substackcdn.com/image/fetch/$s_!dI7u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png 848w, https://substackcdn.com/image/fetch/$s_!dI7u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png 1272w, https://substackcdn.com/image/fetch/$s_!dI7u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2aa45f1-915b-4a76-a34a-1c1455a8fd1d_2230x784.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Effective upfront alignment reduces future alignment needs and increases relative time spent on Execution.</figcaption></figure></div><p>Shortening the alignment cycle is your primary goal, and you do that by <em>focusing on the alignment cycle</em>. Yes, it&#8217;s a paradox. To spend <strong>less time on alignment</strong>, you must spend <strong>more time</strong> <strong>on alignment.</strong></p><p>The better you align initially and maintain that alignment, the less time you have to spend outside of Execution. The more Empowerment you provide the team, the less you have to spend struggling with Execution friction caused by a lack of Empowerment.</p><p>An hour spent on alignment upfront will literally save dozens of hours of waste in Execution. Getting your team what they need up front will save time during execution waiting for the things they need or working around it.</p><h3>Are you over-aligning?</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y7Gk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y7Gk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png 424w, https://substackcdn.com/image/fetch/$s_!Y7Gk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png 848w, https://substackcdn.com/image/fetch/$s_!Y7Gk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png 1272w, https://substackcdn.com/image/fetch/$s_!Y7Gk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y7Gk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png" width="1456" height="168" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:168,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33881,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/197429309?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Y7Gk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png 424w, https://substackcdn.com/image/fetch/$s_!Y7Gk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png 848w, https://substackcdn.com/image/fetch/$s_!Y7Gk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png 1272w, https://substackcdn.com/image/fetch/$s_!Y7Gk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d23662-a3be-4f85-8bbb-13a2755b519e_2282x264.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">If most of your time is spent in <em>alignment every cycle</em>, there&#8217;s a problem you should fix.</figcaption></figure></div><p>Weekly multi-hour meetings. Multiple daily check-ins. There are symptoms of an under-aligned team practicing alignment theater. You might need it for more complex, rapid change endeavors, but a single team or initiative under no duress should not require more than 30m a week to align on.</p><p>These are moments where you should step in - is there clarity missing? Is there ritualistic behavior that&#8217;s not leading to better execution? Don&#8217;t just leave teams sleepwalking - step in and intervene: cut out meetings, facilitate the outcomes yourself, adjust the process.</p><h2>A useful tool - The Weekly Alignment</h2><p>The weekly alignment is a very useful tool <em>for team-level leaders </em>to manage the AEE Cycle within their team without over-aligning. At the beginning of every week, share with your team and walk through a document that outlines:</p><ul><li><p><strong>Goal - </strong>the clear, 1-sentence goal the team is moving towards</p></li><li><p><strong>Anti-goal </strong>- any outcomes the team <em>doesn&#8217;t</em> want to achieve</p></li><li><p><strong>Current context - </strong>any specific things for that week that might impact the work</p></li><li><p><strong>End state of this week - </strong>what a successful week would look like</p></li></ul><p>At the team level, this can be very granular. For example:</p><blockquote><p><strong>Weekly Alignment - 10/30</strong></p><p><strong>Goal</strong></p><ul><li><p>Complete the fundraising &#8216;add a tip&#8217; feature by the 11/30 marketing deadline.</p></li></ul><p><strong>Anti-goals</strong></p><ul><li><p>Lose the trust of users by miscalculating tips or lacking transparency</p></li><li><p>Burn out the team through overwork or unreasonable expectations</p></li><li><p>Launch without coordination with the GTM team</p></li></ul><p><strong>Current context</strong></p><ul><li><p>Brent is going on vacation for 2 weeks starting 10/14.</p></li><li><p>Consumer-facing design conceptual mocks have been approved by leadership, but details and workflows for admin side not yet completed.</p></li></ul><p><strong>End state of this week:</strong></p><ul><li><p>Have completed conceptual designs of Admin workflows by Thursday.</p></li><li><p>Have a recording of the MVP of the Consumer experience usable by internal testers by Friday.</p><ul><li><p>This requires a PR built, reviewed, and deployed by Thursday EOD to Staging.</p></li></ul></li><li><p>Have a shared marketing calendar for the Add a Tip GTM events available to everyone by Friday.</p></li></ul></blockquote><p>Combined with an asynchronous daily update, you can get a pulse without putting in over-bearing ritualistic behaviors. Better yet, this structure can be adapted to support higher-level efforts or lower frequency touchpoints.</p><div><hr></div><p>Alignment is a key activity as a leader, but the purpose of it is not to align - the purpose of it is to <em>increase relative time spent in execution.</em></p><p>Understanding the cycle fundamentals and how to provide clarity is a key component of efficient, effective, aligned teams. </p><div><hr></div><p><em><a href="https://jgefroh.com/">Gefroh</a> is an engineering and product executive in Kirkland, Washington. He frequently writes about Leadership, Management, Operations, AI, and Product Engineering on <a href="https://blog.jgefroh.com/">his blog</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[Being Strategic - Think strategically in everyday work]]></title><description><![CDATA[Strategy isn&#8217;t just major company pivots. Some of the biggest strategic opportunities can be found in work you're already doing in the day-to-day moments.]]></description><link>https://blog.jgefroh.com/p/being-strategic-think-strategically</link><guid isPermaLink="false">https://blog.jgefroh.com/p/being-strategic-think-strategically</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Mon, 01 Jun 2026 15:00:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3Tmy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3Tmy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3Tmy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png 424w, https://substackcdn.com/image/fetch/$s_!3Tmy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png 848w, https://substackcdn.com/image/fetch/$s_!3Tmy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png 1272w, https://substackcdn.com/image/fetch/$s_!3Tmy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3Tmy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png" width="1456" height="485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:485,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1583188,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/197010477?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3Tmy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png 424w, https://substackcdn.com/image/fetch/$s_!3Tmy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png 848w, https://substackcdn.com/image/fetch/$s_!3Tmy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png 1272w, https://substackcdn.com/image/fetch/$s_!3Tmy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678e586c-92ba-44bd-a869-5e57b0a07a17_2172x724.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><strong>&#8220;You need to be more strategic&#8221;</strong></em></p><p>It&#8217;s feedback a lot of people receive as they try to move from middle management to the executive level. Yet, few can define what it actually means or entails.</p><p>Is it an innate talent, or some magic &#8220;X&#8221;-factor?</p><p>No. Being strategic can be taught and learned. It requires learning new ways of approaching problems, changing your mindset, and a bit of unlearning of the things that got us to where we are now. It requires picking up a few hard-skills and learning some very hard soft-skills.</p><p>Whether it&#8217;s analyzing problems, speaking the language of the business, or improving your bearing - the skills of being strategic can be taught.</p><div><hr></div><p><em>This article is part of my series<strong> <a href="https://blog.jgefroh.com/p/being-strategic">Being Strategic</a></strong>, a series of articles perfect for senior managers and directors who are attempting to move beyond operations and into executive-level strategy.</em></p><div><hr></div><h1>Strategy in the everyday</h1><p>As a director or manager, you may be waiting to be pulled into a &#8216;strategic conversation&#8217;. </p><p>That&#8217;s unlikely to happen. A senior leader isn&#8217;t thinking <em>&#8220;I&#8217;m going to pull this manager in to help them become strategic.&#8221; </em>They&#8217;re thinking <em>&#8220;This person thinks strategically so I&#8217;m going to pull them in to help me think through this&#8221;. </em></p><p>You have to be <strong>pro-active</strong> about being strategic before <strong>you&#8217;re trusted</strong> to be strategic. </p><p>Don&#8217;t lose hope though - any situation can be analyzed for its strategic implications. Strategy isn&#8217;t just major company pivots. Strategy is also in day-to-day moments and as a manager or director, there&#8217;s an advantage because there are so many day-to-day moments where the skill can be exercised.</p><p>Here&#8217;s a few real examples I&#8217;ve been through to illustrate.</p><div><hr></div><h2>The meeting derailment</h2><p><em>During a meeting, a Senior Product Manager gets asked a question by the data scientist - &#8220;did you validate that this isn&#8217;t a seasonal quirk?&#8221; Perfectly reasonable. She started rambling, talking over the data scientist with hints of aggression.</em></p><h2>The lens</h2><p><strong>The tactical lens</strong> - stabilize the moment:</p><ul><li><p><strong>Meeting facilitation - </strong>How do you get the meeting back on track?</p></li><li><p><strong>Cultural modeling - </strong>How do you ensure that observers of that meeting don&#8217;t view that as acceptable behavior?</p></li><li><p><strong>Corrective guidance - </strong>How do you ensure that the PM avoids a defensive reaction in the future for being asked a reasonable question?</p></li></ul><p><strong>The operational lens </strong>- diagnose if and why the system failed<strong>:</strong></p><ul><li><p><strong>Standards enforcement -</strong> why did the product manager ramble? Was it simply a communication issue, or did they actually not know? If not - why did a Senior Product Manager not know their own data? Is this a training opportunity?</p></li><li><p><strong>Consistency check - </strong>What other decisions are we making where we aren&#8217;t factoring in seasonality in our data assessments?</p></li><li><p><strong>Collaboration opportunity - </strong>Why did this happen during the meeting? Couldn&#8217;t it have happened before it was presented?</p></li></ul><p><strong>The strategic lens</strong> - evaluate the tradeoffs and determine if they are worth it<strong>:</strong></p><ul><li><p><strong>Decision tradeoffs</strong> - Are we making the right speed vs. rigor tradeoffs?<strong> </strong>Do we actually need or want data for this? For other things? Where&#8217;s the line, and what&#8217;s the impact of putting that line where it is?</p></li><li><p><strong>Center of authority - </strong>If data materially drives a decision, who should own decision-rights? The person closest to the data, or the person responsible for the product outcome? If data isn&#8217;t important, shouldn&#8217;t data be more of an advisory role? Who should own this decision and what tradeoffs are we stack ranking?</p></li><li><p><strong>Organizational capability - </strong>Do we want to drive more rigorous decision-making in this area as a de-facto standard, or is speed more important? What are our competitors doing? Is this a place where data moves the needle or does speed win out? Does it help us win, or does this just help us feel better about our losses?</p></li></ul><h2>What did I do? </h2><p>I stepped into the conversation to redirect the meeting. &#8220;We&#8217;ll circle back to the data. Let&#8217;s stick to the agenda for now.&#8221; That kept the meeting on track. </p><p>I didn&#8217;t chew out the product manager in the meeting for not knowing their numbers - that would&#8217;ve led to more defensiveness, not less. I did talk with the product manager <em>afterwards</em>, specifically noting how that reaction wasn&#8217;t conducive to achieving the outcome of the meeting.</p><p> I also asked the Data Scientist how they felt afterwards to ensure they knew their contribution was appreciated.It led to a whole conversation about their perception of a lack of rigor they&#8217;ve been sitting uncomfortably with.</p><p>In my following 1:1s with product managers, I specifically requested deeper attention put into analysis and partnership with our data team before public presentations on work. I increased spot checks on analysis work and actively commented gaps, redirecting to data.</p><p>You get what you inspect. Afterwards, the team as a whole started ensuring that seasonality was a factor in their analysis. There were still some misses, but the rigor increased across the board.</p><div><hr></div><h2>Cross-functional mis-fire</h2><p><em>A director of engineering posts an article to the company chat that is easily construed as villainizing and condemning a peer function, after a painful year of growing pains for that function. The director found it funny and enlightening, the function it villainized - not so much.</em></p><h2>The lens</h2><p><strong>The tactical lens</strong> - contain the immediate damage:</p><ul><li><p><strong>Protecting morale</strong> - How do you make sure the peer function still feels respected and appreciated for the progress they have made while at the same time not stifling legitimate critiques?</p></li><li><p><strong>Escalation control</strong> - How do you prevent this from rapidly turning into a public pile-on on a struggling function?</p></li><li><p><strong>Immediate repair</strong> - Does the director need to clarify, apologize, remove the post, or follow up directly with the affected function?</p></li></ul><p><strong>The operational lens</strong> - diagnose if and why the system failed:</p><ul><li><p><strong>Director judgment assessment</strong> - Why did the director not anticipate how the message would be received? Was this a one-off lapse in judgment, or a pattern in how they communicate?</p></li><li><p><strong>Leadership standards - </strong>Do our directors understand that their words carry organizational weight, or does that require renewed guidance? Are our leaders clear on what belongs in public channels vs. private discussions?</p></li><li><p><strong>Cross-functional health</strong> - Is this incident exposing existing tension between Engineering and the peer function? How wide-spread is it, and does this need a relationship reset or repair?</p></li></ul><p><strong>The strategic lens</strong> - re-evaluate the tradeoffs and standards:</p><ul><li><p><strong>Cultural interactions </strong>- Do we want functions to challenge each other publicly, privately, or through a more structured forum? What model creates the best outcomes given our culture? How sharp can an honest critique be before it becomes corrosive?</p></li><li><p><strong>Leadership bench depth</strong> - Is this director demonstrating the judgment required for increasing, broader influence, or is this a signal that they&#8217;re not suited? What does that imply for succession planning, promotion strategies, and future structural plans? Is this a sign of an underlying strength, and can it be directed productively?</p></li><li><p><strong>Functional expectations </strong>- Is the peer function actually improving at the rate it needs to, or does it require a reset? Are the expectations on the function from the top matching those of peers? What level of friction between functions is healthy?</p></li></ul><h2>What did I do?</h2><p>I messaged the director privately, asking them to reflect on how a peer function would perceive one of the leaders of another function publicly posting an article condemning that function. </p><p>While the director made some justifications, in the end they removed the post. I noted this as a potential improvement opportunity for the director as there were several other sporadic instances in the past - correctable, but not allowable at their level.</p><p>I had some follow-up conversations with a couple of members of the peer function who saw the post, hearing them out and ensuring there was no lingering concerns.</p><p>In my managerial 1:1s with my management reports, I ensured to re-emphasize the importance of communication tact.</p><p>I also worked more closely with the peer function to address its gaps and shortcomings.</p><p>Given the tremendous damage a lack of tact can cause and how important cross-functional collaboration was at our company, I held managers accountable to higher communication standard. Trust is not free.</p><div><hr></div><h2>Dysfunction function</h2><p><em>The product organization has not been able to turn customer insights into direction at a pace that the company requires. You&#8217;re the engineering leader and have been working on providing feedback, support but more and more the responsibilities are falling on you and other non-product people to keep the company running. The company needs its product organization to get back on track - they&#8217;ve been delayed and halted from improving the product for over a year now thanks to poor processes, analysis paralysis, and low hiring bar. Product continually asks for more time, but progress and change is stalled. You&#8217;ve been working closely with the new VP of Product, and she has some good ideas but seems to conflict with the CPO on how it should be implemented or communicated.  In the mean time, the product organization is blaming engineering for low quality and delivery speed, and market conditions for recent hits. The Engineering organization&#8217;s morale is at an all-time low and your own outcomes have started to suffer. The company&#8217;s largest spend has delivered nothing in a year.</em></p><h2>The lens</h2><p><strong>The tactical lens</strong> - stabilize execution and morale</p><ul><li><p><strong>Execution containment</strong> - What needs to happen immediately to keep critical company work moving without permanently informally absorbing Product&#8217;s responsibilities?</p></li><li><p><strong>Narrative control</strong> - How do you prevent Engineering from becoming the convenient explanation for Product&#8217;s misses while avoiding a public cross-functional blame war?</p></li><li><p><strong>Morale protection</strong> - How do you keep Engineering from disengaging when they believe they are being blamed for problems they did not create and asked to compensate for failures they do not own?</p></li></ul><p><strong>The operational lens</strong> - diagnose where the operating model is breaking</p><ul><li><p><strong>Ownership clarity</strong> - Which Product responsibilities are being absorbed by Engineering? Which of those need to be returned, reassigned, or explicitly redesigned, and can they without losing productivity?</p></li><li><p><strong>Leadership alignment</strong> - Where are the VP of Product and CPO misaligned? Does anyone else in leadership see a problem? What is their timetable for solving it?</p></li><li><p><strong>Systemic failures</strong> - Are the delays caused by poor process, weak talent, unclear authority, analysis paralysis, executive disagreement, or something else? Who is accountable for solving them, and what authority do they actually have?</p></li></ul><p><strong>The strategic len</strong>s - decide what the company can no longer afford to tolerate</p><ul><li><p><strong>Functional accountability</strong> - How long should the company continue absorbing Product dysfunction before resetting? What is the cost of waiting another quarter? If a reset is conducted, what does that look like structurally and who&#8217;s best suited to pick up the pieces? Does Engineering and Product have the right current responsibilities, and is there alignment in leadership?</p></li><li><p><strong>Company operating model</strong> - Should Engineering continue compensating for Product&#8217;s gaps to protect near-term outcomes? Can you fix the Product gaps if they are being compensated, or does it require the plate to drop?</p></li><li><p><strong>Strategic capacity</strong> - What company opportunities are being lost because Product cannot effectively develop and execute a coherent product strategy? Is the current Product organization actually capable of supporting the company, or has it become a constraint? What value is the Product organization delivering today, and what do they need to deliver by next year? Are they on track, and if not - what&#8217;s going to fix that?</p></li></ul><h2>What did I do?</h2><p>I kept the trains running. I ensured that the execution still continued and didn&#8217;t get stopped because of role boundaries. I coached our team on the importance of adaptability and initiative, promoting gap filling if it existed while ensuring we were deferring to our product peers - we were a startup, and sometimes we had to flex to get things done. We could make it easier for product partners by doing more of the heavy lift and proposing recommendations - at least in the short-term. I framed it as a growth opportunity and the way the industry was headed - engineers weren&#8217;t purely going to remain &#8216;tech&#8217;.</p><p>I worked as closely as I could in partnership with the Product leadership, noting issues, proposing solutions, and facilitating the implementation of their operational ideas to the extent I could without jeopardizing hard role boundaries. There was definitely a recognition there was a problem, but there was disagreement amongst the product leaders on the solution. I kept track of metrics and delivery, sharing with the product leaders so they could make better informed decisions.</p><p>Eventually, the organization reached a point where the cost-benefit of waiting for improvement no longer made sense. The product leaders departed, and I ultimately stepped in to redirect efforts - <a href="https://blog.jgefroh.com/p/war-stories-how-i-turned-around-a">but that&#8217;s a war story for another time.</a></p><div><hr></div><p>Situations are not &#8216;strategic&#8217; or &#8216;not strategic&#8217; by default. Moments and decisions can <em>become strategic</em> when you use them to change or reinforce direction. Every situation can be examined for signals and opportunities to influence future capabilities, manage organizational risks, improve systemic decisions, raise standards, or adjust other tradeoffs.</p><p>If you&#8217;re waiting to be invited into a room to &#8216;decide strategy&#8217;, you&#8217;ll never stop waiting. Strategy is all around you - you just need to use the right lens. </p><p>Get invited into the room by already <a href="https://blog.jgefroh.com/p/being-strategic">being strategic</a>.</p><div><hr></div><p><em><a href="https://jgefroh.com/">Gefroh</a> is the SVP of Product and Engineering at a technology startup in the health insurance domain. He writes extensively about Leadership, Strategy, and AI on his <a href="https://blog.jgefroh.com/">blog</a>.</em></p><p><em>Feel free to reach out and ask any questions!</em></p>]]></content:encoded></item><item><title><![CDATA[Engineering for Vibe Coders - Ask five basic questions to dramatically improve maintainability]]></title><description><![CDATA[Ask five simple questions with every change to avoid the inevitable, progress-destroying vibe-code sprawl.]]></description><link>https://blog.jgefroh.com/p/engineering-for-vibe-coders-ask-five</link><guid isPermaLink="false">https://blog.jgefroh.com/p/engineering-for-vibe-coders-ask-five</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Mon, 25 May 2026 15:01:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!naDc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!naDc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!naDc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!naDc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!naDc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!naDc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!naDc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1478554,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196482998?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!naDc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!naDc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!naDc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!naDc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0157640-94ce-48db-8d31-65cd24bf5be2_1774x887.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you&#8217;re vibe-coding, you&#8217;ve probably reached a point where the AI is just <em>terrible</em> at progressing: making tons of mistakes, creating bugs with every change. It really stalls your progress.</p><p>What if I told you that with some simple questions, you can <em>slow down getting to that point?</em></p><p>You don&#8217;t <em>need</em> to be an engineer to guide the AI (though, I&#8217;d recommend it). You can just ask the question and make sure the AI answers.</p><div><hr></div><p>The key questions:</p><ul><li><p>Why is this named the way it is?</p></li><li><p>Should this live here?</p></li><li><p>What if there&#8217;s more than one?</p></li><li><p>Is this the one place this &#8216;fact&#8217; exists?</p></li><li><p>Should this know about that?</p></li></ul><div><hr></div><h1><em><strong>Why is this named the way it is?</strong></em></h1><p>This is the <em>most important thing</em>.</p><ul><li><p>What is something called?</p></li><li><p>Why is it called that?</p></li></ul><p>The name of the file should impart what it does, scoped exactly to what it does. It should be consistent across the application and be both exactly precise and generic enough.</p><p>If you find yourself unable to describe what it does without using the word <em>&#8220;and&#8221;</em>, it probably does too much and should be in a separate file.</p><p>For example:</p><ul><li><p><em>Sidebar</em> - shows the sidebar navigation links and handles login state</p><ul><li><p>You probably need to move login state somewhere else.</p></li></ul></li><li><p><em>Sidebar - </em>shows the sidebar navigation for admins</p><ul><li><p>You probably need to name this <em>AdminSidebar</em> for precision.</p></li></ul></li><li><p><em>TransactionChart - </em>a<em> </em>bar chart</p><ul><li><p>You probably need to name this <em>BarChart </em>or at least <em>TransactionBarChart</em>.</p></li></ul></li><li><p><em>OverviewPage</em> - shows a set of charts and contains help navigation</p><ul><li><p>You probably need to move the help navigation into its own component</p></li></ul></li></ul><p>Naming is so critical that <em>I never allow the LLM to name things</em>. <strong>I always pick the name.</strong></p><p>Ask the LLM:</p><ul><li><p><em>Why did you name it that, and can you think of a more consistent / cohesive name?</em></p></li></ul><div><hr></div><h1><em><strong>What if there&#8217;s more than one?</strong></em></h1><p>Suppose you&#8217;re making a chart. You prompt your LLM:</p><p>&#8220;<em>make me a bar chart that shows transaction amounts&#8221;</em></p><p>Your LLM dutifully creates you a <strong>TransactionBarChart.js.</strong></p><p>This is a <em>use-case</em> tied to a specific <em>mechanism</em>: the use case of &#8216;transactions&#8217; tied to the mechanism of &#8216;show a bar chart&#8217;.</p><p>This is a key moment to ask:</p><ul><li><p>What if there&#8217;s more than one? </p></li><li><p>What if you want another bar chart in the future? </p></li></ul><p>This is a <em>signal</em> - you should <em>extract</em> the concept of a <em>bar chart</em> so that one file can serve <em>multiple use cases</em>.</p><p>Instead of having TransactionBarChart, UserCountBarChart, all with their own independent logic, you should have a BarChart that you pass in parameters to:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">&lt;BarChart title="User counts" data="{seriesLabels: ['Account A', 'Account B', 'Account C'], seriesData: [21,24,31]}" /&gt;
&lt;BarChart title="Payments" data="{seriesLabels: ['2024/01/01', '2024/01/02', '2024/01/03'], seriesData: [1000,2333,1284]}" /&gt;</code></pre></div><p>Pros:</p><ul><li><p>You reduce variability - if you fix a bug in BarChart or add a feature, it&#8217;s available for every place that BarChart is used.</p></li><li><p>You have a <em>consistent interface</em> that you can use for any bar chart - you (and the LLM) does not need to re-create it.</p></li><li><p>These are called <em>re-usable components</em>. The more you have, the easier it is to maintain your system.</p></li></ul><p>Prompt your LLM:</p><ul><li><p><em>&#8220;What if I need to have another of this in a different use case?&#8221;</em></p></li></ul><div><hr></div><h1><em><strong>Should this live here?</strong></em></h1><p>You want to achieve <em>cohesion</em> - files should be located <em>close to the things it works with</em>.</p><p>eg. a <code>PaymentBarChart</code> should show a chart for payments. It should live a folder called <code>/payments</code> so you can easily find it.</p><p>If you had a <code>BarChart</code>, it should live in a <code>/shared/charts </code>folder alongside <code>PieChart</code> and <code>LineChart</code>.</p><p>Ask the LLM:</p><ul><li><p><em>Why did you place this logic in this folder/file?</em></p></li></ul><div><hr></div><h1><em><strong>Is this the one place this &#8216;fact&#8217; exists?</strong></em></h1><p>A big cause of bugs is duplication of facts in a codebase - parts of the code that assert how something behaves, but in different places.</p><p>Suppose you had a &#8220;Delete note'&#8220; button on a NoteShowPage.js that contains the logic to call an endpoint to delete a note.</p><p>Let&#8217;s suppose you also add a &#8220;Delete note&#8221; button on NoteListPage.js that contains the logic to call an endpoint to delete a note.</p><p>These are two duplicative <em>sources of truth</em> for the front-end logic of deleting notes. What if the endpoint changes? What if you want to add a confirmation modal to delete a note? What if you add front-end visibility adjustments so only certain users can delete a note? Now, you might have a missed spot. Worse yet - LLMs are prone to repeating the back-end logic too! Now you have four duplications for the same exact logic.</p><p>It&#8217;s better to have a single &#8220;Delete note&#8221; button file (eg. DeleteNoteButton.js) that contains the logic, or at least a single &#8220;Delete note&#8221; service that makes a request to the server.</p><p>Ask the LLM:</p><ul><li><p><em>Is this the only place this kind of logic exists, and should it be centralized?</em></p></li></ul><div><hr></div><h1><em><strong>Should this know about that?</strong></em></h1><p>LLMs often optimize for getting the thing done, not for overall system maintainability. That means it takes shortcuts.</p><p>As a practical example - an LLM will tie your toilet water plumbing to your kitchen sink because it&#8217;s faster than creating a separate set of pipes. The end result - your toilet will flush and your sink will have water - but you probably want them separate.</p><p>Likewise, in code, there&#8217;s certain things that should just never interact or know about each other. You want to ensure that your code knows the <em>bare minimum</em> about any other code in the system.</p><p>If you have an Export record, you don&#8217;t want it knowing about Payment records - it&#8217;s irrelevant. If you have a BarChart, why should it know about Navigation?</p><p>The more you can carve out, the more maintainable your system will be.</p><p>Ask the LLM:</p><ul><li><p><em>Does this really need to be aware of that?</em></p></li></ul><div><hr></div><p>Just five questions will dramatically improve your vibe coding longevity. It&#8217;ll also help you sniff out the issues that your AI is creating, long before they start to block progress.</p>]]></content:encoded></item><item><title><![CDATA[Engineering Metrics for Beginners]]></title><description><![CDATA[Get an understanding of table-stakes engineering metrics.]]></description><link>https://blog.jgefroh.com/p/engineering-metrics-for-beginners</link><guid isPermaLink="false">https://blog.jgefroh.com/p/engineering-metrics-for-beginners</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Mon, 18 May 2026 15:02:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4b1Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4b1Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4b1Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png 424w, https://substackcdn.com/image/fetch/$s_!4b1Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png 848w, https://substackcdn.com/image/fetch/$s_!4b1Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png 1272w, https://substackcdn.com/image/fetch/$s_!4b1Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4b1Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png" width="1456" height="582" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:582,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1329815,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/154928956?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!4b1Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png 424w, https://substackcdn.com/image/fetch/$s_!4b1Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png 848w, https://substackcdn.com/image/fetch/$s_!4b1Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png 1272w, https://substackcdn.com/image/fetch/$s_!4b1Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48cc08b5-70a3-4608-8db8-a93034be4daf_1983x793.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I see far too much mis-use of metrics in the industry. From people using Story Points as a functional evaluation tool to lines of code as a productivity metric. Much of it is innocent mis-use by misinformed people who follow frameworks like Scrum or DORA without taking the additional steps of understanding their root principles. Others use it with a bit more of a unethical tilt to trick others.</p><p>If you&#8217;re an engineering leader, you owe it to your team to have a framework for the metrics you are tracking.</p><div><hr></div><h1><strong>Start with </strong><em><strong>why</strong></em></h1><p>The first thing to look at isn&#8217;t the metric itself, but <em>why you are looking at them.</em> It generally boils down to a few things:</p><ul><li><p>To follow a leadership or management directive</p></li><li><p>To inform a narrative or decision</p></li><li><p>To evaluate and judge</p></li><li><p>To satisfy a curiosity </p></li><li><p>To improve over time</p></li></ul><p>What metrics you look at and how you use them depends on why you&#8217;re looking at them.</p><p>If you&#8217;re following a leadership or management directive, you ought to follow the rules of your leadership first. Then, dig in to <em>why they are asking and how they are using them.</em> The reason is likely one of the below.</p><p>If you&#8217;re collecting metrics to inform a narrative or decision, first ask yourself - do the deciders actually care about the metrics? There&#8217;s a lot of lip service to &#8220;data-driven&#8221; decisions, but the fact is data doesn&#8217;t matter in many decisions at many companies. Don&#8217;t waste your time if the deciders don&#8217;t care - find out what they do care about and do that instead.</p><p>If you&#8217;re using them to evaluate and judge - you&#8217;re probably using metrics incorrectly. You can use them to inform decisions, but engineering is often highly dependent on context, and it&#8217;s quite inaccurate to judge an individual engineer or even a team&#8217;s performance purely using metrics.</p><p>If you&#8217;re just trying to satisfy a curiosity, I&#8217;d say <em>metrics are a waste of your time</em>. Only collect metrics if you&#8217;re actually intending on doing something with them - otherwise it&#8217;s just a waste of attention and busy-work from people collecting them. It&#8217;s nice to be able to say you have data backing up your decisions, but if the data wasn&#8217;t a true factor you&#8217;re just playing data-theater.</p><p>Finally, if you&#8217;re using metrics to inform improvements over time, then that&#8217;s pretty much exactly what you should be using metrics for - read on.</p><div><hr></div><h1><strong>What are you trying to improve?</strong></h1><p>Metrics indicate things - attributes about the thing they are measuring. If you&#8217;re an engineering leader, you <em>probably</em> care about the following:</p><ul><li><p>Delivery - speed, quality, quantity, efficiency, predictability</p></li><li><p>Service - uptime, quality</p></li><li><p>Capability  - resourcing needs, tech capability, team capability</p></li><li><p>People - happiness, growth, retention</p></li><li><p>Impact - operational cost</p></li></ul><p>If you&#8217;re trying to improve Delivery, you&#8217;ll look at a different set of metrics than if you were trying to improve Service. At some point, after the low-hanger are gone, metrics start becoming <em>tradeoffs</em> - improving one decreases the other. For example, you might increase speed, only to start suffering quality issues, or you might increase uptime only to suffer morale issues from longer on-calls.</p><p>Tradeoffs are real - and it&#8217;s your job to articulate them while creating new capabilities that reduce or remove the trade-offs.</p><div><hr></div><h1><strong>Where to begin with metrics?</strong></h1><p>The easiest things first:</p><ul><li><p>How healthy is your delivery pipeline?</p></li><li><p>How sustainable is your system operations?</p></li><li><p>How observable is your product?</p></li></ul><h2><strong>How healthy is your delivery pipeline?</strong></h2><p>The initial view of engineers is - they build things. To build things, you need to have a pipeline from Idea to Production. That pipeline has stages that ultimately can be measured, each with nuanced areas that can become bottlenecks.</p><p>A delivery pipeline should be able to <strong>sustainably</strong> take a code change to production.</p><p>Sustainably means:</p><ul><li><p>It can be repeated indefinitely.</p></li><li><p>It processes changes at the rate those changes are being made.</p></li><li><p>It completes successfully within an acceptable failure rate.</p></li></ul><p>The metrics that indicate the health of the delivery pipeline are:</p><ul><li><p>Deployment Frequency</p></li><li><p>Deploy Failure Rate</p></li><li><p>Change Volume Rate</p></li><li><p>Change Failure Rate</p></li><li><p>Cycle Time</p></li></ul><p><strong>Deployment Frequency</strong> is the number of deploys the team makes per day. </p><p><strong>Deploy Failure Rate</strong> is the number of deploys the team made that had an issue.</p><p><strong>Change Volume Rate</strong> is the number of changes delivered per deploy, on average - often a Pull Request.</p><p><strong>Change Failure Rate</strong> is the number of changes that had an issue (eg. defect).</p><p><strong>Cycle Time</strong> is the amount of time a change spent in an engineering phase, end-to-end.</p><p><strong>Balancing the metrics</strong></p><p>You might think &#8220;Oh, we should just work to increase deployment frequency and change volume rate&#8221; but that&#8217;s not necessarily the case. While higher numbers are better and generally indicate a healthier pipeline, they aren&#8217;t the goal.</p><p>The goal is <strong>sustainable delivery.</strong> Your pipeline should be able to deploy changes at the frequency and rate at which they are needed. That&#8217;s your target. You should aim to have a ceiling on Change Failure Rate and a floor on Deployment Frequency that is proportional to your Change Volume.</p><p>Put another way - you need to deploy changes as often and in as small increments as needed to deliver all your changes while within your target change failure rate. Any more and it&#8217;s waste. Any less and it&#8217;s a bottleneck.</p><p><strong>Indicators</strong></p><p>You&#8217;ll have a baseline. Most companies without metrics are <em>shocked</em> when they first calculate them and see change failure rates of 20%+. </p><p>Over time, you can use changes to the baseline as indicators of whether a particular process or change has helped or not. Implement a QA process? You can see how that affects your cycle time. Increase automated test coverage? See how your change failure rate is impacted.</p><p><strong>General rules of thumb</strong></p><p>Increase the number of deploys to reduce your change volume rate. The more deploys you do, the fewer changes you need per deployment, which also decreases your change failure rate and makes it easier to identify the source of issues due to the smaller batch size.</p><p>If your change failure rate significantly increases - slow down your deployment frequency and change volume. You need to fix the problem upstream.</p><p>Ensure you benefit from extra effort. Going from 3 deploys per day to 4 deploys per day may mean absolutely nothing if you only create 3 change units (eg. a Pull Request) per day. That extra deploy is actually meaningless. Whereas, going from 3 deploys to 4 per day means the difference between a bottlenecked process or smooth delivery if you create 4 changes per day.</p><p>Larger batch sizes have higher levels of risk. They&#8217;re harder to debug if there&#8217;s issues, they often have to roll back in a single unit, and it increases the monitoring surface area post-deploy.</p><p><em>How do you measure it? </em>Tools like Jellyfish are excellent for this, but you can also be scrappy about it. Use basic Github PR counts, or have an LLM write a script to count merges and cycle times from your git history. Create a simple webhook for deployments that stores the data in a table that your deployment script calls.</p><p><strong>Lines of code isn&#8217;t a delivery metric.</strong> Your most impactful engineers might write 10 lines of code. Your worst engineers might write 100,000. Lines of code mean nothing.</p><h2><strong>How sustainable are your system operations?</strong></h2><p><strong>Uptime</strong></p><p>In most cases, the goal is not 100% uptime. </p><ul><li><p>99% uptime is ~7 hours of monthly downtime.</p></li><li><p>99.9% uptime is is ~43 minutes of monthly downtime.</p></li><li><p>99.99% uptime is ~4 minutes of monthly downtime.</p></li><li><p>99.999% uptime is ~26 seconds of monthly downtime.</p></li></ul><p>If your application is used only in a specific region during the 9-5, then you can have a completely successful operations with abysmal uptime.</p><p>Time ranges of the downtime matter. 99% uptime can be sufficient as long as you have 100% uptime during business hours.</p><p>Securing that fifth 9 is actually quite difficult, requiring an exponential increases in cost through investments in system resilience - whether that&#8217;s additional availability zones, replicas, failovers, etc. For many companies, that fifth nine is <em>not worth it</em>.</p><p><em>How do you measure it?</em> Set up a tool like Pingdom - just a few bucks a month. Point it at your system, make it run once a minute.</p><p><strong>Mean Time to Restore</strong></p><p>A lot of leaders optimize for <em>not having incidents</em>, but it&#8217;s more effective to optimize for <em>fast recovery from incidents</em>. </p><p>Not having incidents can ultimately be luck and over-caution: incidents are actually <em>fine</em> for many business cases, provided they don&#8217;t cause lasting damage. The cost of having no incidents can outweigh the benefit (unless you&#8217;re working on mission-critical or life-critical projects).</p><p>Your time to restore is dependent on:</p><ul><li><p>How fast you detect an issue</p></li><li><p>How fast your team or systems responds</p></li><li><p>How fast that response can restore service</p></li></ul><p>These are impacted by:</p><ul><li><p>Your level of observability and alerting</p></li><li><p>Your level of standard practice and process</p></li><li><p>Your level of team education and training</p></li><li><p>Your level of technical controls and capabilities</p></li></ul><p>Your goal as an engineering leader should be:</p><ul><li><p>Quickly detect an incident is occurring using automations, and not people.</p></li><li><p>Have robust damage mitigation (eg. backups, staged releases) and <em>rollback levers </em>(eg. feature flags).</p></li><li><p>Educate your team on incident response, including playbooks, runbooks, and tools.</p></li></ul><p><em>How do you measure it? Ensure every single incident has a postmortem report written that has exact timestamps of incident start and resolution. Then, add the numbers up. Categorize the incidents - outage, workflow breaks, data loss, etc. A manual process can go a long way.</em></p><h2><strong>How observable is your product?</strong></h2><p>If you&#8217;re company makes money through a business event, you need to<em> track that business event.</em> For example, if you&#8217;re an eCommerce company, your event might be a <strong>Sale of an Item</strong>.</p><p>You should be able to tell, in real-time:</p><ul><li><p>How many of those business events have occurred in the past minutes, hours, days, and weeks.</p></li><li><p>How that trend has changed over a period of time, including the past 5 minutes.</p></li></ul><p>From there, you can add properties to those events to identify more granular segments, such as:</p><ul><li><p>What specific user types are performing those events</p></li><li><p>Where are those users located</p></li><li><p>How valuable are those events over time</p></li></ul><p>This doesn&#8217;t have to be complicated. You can attach a product analytics tool, you can write a record into your database, or you can log it an create a dashboard off of your log stream.</p><p>From there, you can then monitor user interaction events - clicks, views, etc. to see what specific funnels are performing well, etc. You can add events for user signups, acquisition, churn - all things you can track day-to-day to get a heartbeat for your product.</p><p>Ultimately, the important part is to know it&#8217;s happening and watch it for changes. If your success rate suddenly drops - that&#8217;s an incident you should look into. You system might be running fine, but there&#8217;s an outcome issue that needs to be resolved.</p><div><hr></div><h1><strong>Moving forward</strong></h1><p>Once you have the basics, you can start tracking other important metrics:</p><ul><li><p>Team morale - you can use surveys, retention rate, etc.</p></li><li><p>Costs - $ spent on vendors, headcount, etc.</p></li></ul><p>Just remember: metrics are indicators. They tell you something has happened, but not <em>why it happened or whether it&#8217;s good or bad</em>. The goal is not &#8216;numbers go up&#8217; - the goal is &#8216;understand what has changed, and why&#8217;.</p><p>It might be a perfectly acceptable outcome to see a doubling in change failure if it results in a tripling in delivery throughput. It might be perfectly reasonable to see a halving on delivery throughput if half the team was at an offsite.</p><p>Don&#8217;t judge purely off of numbers - use them to indicate.</p>]]></content:encoded></item><item><title><![CDATA[Subtle Behaviors That Disqualify You From Leadership]]></title><description><![CDATA[Leadership readiness is often lost through small behaviors that reveal poor judgment, low trust, or weak organizational awareness.]]></description><link>https://blog.jgefroh.com/p/subtle-behaviors-that-disqualify</link><guid isPermaLink="false">https://blog.jgefroh.com/p/subtle-behaviors-that-disqualify</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Mon, 11 May 2026 15:01:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WzS_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WzS_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WzS_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!WzS_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!WzS_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!WzS_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WzS_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2441197,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/168231094?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WzS_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!WzS_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!WzS_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!WzS_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9584049f-fb2f-43ce-b3fc-86728d83432d_1774x887.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m constantly looking for potential leaders in an organization to uplift and empower. It helps the company, and selfishly it make my job 100x easier to have effective leaders running the show.</p><p>I find, however, that while many people want to be leaders, they often disqualify themselves or raise flags at their suitability. These issues are subtle - people often do not realize they are sending the signal, but once the signal is seen clearly, it can be hard to unsee. Leadership requires trust, and many of these behaviors quietly erode that trust before a person ever gets the title.</p><p>It&#8217;s correctable, but often need someone else to point out.</p><div><hr></div><h1><strong>Mistakes that impact perception</strong></h1><p>Some people demonstrate a lack of self-awareness that damages perception, even if they are technically competent.</p><h3><strong>Not knowing how to follow before positioning to lead</strong></h3><p>Some people focus so much on obtaining leadership authority while they simultaneously failing to effectively follow instructions or align with the organization. </p><p>They resist instructions, constantly derail efforts by following their own ideas, causing disruptions. In the same moment as I&#8217;m cleaning up their messes, they ask for authority, title, decision-making rights.</p><p><em>Good leaders know how to follow orders.</em></p><h3><strong>Being overly compensation-focused</strong></h3><p>Everyone needs to eat, but some people exude a view of leadership that boils down to &#8220;you get paid more&#8221;. They forget the other half of that - if a company is paying more, what are you doing more to help the company succeed?</p><p>Folks who focus exclusively or primarily on the benefits to themselves unknowingly disqualify themselves.</p><p>Compensation is important, and you should be paid fairly for your contributions, but if all you can talk about is your compensation without any idea of what you&#8217;re doing to earn it, why would a company ever give you the responsibility of leadership?</p><p><em>Good leaders find leverage</em>.</p><h3><strong>Demanding authority when you can&#8217;t wield influence</strong></h3><p>People often state &#8220;need the title&#8221; to get things done. Reality check - if you don&#8217;t have the influence, your authority doesn&#8217;t matter: people will just leave eventually.</p><p>Instead, you need to demonstrate you can be effective without authority. It&#8217;s only then when authority is best leveraged - when you don&#8217;t need it at all.</p><p><em>Good leaders can be effective without authority.</em></p><h3><strong>Expecting a transition to leadership to pull you out of the weeds</strong></h3><p>Some people gleefully look forward to the day that going to leadership means they don&#8217;t have to deal with what they consider the &#8220;grunt work&#8221;. They expect they can just focus entirely on &#8220;big picture&#8221; stuff, not realizing that the big picture is comprised of many details that have impacts in sometimes very nuanced ways. </p><p>These folks tend to become the most disconnected leaders who can&#8217;t do anything without an army of support staff around them. </p><p><em>Good leaders should be able to roll up their sleeves to get the job done.</em></p><h3><strong>Not thinking company-first</strong></h3><p>If I&#8217;m looking for leadership, I look for people who make decisions in the best interest of the company. Yet, many people seem to err on the side of making their own lives easier, making locally optimal decisions instead of systemically effective ones.</p><p>A leader that makes their lives easier is a leader that will:</p><ul><li><p>tolerate underperformance because they want to preserve the relationship</p></li><li><p>take shortcuts to make their job easier instead of doing the most effective thing</p></li><li><p>optimize for looking good instead of owning and fixing problems</p></li></ul><p>In short - effectively someone you wouldn&#8217;t want to have in a leadership position.</p><p><em>Good leaders think about the broader outcome.</em></p><div><hr></div><h1>Mistakes that indicate lack of awareness of organizational dynamics</h1><h3>Not keeping your own boss in the loop</h3><p>Fun fact - your boss hates surprises. </p><p>If something happens if your organization that they find out from someone else, it makes them look like out-of-touch at best and at worst makes the company think the organization they are responsible for is dysfunctional.</p><p>If you&#8217;re constantly forgetting to loop in your boss, you&#8217;re demonstrating unsuitability for leadership by not respecting the extreme coordination required at the leadership level for the organization to be effective, where the stakes are even higher. </p><p>If you can&#8217;t keep people updated on the small-scale stuff you&#8217;re responsible for now, imagine if you forgot to tell the CEO of something important worth tens of millions!</p><p><em>Good leaders keep others in the loop.</em></p><h3>Signaling you can&#8217;t work with others</h3><p>If you&#8217;re in an organization, chances are you&#8217;re <em>working with other people</em>. Other people may irritate you, annoy you, make you want to tear your hair out, but you <em>still have to work with them successfully</em>.</p><p>The more and more people you signal that you can&#8217;t work with, the less portability there is in personnel decisions and the less opportunity you can get. </p><p>I&#8217;ve had to make decisions in the past of not pairing two people together because they couldn&#8217;t work with each other. It was fine for the company, but removed an opportunity from them both.</p><p>At the leadership level - the effect is even more pronounced - I&#8217;m not going to promote anyone to the head of a function if they can&#8217;t put their ego aside to work effectively with half the org.</p><p><em>Good leaders can swallow their pride and work with anyone.</em></p><h3>Putting your foot in your mouth</h3><p>Some people repeatedly say and make public statements that make my mind boggle at the lack of good judgement. </p><p>I&#8217;ve had people insult entire functions, question the competency of others, and even highlight their unwillingness to work with the entire company. Worse yet,  these remarks are rarely explicit - they&#8217;re just poorly phrased or even unintended.</p><p>Things like:</p><ul><li><p><em><strong>&#8220;Yeah I guess I can do your job&#8221;</strong></em> when provided an opportunity to do something above their scope. Guess who never got another stretch assignment after that?</p></li><li><p><em><strong>&#8220;We could probably replace CEOs with AIs&#8220;</strong></em> in a channel the CEO participates in regularly.</p></li><li><p><em><strong>&#8220;This is 101 level stuff&#8221; </strong></em>after a public presentation from a function on the work they did.</p></li><li><p><em><strong>&#8220;What if we got rid of all of the product people&#8221;</strong></em><strong> </strong>during a brainstorm filled with product people.</p></li></ul><p>Even if it&#8217;s all with good intentions, these moments diminish leadership suitability. </p><p>What you say matters a lot when you represent the company with every statement and everyone hangs off of every word you write.</p><p><em>Good leaders have tact.</em></p><div><hr></div><h3>Not having opinions.</h3><p> Leadership requires setting a direction and then figuring out how to get there. If you have no opinions on direction, and no opinions on how to get there, then why are you a in a leadership role? That&#8217;s not leadership, that&#8217;s just coordination. It&#8217;s much less of a hassle for the organization to get a project manager at that point.</p><p><em>Good leaders do more than just glue.</em></p><h3>Always having weak opinions.</h3><p>Being a leader requires having an opinion and conviction behind it, and defending it. </p><p>A lot of people vying for leadership start by sharing their opinions (which is good), but then they do themselves a disservice by being unable or unwilling to <em>defend</em> their opinion. </p><p>I can&#8217;t count the number of times I&#8217;ve heard an opinion from a report, only to have them back-track and change their mind as soon a I ask a simple questions about it to learn more - almost as if they were waiting for the chance to second-guess themselves.</p><p>If your conviction always crumbles like a biscuit at the first sign of opposition or interrogation, other leaders see that and have less faith in your opinions. </p><p>When you share an opinion, make a recommendation - you need to stand by it. Have evidence and conviction. You can and should change your mind as you learn context and information, but leadership requires you to be able to talk an idea through its paces without immediately changing your mind.</p><p><em>Good leaders have conviction.</em></p><h3>Always having strong opinions.</h3><p>The other extreme of this is always having strong opinions that aren&#8217;t open to challenge, discussion, or change.</p><p>The hardest leaders to work with are the leaders that just always have to have their way. Nobody wants to work with them. When you&#8217;re part of an executive team (emphasis on the team), you need to be able to work with people who are diametrically opposed to your ideas.</p><p>This requires to pick and choose what battles you fight and what areas to push for, all in service of making the company better. If everyone on the executive team does that, then you&#8217;re golden as a company. If not, the whole thing starts to fall apart.</p><p><em>Good leaders can compromise.</em></p><div><hr></div><h3>Creating issues for your boss</h3><p>We&#8217;ve all worked with people who lack tact. These folks throw fuel into fires, act like a &#8220;bull in a china shop&#8221; in communications and conversations, creating more problems as they try to address other ones.</p><p>If your boss has to bat cleanup and damage control for your actions all the time, it&#8217;s unlikely you&#8217;re going to end up on the leadership track. Some bosses have only a little patience, others have more, but everyone has a point where they will decide you&#8217;re not worth the trouble.</p><p><em>Good leaders solve more problems than they create.</em></p><h3>Not understand what a promotion is</h3><p>A promotion is either you performing at the level of your boss and supporting the organization in another vertical, or you replacing a slice of decision-making your boss previously owned that is now being entrusted to you.</p><p>The organization is demonstrating it trusts you to make decisions and own it. The organization - including your boss.</p><p>You have to realize it&#8217;s really<em> difficult</em> for your boss to give up their authority to you to give you an opportunity. </p><ul><li><p>One - they are still accountable for the results, no matter what you do. If you mess up, it&#8217;s on them, not you.</p></li><li><p>Two - they know you&#8217;re going to mess up at times and are willing to work to mitigate damage and fallout from your mess-ups. They&#8217;re taking on risk and investing in you to hopefully ensure the longer-term success of the company. </p></li></ul><p>It&#8217;s much easier for the boss to just remain the authority. When you get promoted, it&#8217;s your boss saying &#8220;you have demonstrated you can handle the basics of the job and can grow into the areas you need to grow in&#8221;. </p><ul><li><p>You don&#8217;t get to stop growing - you start the role with training wheels, but there&#8217;s an expectation the wheels come off</p></li><li><p>The work gets harder, not easier - don&#8217;t mistake becoming a leader as &#8220;I made it&#8221;: it&#8217;s a heavy responsibility that marks the start, not the end, of the journey.</p></li><li><p>You don&#8217;t get to demand the job without proving you can do it first - you have to have a track record.</p></li></ul><p><em>Good leaders prove themselves every day.</em></p><div><hr></div><p>These aren&#8217;t all of the things that make a good leader, but these are common, <em>easily addressable</em> issues that causes people to <em>filter out</em> people for leadership. Awareness is the first step to solving them!</p>]]></content:encoded></item><item><title><![CDATA[AI/LLMs for Engineering Teams - Getting started]]></title><description><![CDATA[A beginner's guide to getting started with introducing AI and LLM into your development team's workflows.]]></description><link>https://blog.jgefroh.com/p/aillms-for-engineering-teams-getting</link><guid isPermaLink="false">https://blog.jgefroh.com/p/aillms-for-engineering-teams-getting</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Fri, 08 May 2026 19:42:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FR2l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FR2l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FR2l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png 424w, https://substackcdn.com/image/fetch/$s_!FR2l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png 848w, https://substackcdn.com/image/fetch/$s_!FR2l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png 1272w, https://substackcdn.com/image/fetch/$s_!FR2l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FR2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png" width="1456" height="624" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:624,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2389393,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196923817?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FR2l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png 424w, https://substackcdn.com/image/fetch/$s_!FR2l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png 848w, https://substackcdn.com/image/fetch/$s_!FR2l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png 1272w, https://substackcdn.com/image/fetch/$s_!FR2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52ac06f5-0705-4724-bcf3-6b2de84fb908_1916x821.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>AIs/LLMs are a powerful tool for engineering, but it&#8217;s often difficult for an engineering team to &#8216;get started&#8217;, particularly if they aren&#8217;t already familiar with it.</p><p>Around late 2025, LLM coding reached a threshold of &#8216;consistently good enough&#8217;. With the latest models and harnesses, it actually became a high enough quality for the day-to-day work of a brownfield system rather than a finicky curiosity or a greenfield-only accelerator.</p><p>I wrote this guide to specifically to help engineering teams ramp up adoption over time in a safe, (relatively) secure manner. This is not a guide for vibe coding - this is a guide for integrating AI into the day-to-day work of teams working on existing systems. It&#8217;s about engineering operations, process, and the work rather than the output.</p><div><hr></div><h2><strong>Getting started</strong></h2><p>Get your team (or certain team members) set up with Claude, Cursor, or Codex on a team or enterprise account. Two key things:</p><ul><li><p>Opt out of using your company data for training</p></li><li><p>Make sure it&#8217;s on a work enterprise account, not a personal account</p></li></ul><p>I recommend Cursor for a team - it&#8217;s easy to set up, lets you switch models, and has an IDE as well as CLI capability. It&#8217;s harness is quite decent. With the rate models are getting better, having a bit of flexibility is quite useful.</p><p>At the same time - you really can&#8217;t go wrong with any of the above if you&#8217;re just starting out.</p><p><strong>Concepts</strong></p><ul><li><p><strong>AI/LLM Vendor</strong> - eg. Claude, ChatGPT - they create AI models</p></li><li><p><strong>Agent Model</strong> - the specific model version provided by the vendor (eg. Opus 4.6)</p></li><li><p><strong>Harness</strong> - the program/interface that the model uses to interact with the user (eg. CLI, UI, IDE)</p></li><li><p><strong>Thinking vs. Not Thinking</strong> - Different models are intended for different use cases for different costs. Thinking means it takes longer / costs more but comes up with better answers.</p><ul><li><p>If you&#8217;re in doubt, start with Opus 4.6 from Anthropic.</p></li></ul></li><li><p><strong>Reseller</strong> - vendor that provides access to models for different purposes, they may also provide a different harness</p><ul><li><p>eg. Cursor (IDE + CLI), AWS Bedrock (hosting + infra)</p></li></ul></li></ul><div><hr></div><h2><strong>The first use cases to address</strong></h2><ul><li><p><strong>Use AI to Explore Code</strong></p></li><li><p><strong>Use AI to Review Code</strong></p></li><li><p><strong>Use AI to Write Code</strong></p></li></ul><div><hr></div><h2><strong>Use AI to Explore Code</strong></h2><p>Engineers often ask a lot of questions about the code-base:</p><ul><li><p><em>How does feature flagging work?</em></p></li><li><p><em>Where is the oAuth token for the account stored ?</em></p></li><li><p><em>Do we already have a rate limiting library?</em></p></li><li><p><em>Can I get an explaination how background requests work?</em></p></li></ul><h4><strong>To begin</strong></h4><p>Train your team to ask these questions to the LLM. With codebase access, the LLM is actually <em>quite good</em> and finding the answer or at least pointing the developer in the right direction. This will help reduce the amount of random interruptions and wait time for questions and help promote self-directed learning.</p><h4><strong>To advance</strong></h4><p>Connect the LLM into MCP / data sources like Confluence or Notion so it can search not just the code but <em>context around the code</em> - product requirements, meeting notes, definitions, specifications, etc.</p><p>Ask the LLM to then explore these:</p><ul><li><p>How does feature flagging work, <em>and why did we make this way?</em></p></li><li><p>Where is the oAuth token for the account stored, and <em>what is the history of security reviews for it</em>?</p></li><li><p>Do we already have a rate limiting library, <em>and did we previously explore other options</em>?</p></li><li><p>Can I get an explanation how background requests work, <em>and have there been any incidents related to it</em>?</p></li></ul><p>This will help provide much better answers - just don&#8217;t forget to also add: <em> Explore Confluence if needed. This enables you to go from <strong>What?</strong> to <strong>Why?</strong></em> questions.</p><div><hr></div><h2><strong>Use AI to Review Code</strong></h2><h4><strong>To begin</strong></h4><p>Create and share a <strong>Skill</strong> to review code. A Skill is a repeatable Prompt that engineers can call for the LLM to follow.</p><p>Skills are super easy to make - you can actually just ask the LLM to make it for you.</p><ul><li><p><em>Write me a skill to review code. The skill should be triggered when I enter /review-code and review the currently modified code (check via git) for these factors: correctness, security, performance issues. Output a summary and recommendations.</em></p></li></ul><p>Review it, add your own thoughts and notes, and try it out. Tailor it to your needs - conciseness, other -ilities, etc.</p><p>It should generate a file that you can then share with your team - the vendor dashboard usually has the ability to add team-wide skill commands available to everyone.</p><p>Then, teach your team to run it on their code.</p><h4><strong>To advance</strong></h4><p>Getting everyone to do something all the time is difficult. Making it automatic is even better. Some tools like Graphite or Cursor have the ability to have skills automatically run when a Pull Request is created and to add a comment.</p><p>Even if your tool doesn&#8217;t - ask the LLM to make YOU a script that you can run to run the review Skill against every new PR in a repository:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Write me a bash script that runs /review-code against every new PR in the repository `&lt;ORGANIZATION&gt;/&lt;REPOSITORY&gt;`.

For every new PR, it should launch a new agent with &lt;AGENT_LAUNCH_COMMAND&gt; using the model Opus 4.6 that reviews the code.

The agent should return its output, and the script should post that output as a comment to the PR.

If the PR already has a comment from the user `jgefroh`, that means it was reviewed already and should be skipped.

Make it check for new PRs every hour from 9am to 5pm.

Technical notes:
* It can check and pull for PRs using the `gh` CLI tool.
* It can write comments using the `gh` CLI tool.
* It should create a new worktree in a peer folder when pulling the branch so that the current working tree is not affected.
* It should ONLY run against repositories in the Github organization `&lt;ORGANIZATION&gt;`.
* It should print out links to the PR comments at the end of every run.
* It should have a dry-run mode that outputs what it would have done without actually writing the PR comment to Github.</code></pre></div><p>Something like the above should produce a tweakable script that lets you then run it from your machine automatically on a schedule.</p><h4><strong>To excel</strong></h4><p>Once you have the LLM <em>infrastructure</em>, it&#8217;s a matter of having improving the agent&#8217;s actual prompt over time to make the reviews deeper and more valuable.</p><p>If it misses something: tweak the prompt. If it is overly-nitpicky: tweak the prompt. If you want a specific format: tweak the prompt. </p><p>Treat the review prompt almost like a Growth product.</p><p>I found it <em>very valuable</em> to ask the LLM to write me a quick script that pulls every single PR comment I ever wrote on the repository and extract review principles from it, and to update the review skill with those principles.</p><p>That enabled it to keep an eye on the things I like to keep an eye on:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Write me a bash script that uses the Github API (or `gh` cli) to pull every PR comment written by my user `jgefroh`.

It should put all of these in a file called comments.txt.

It must contain ALL PR comments - do not stop at just the most recent. Get ALL comments from all time.</code></pre></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">There is a file called comments.txt that contains PR comments I wrote in a repository.

Extract a set of PR Review Principles from it that I can use to enrich a PR review skill.</code></pre></div><p><strong>Potential gotchas:</strong></p><ul><li><p>Review the scripts LLMs produce like you would real production-bound code - I had a bug in mine where it accidentally reviewed a random PR in a random repository because the repository name was missing!</p></li><li><p>Having everything in one skill creates <em>shallowness</em>. It&#8217;s good for a broad summary, but don&#8217;t expect it to catch everything. There&#8217;s a section later for using AI for things where depth matters like security audits.</p></li></ul><div><hr></div><h2><strong>Use AI to Write Code</strong></h2><p>This is obviously the most written-about topic to death nowadays - when people say AI is going to take over engineering&#8217;s job, they are typically referring to this piece (nevermind the fact it&#8217;s like 10% of the actual work).</p><p>But, it&#8217;s actually <em>quite good</em> nowadays at writing code. Not perfect, but much faster and definitely better than starting from 0.</p><h4><strong>To begin</strong></h4><p>Take a ticket, paste it into your LLM, and ask the LLM to <em>create a plan</em> to implement it. Read the plan, tweak and adjust, and once you feel confident in it, ask it to implement.</p><p><em><strong>Read every single line of code it is writing. You are still responsible for the output.</strong></em></p><p>Tweak the result over time. Make sure to keep an eye on common AI gotchas:</p><ul><li><p>Placement and naming inconsistencies in file, folder, classes</p></li><li><p>Localized tweaks vs. using systematically available tools (eg. re-implementing feature flagging vs. using a library)</p></li><li><p>Lack of production, deployment, or migration considerations</p></li><li><p>Cross-cutting concern failures (eg. lack of authentication, authorization)</p></li><li><p>Incomplete work (it&#8217;ll tell you it&#8217;s done, but it&#8217;s not)</p></li></ul><p>Be sure you&#8217;re using a good thinking model vs. one of the fast ones.</p><h4><strong>To advance</strong></h4><p>Here&#8217;s where the expertise comes in. All of the weird above errors and gotchas? AI will repeat them over and over and over.</p><p>Truth is - it&#8217;s not automatic. Issues will occur and rework will be needed. Consider this a natural part of the process. When an issue occurs, there will be two paths:</p><ul><li><p>Fix the issue in the output and move on</p></li><li><p>Document the issue <em>in an agent prompt and re-run</em></p></li></ul><p>9/10 times, you should err on the side of fixing the prompt. Over time, this will lead to a natural decrease in the number of micro-corrections you have to make. </p><p>I do this by collecting the issues in a LLM-README.md placed in the codebase and instructing the LLM to always read it before doing any work. Your LLM-README.md should contain <em>exactly how you want it to make decisions</em> <em>around issues </em>it gets wrong:</p><ul><li><p>Does it use the wrong global variable to look up a common constant? Tell the LLM to use the right, specific one in the LLM-README.</p></li><li><p>Is scaling important in your context? Tell the LLM to always consider performance under load of 5000 RPS.</p></li><li><p>Should it using specific libraries or global subsystems you have? Tell the LLM the list and when it should use them.</p></li></ul><p>Over time, this will lead to a natural decrease in the number of micro-corrections you have to make. Your LLM-README.md is a guidance document that saves you the headaches of rework.</p><p><em>note: some tools already have a mechanism for this - eg. CLAUDE.md.</em></p><p><strong>Example:</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">LLM-README.md


# Reusable systems
We have the following domain-independent reusable subsystems that MUST be used when implementing any of the below functionality:

* Feature Flagging - /feature_flags
* Exporting - /exports
* User-level authorization - /authorization
* Rate limiting - /security/rate_limits

Do not re-create the above. Always use the available subsystems. Do not make modification to the above subsystems

# Tech stack
Our front-end is VueJS 3 with the Option API. Do not use the Composition API.

## Javascript Rules
We use `import`, not `requires`.

# Convention rules
All page components that are routable must be named with a suffix `-page.vue`. </code></pre></div><h4><strong>To excel</strong></h4><p>I&#8217;m not going to lie. You&#8217;ll need other resources to excel in this regard.</p><p>While I read about people using fleets of dozens of agents across kanban boards to create simultaneous features, or developing a team of self-correcting agents, I&#8217;ve not yet found how to make any of that work for my use cases. The outputs are too unreliable, or I find them shallow, or I just don&#8217;t have the attention span to manage more than 2 streams of real development work at a time.</p><p>If it works for them - great.  It just hasn&#8217;t for me so I can&#8217;t then turn around and tell you how to do that. I can only speak to what I&#8217;ve done and how it worked for me.</p><p>The one use case I did find useful was to have the AI read a pre-existing step-by-step auditing documents and iterate through it to create a set of automated end-to-end tests that emulate that process using Cypress. That worked out pretty well, but it also took the LLM a lot of trial and error and me stepping in to get it &#8216;unstuck&#8217; when it got stuck in various loops. Saved me time because I could do something else while it was doing it, but it was like a 4-5 hour process for a couple of end to end tests.</p><div><hr></div><h1>Other considerations</h1><h2><strong>Project AI/LLMs budget and cost for engineers</strong></h2><p>AI is typically billed as usage-based. It really depends on how much your team uses and adopts it, but at current prices, I&#8217;d estimate:</p><ul><li><p>Early adoption &lt; $50 / engineer, average - with a couple of spikes</p></li><li><p>Wide, consistent usage - ~$200 / engineer </p></li><li><p>AI-native usage - $1000+ / engineer</p></li></ul><p>Prices will differ based on usage, optimization. </p><p><strong>Don&#8217;t let the prices turn you off.</strong> You CAN get much higher ROI from initial input costs, and it&#8217;ll take a while, if at all, to get to AI-native usage if you&#8217;re reading this guide. You&#8217;ll likely end up closer to the $100 - $200 / engineer range by the time you get full, consistent usage adoption.</p><p>During adoption phase, you don&#8217;t really want anyone on the team to worry about costs unless money is super tight. What you want people to do is explore without anxiety over limits. You can teach optimization later.</p><p>A key note: AI prices are likely to increase. It&#8217;s heavily subsidized right now. I wouldn&#8217;t be surprised if it increases 10x in the future, but take advantage of low prices while you can. </p><h2><strong>Secure AI/LLMs for developer machines</strong></h2><p>AIs open up a massive pathway of potential attacks if used without guardrails. Ensure you and your team understand the potential consequences:</p><ul><li><p>Destructive actions - it can randomly delete things it has access to, including production databases and files</p></li><li><p>Malicious actors can convince it to do things like send your credentials to them or even download files and run random commands (prompt injection)</p></li></ul><p>The key thing to note from a developer security side is <strong>the Deadly Triad. </strong>If the LLM has all three simultaneously, it should be considered a fairly high risk environment for prompt injection:</p><ul><li><p>The LLM has access to send out communications</p></li><li><p>The LLM has access to user input</p></li><li><p>The LLM has access to sensitive information</p></li></ul><p>The problem, of course, is a developer environment usually has all 3 <em><strong>by default</strong></em>:</p><ul><li><p>Developer machines are connected to the internet and has access to CURL, DNS, and other tools, and usually on an elevated access account. [send out communications]</p></li><li><p>Developers often like to connect to ticket systems and error reporting (eg. Jira, Sentry) which has user input. [user input]</p></li><li><p>Developers have at minimum access to the codebase and local credentials, as well as potential production access [sensitive information]</p></li></ul><p>This makes securing a developer machine particularly tricky. While LLM vendors try their best to prevent these attacks, it&#8217;s still succeeding at a 1-8% rate depending on the study.</p><p>The easy go-to is to prohibit connection to systems with direct user input (much to the dismay of your team) as a first-line defense. That means no automatic ingestion of Sentry, Jira tickets, etc.</p><p>This isn&#8217;t fool-proof, but it at least decreases risk levels. If you have resources, you can also have a <em>separate AI-specific laptop</em> that has hard controls against infrastructure connectivity at all as a second layer.</p><p>The risk here is non-zero, but also relatively low - use a context-appropriate risk assessment.</p><h2><strong>Guiding AI agents with prompts</strong></h2><p>Writing an effective prompt is an entirely different article in its own right, and it also differs per model and model family. </p><p>If your team is new to AI, it&#8217;s helpful to go over the fundamentals. I have deeper guidance on the fundamentals of prompting in another article:<strong> </strong><a href="https://blog.jgefroh.com/p/aillm-prompting-for-beginners">AI/LLM Prompting for Beginners</a>.</p><p>Generally though, as you write prompts for guiding the LLM for coding purposes:</p><ul><li><p><strong>Don&#8217;t describe what the code is doing.</strong> Describe the context of how you want the architecture and code to be used and created. The AI can find out what the code is doing quite well. It can&#8217;t interpret the context or intent.</p></li><li><p><strong>Keep your prompts relatively precise. </strong>Try to avoid mixing 100 different requests into a single prompt. Asking an LLM to create a dashboard for one feature AND a new API endpoint for another feature AND a report for a third will just confuse it.</p></li><li><p><strong>Ask your LLM to plan. </strong>Coding LLMs are quite good at planning, and spending 10 minutes in &#8216;plan mode&#8217; shaping the plan by going back and forth conversationally with the AI will save you tons of headaches during implementation.</p></li><li><p><strong>Apply global corrections globally.</strong> If an LLM is messing up consistently for you in one area, it probably is for others - that&#8217;s a good signal to raise it to the team to add to the LLM-Guidance.md for everyone.</p></li></ul><h2><strong>Depth vs. Breadth</strong></h2><p>One important note about LLMs is the more separate instructions you give it, the more shallow it will be. Suppose you&#8217;re creating an LLM prompt to do a pull request code review and want to check:</p><ul><li><p>Scaling, security, naming, correctness, and edge case spec coverage</p></li></ul><p>You can put all of these separate considerations into a single prompt and have an agent run that prompt against code and get good results. </p><p>However, if you&#8217;re working in conditions where that review really, really matters (eg. very important code), it&#8217;s better to separate each one into its own prompt and Agent.</p><p>What that means is to write different prompts for each consideration, asking it to output a formatted report:</p><ul><li><p>A separate prompt that specifically asks the agent to investigate all manner of scaling concerns, being particular about evaluating load</p></li><li><p>A separate prompt that  specifically asks the agent to investigate all manner of security concerns, being particular about tracing code</p></li><li><p>&#8230;etc.</p></li></ul><p>Then, you run each of your individual prompts using a new, fresh agent per prompt against your pull request. You can collect the results and have an LLM stitch them together verbatim at the end, or have them post separately.</p><p>You will get much, much deeper results because the LLM will not get as confused. This is especially useful for creating security auditors. </p><p>I once made a script + LLM audit prompt that ran a separate agent through every single endpoint for a legacy system individually looking purely for endpoint security considerations. It found <em>several hundred</em> real vulnerabilities of all kinds, including nearly a dozen critical ones vs. my shallower attempt which found &lt; 10 low ones. Because of the way it was written, I was also able to get it to write patch steps automatically, providing the team a way to remediate issues immediately - all for just $0.90 / endpoint.</p><p>This approach works well for any work, not just code reviews, where you need depth.</p><div><hr></div><h1>Adoption advice</h1><p><strong>Start small. </strong>Don&#8217;t try to make your codebase LLM-friendly overnight. Start with just a single LLM-Guidance.md document and add to the rules over time.</p><p><strong>Minimize infrastructure.</strong> If you&#8217;re just getting started, don&#8217;t try going through hoops setting up a bunch of infrastructure. You can get a lot done with just a single developer running Cursor. </p><ul><li><p>eg. a developer can just run <code>gh</code> Github CLI locally and post as themselves vs. trying to get their admin to approve an organization-wide integration.</p></li></ul><p><strong>Use what you already have.</strong> You don&#8217;t have to reorganize your entire knowledge store to make it usable by LLMs. LLMs can follow links - if you have documentation like Confluence, point it at the docs. Even if you just &#8216;copy-paste&#8217; it, it&#8217;s better than nothing.</p><p><strong>Introduce the basics.</strong> You really have to help people along sometimes, and that&#8217;s OK - especially for a new technology. </p><ul><li><p>Make a powerpoint with step by steps on setting Claude, ChatGPT, or Cursor up (or better yet, ask AI to make you one)</p></li><li><p>Do a team-wide demo of various use-cases like completing simple tickets or asking cursor questions about the code. Do it in real time.</p></li><li><p>Start an AI knowledge share channel for folks to ask questions in real-time (you can pivot them to ask the AI later)</p></li><li><p>Show people what it can do to create ideas.</p></li><li><p>Share skills and prompts with the team.</p></li></ul><div><hr></div><p>This is just the start. You&#8217;ll open up a world of other opportunities as you increase adoption. Think about things like:</p><ul><li><p>Can you use AI to do security audits against your codebase? (yes)</p></li><li><p>Can you use AI to answer questions from your team <em>like you would</em>? (yes)</p></li><li><p>Can you use AI to give daily updates to stakeholders? (yes)</p></li><li><p>Can you use AI to create internal-use tools? (yes)</p></li><li><p>Can you use AI to automate other processes? (yes)</p></li></ul><p>Just remember: AI is a power tool. You don&#8217;t want people running around with chainsaws! Move forward safely.</p><div><hr></div><p><em><a href="https://jgefroh.com/">Gefroh</a> is a product and engineering executive in Kirkland, Washington currently leading various AI adoption efforts. He&#8217;s created AI versions of himself at his current company, and has done all of the above.</em></p>]]></content:encoded></item><item><title><![CDATA[Detecting AI-written text on social media - Moving beyond the em-dash]]></title><description><![CDATA[AI on social media like Reddit and LinkedIn have detectable patterns.]]></description><link>https://blog.jgefroh.com/p/detecting-ai-written-text-on-social</link><guid isPermaLink="false">https://blog.jgefroh.com/p/detecting-ai-written-text-on-social</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Thu, 07 May 2026 15:40:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!g-a6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g-a6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g-a6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png 424w, https://substackcdn.com/image/fetch/$s_!g-a6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png 848w, https://substackcdn.com/image/fetch/$s_!g-a6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png 1272w, https://substackcdn.com/image/fetch/$s_!g-a6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g-a6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png" width="1456" height="624" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:624,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1911987,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196677699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!g-a6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png 424w, https://substackcdn.com/image/fetch/$s_!g-a6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png 848w, https://substackcdn.com/image/fetch/$s_!g-a6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png 1272w, https://substackcdn.com/image/fetch/$s_!g-a6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d65c271-f6b6-441b-89eb-aefd1d3114c2_1916x821.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Humans are amazing pattern matchers. We&#8217;re great at detecting when something is just&#8230;off.</p><p>That&#8217;s how I feel about almost all Reddit posts nowadays. It feels like 80% of reddit posts and comments I read are just AIs talking to each other.</p><p>It&#8217;s not just the &#8212;, it&#8217;s the sense it&#8217;s not a real person.</p><p>Honestly? AI has a strangeness to how it writes that creates smells. You can detect it with some basic tricks.</p><p>Curious if you&#8217;ve seen the tells, too?</p><div><hr></div><h1>The tells</h1><p>Many human-written posts contain these naturally. However, the tell comes from the fact that most human posts do not contain <em>many of these at the same time, consistently across posts / content</em>.</p><h3><strong>Words</strong></h3><p><em>AI loves to use specific words.</em></p><ul><li><p><em>Substrate</em> - I&#8217;ve gone my whole life hearing absolutely nobody use this word, and now it&#8217;s <em>everywhere.</em></p></li><li><p><em>Curious</em> - Nobody is that curious to use this word so often.</p></li><li><p><em>Resonates</em> - Not everything in life is deep and meaningful unless you&#8217;re a robot</p></li></ul><h3><strong>Phrases</strong></h3><p>They also like using these phrases a lot:</p><ul><li><p><em>&#8220;It hits hard&#8230;&#8221;</em></p></li><li><p><em>&#8220;Here&#8217;s what actually happened&#8221;</em></p></li><li><p><em>&#8220;Rare to see &lt;X&gt;&#8221;</em></p></li><li><p><em>&#8220;The wild part&#8221;</em></p></li><li><p><em>&#8220;You weren&#8217;t imagining&#8221;</em></p></li><li><p><em>&#8220;Nobody warns you&#8230;&#8221; / &#8220;Nobodys talking about&#8221;</em></p></li><li><p><em>&#8220;What kills me&#8230;&#8221;</em></p></li><li><p><em>&#8220;The funniest part&#8221;</em></p></li><li><p><em>&#8220;We need to talk about&#8221;</em></p></li><li><p><em>&#8220;The real issue is&#8221;</em></p></li></ul><h3><strong>Structure</strong></h3><p>AI has some specific structures it gravitates towards.</p><ul><li><p>Staccato sentences.</p><ul><li><p><em>&#8220;This is &lt;X&gt;. That is &lt;Y&gt;.&#8221;</em></p></li><li><p><em>&#8220;Not &lt;X&gt;. Not &lt;Y&gt;. &lt;Z&gt;.&#8221;</em></p></li><li><p><em>&#8220;Just &lt;X&gt;, &lt;Y&gt;&#8221;</em></p></li></ul></li><li><p><strong>Lists</strong> - particularly if they start with bold.</p></li><li><p>Removal of the subject from a sentence.</p><ul><li><p><em>&#8220;Left the station yesterday.&#8221; vs. &#8220;I left the station yesterday&#8221;</em></p></li></ul></li><li><p>Comparators and Metaphors</p><ul><li><p><em>&#8220;not &lt;X&gt;, but &lt;Y&gt;&#8221;</em></p></li><li><p><em>&#8220;&lt;A&gt; was &lt;X&gt;. &lt;Z&gt; is &lt;Y&gt;.&#8221;</em></p></li></ul></li><li><p>Odd pause insertion in written content</p><ul><li><p><em>&#8220;Sometimes I just&#8230;.  &lt;X&gt;&#8221;</em></p></li></ul></li></ul><ul><li><p>Sometimes - all lower-case - some people have prompted to try and sound more human</p></li><li><p>Examples in triples or quads.</p></li><li><p>Varied but predictable sentence lengths &#8220;&lt;Sentence&gt;. &lt;Short fragment&gt; &lt;Shorter fragment&gt;&#8221;</p><ul><li><p><em>eg. &#8220;I talked to all of my team that day. Some were mad. Most curious.&#8221;</em></p></li></ul></li></ul><h3><strong>Intents</strong></h3><p>LLM-written content often does what I call <em>overframing</em> - prepping the user before the primary content that isn&#8217;t contextually necessary for the situation.</p><ul><li><p>Trust-building framing</p><ul><li><p><em>&#8220;Honestly&#8230;&#8221;</em></p></li><li><p><em>&#8220;Genuinely asking&#8230;.&#8221;</em></p></li></ul></li><li><p>Buttering-up</p><ul><li><p><em>&#8220;That&#8217;s rare.&#8221;</em></p></li><li><p><em>&#8220;The &lt;X&gt; is real&#8230;&#8221;</em></p></li><li><p><em>&#8220;Exactly this&#8221;</em></p></li><li><p><em>&#8220;Good point&#8221;</em></p></li></ul></li><li><p>Positioning as authority</p><ul><li><p><em>&#8220;Sharing what actually matters&#8230;&#8221;</em></p></li></ul></li><li><p>Circumventing objections</p><ul><li><p><em>&#8220;You&#8217;re right to push back&#8230;&#8221;</em></p></li><li><p><em>&#8220;You&#8217;re not wrong&#8230;&#8221;</em></p></li></ul></li><li><p>Offering engagement</p><ul><li><p><em>&#8220;Happy to &lt;X&gt;&#8221;</em></p></li></ul></li></ul><h3><strong>Oddities</strong></h3><p>Weird, out of place metaphors and comparisons. AI likes to insert examples that people wouldn&#8217;t draw comparisons towards naturally</p><ul><li><p><em>&#8220;The dog looked at me like I was a fish&#8221;</em></p></li></ul><div><hr></div><h2><strong>Categories</strong></h2><p>I&#8217;ve noticed a few categories of written content that have tell combinations:</p><h3><strong>Engagement-bait</strong></h3><p>These posts seem to want to generate engagement - some tells:</p><ul><li><p>Attempts connection</p><ul><li><p><em>&#8220;Curious if anyone else&#8230;&#8221;</em></p></li><li><p><em>&#8220;Am I the only one&#8230;&#8221;</em></p></li></ul></li><li><p>Requests honesty</p><ul><li><p><em>&#8220;Just looking for genuine takes&#8221;</em></p></li></ul></li><li><p>Ends with an engagement prompt</p><ul><li><p><em>&#8220;Curious if&#8230;&#8221;</em></p></li><li><p><em>&#8220;If I may ask&#8230;.&#8221;</em></p></li><li><p><em>&#8220;How are you&#8230;&#8221;</em></p></li></ul></li></ul><h3><strong>Fake engagement</strong></h3><p>These posts just seem to be generating engagement:</p><ul><li><p>Give kudos</p><ul><li><p><em>&#8220;Glad you&#8217;re doing &lt;X&gt;&#8221;</em></p></li></ul></li><li><p>Often ends with a statement or question:</p><ul><li><p><em>&#8220;Do you notice &lt;X&gt;&#8221;</em></p></li></ul></li></ul><h3><strong>Ads</strong></h3><p>Many of these posts are just trying to sell something. Some are up-front and have appropriate disclaimers. Others are stealthy - they do it by casually name-dropping it in the post alongside other better recognized names.</p><p>For example, you&#8217;d see a post on &#8220;AI Workflows&#8221; that mentions popular tools like n8n, Claude, etc. and then see a random product casually name-dropped in the middle as a core part of the workflow like &#8220;potato-ai for cleaning up&#8221;.</p><p>It positions the product as a peer or equal in relevance to the other listed items.</p><p></p><h2><strong>News sharing / Info sharing</strong></h2><p>Someone shares knowledge or news to present themselves as an expert, sometimes accompanied with an ad.</p><ul><li><p>Factoid along with a personal impact.</p><ul><li><p><em>&#8220;&lt;X&gt; just figured out &lt;Y&gt;. You&#8217;re &lt;Z&gt;.&#8221;</em></p></li></ul></li><li><p>Description about why it is mind-blowing.</p></li><li><p>Unnecessary levels of detail to establish credibility.</p></li><li><p>Opinion.</p></li></ul><div><hr></div><h1>Examples</h1><p>Many of these posts exhibit the tells from above. While it doesn&#8217;t <em>prove</em> it was AI-generated or edited, enough of them creates a &#8216;smell&#8217; where I don&#8217;t even bother reading it anymore.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9is7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9is7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png 424w, https://substackcdn.com/image/fetch/$s_!9is7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png 848w, https://substackcdn.com/image/fetch/$s_!9is7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png 1272w, https://substackcdn.com/image/fetch/$s_!9is7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9is7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png" width="1456" height="995" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:995,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:289274,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196677699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!9is7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png 424w, https://substackcdn.com/image/fetch/$s_!9is7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png 848w, https://substackcdn.com/image/fetch/$s_!9is7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png 1272w, https://substackcdn.com/image/fetch/$s_!9is7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70433ffe-9f90-4bbc-9753-7f1774c416c9_1502x1026.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Pause insertion, strange comparators, triple structure, stoccato.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wTGl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wTGl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png 424w, https://substackcdn.com/image/fetch/$s_!wTGl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png 848w, https://substackcdn.com/image/fetch/$s_!wTGl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!wTGl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wTGl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png" width="1166" height="1184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1184,&quot;width&quot;:1166,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:298122,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196677699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wTGl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png 424w, https://substackcdn.com/image/fetch/$s_!wTGl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png 848w, https://substackcdn.com/image/fetch/$s_!wTGl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!wTGl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0fd4cc-36f3-45bd-9b13-f30c8042d51d_1166x1184.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Factoid, unnecessary detail, not &lt;X&gt;, &lt;Y&gt;, etc.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ENq_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ENq_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png 424w, https://substackcdn.com/image/fetch/$s_!ENq_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png 848w, https://substackcdn.com/image/fetch/$s_!ENq_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png 1272w, https://substackcdn.com/image/fetch/$s_!ENq_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ENq_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png" width="1456" height="503" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:503,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163264,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196677699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ENq_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png 424w, https://substackcdn.com/image/fetch/$s_!ENq_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png 848w, https://substackcdn.com/image/fetch/$s_!ENq_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png 1272w, https://substackcdn.com/image/fetch/$s_!ENq_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23b6d807-c8c0-40f8-8b9d-58418b1c45ca_1540x532.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Em-dash, framing, ending question engagement.</figcaption></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nDWy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nDWy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png 424w, https://substackcdn.com/image/fetch/$s_!nDWy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png 848w, https://substackcdn.com/image/fetch/$s_!nDWy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!nDWy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nDWy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png" width="1456" height="1134" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1134,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:354497,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196677699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nDWy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png 424w, https://substackcdn.com/image/fetch/$s_!nDWy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png 848w, https://substackcdn.com/image/fetch/$s_!nDWy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!nDWy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29d2afb6-fb89-4858-a6bb-9e585107233e_1508x1174.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Missing subject, staccato, not &#8220;&lt;X&gt;, &lt;Y&gt;&#8221;, strange comparator, engagement question.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EzhW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EzhW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png 424w, https://substackcdn.com/image/fetch/$s_!EzhW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png 848w, https://substackcdn.com/image/fetch/$s_!EzhW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png 1272w, https://substackcdn.com/image/fetch/$s_!EzhW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EzhW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png" width="1456" height="855" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:855,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:293142,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196677699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EzhW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png 424w, https://substackcdn.com/image/fetch/$s_!EzhW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png 848w, https://substackcdn.com/image/fetch/$s_!EzhW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png 1272w, https://substackcdn.com/image/fetch/$s_!EzhW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4818412-1c7c-487f-83aa-572508e22eb4_1600x940.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Missing subject, triples, just &lt;x&gt;, &lt;y&gt;, engagement question.</figcaption></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!11KA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!11KA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png 424w, https://substackcdn.com/image/fetch/$s_!11KA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png 848w, https://substackcdn.com/image/fetch/$s_!11KA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png 1272w, https://substackcdn.com/image/fetch/$s_!11KA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!11KA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png" width="1456" height="1877" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1877,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:582822,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196677699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!11KA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png 424w, https://substackcdn.com/image/fetch/$s_!11KA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png 848w, https://substackcdn.com/image/fetch/$s_!11KA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png 1272w, https://substackcdn.com/image/fetch/$s_!11KA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5bdc4da-2e41-4e2f-a4bf-a87c17193d35_1514x1952.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yMns!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yMns!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png 424w, https://substackcdn.com/image/fetch/$s_!yMns!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png 848w, https://substackcdn.com/image/fetch/$s_!yMns!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png 1272w, https://substackcdn.com/image/fetch/$s_!yMns!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yMns!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png" width="1456" height="778" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:778,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209902,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196677699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yMns!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png 424w, https://substackcdn.com/image/fetch/$s_!yMns!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png 848w, https://substackcdn.com/image/fetch/$s_!yMns!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png 1272w, https://substackcdn.com/image/fetch/$s_!yMns!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8076841-b75d-4749-856d-aee2ad5eb725_1524x814.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">List, engagement, sneak ad, framed as curiosity</figcaption></figure></div><div><hr></div><p>These aren&#8217;t all the tells. As AI and prompts evolve, it will rapidly change. But once you see it, you can&#8217;t unsee it, and you start to realize that a lot of the internet might just be <a href="https://en.wikipedia.org/wiki/Dead_Internet_theory">bots talking to bots</a>.</p><div><hr></div><p><em><a href="https://jgefroh.com/">Gefroh</a> is product and technology executive in Kirkland, Washington that writes about leadership, management, operations, and AI.</em></p>]]></content:encoded></item><item><title><![CDATA[How to Become a Better Product Manager - Leveraging AI and LLMs effectively]]></title><description><![CDATA[Learn how to 10x your product management in the age of AI.]]></description><link>https://blog.jgefroh.com/p/how-to-become-a-better-product-manager-a5a</link><guid isPermaLink="false">https://blog.jgefroh.com/p/how-to-become-a-better-product-manager-a5a</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Tue, 05 May 2026 17:47:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uzdd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uzdd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uzdd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png 424w, https://substackcdn.com/image/fetch/$s_!uzdd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png 848w, https://substackcdn.com/image/fetch/$s_!uzdd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png 1272w, https://substackcdn.com/image/fetch/$s_!uzdd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uzdd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png" width="1456" height="531" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:531,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3625938,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196564954?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uzdd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png 424w, https://substackcdn.com/image/fetch/$s_!uzdd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png 848w, https://substackcdn.com/image/fetch/$s_!uzdd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png 1272w, https://substackcdn.com/image/fetch/$s_!uzdd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F776ad30e-814c-4f86-965d-a995e549dcaa_3084x1124.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the age of AI, the Product Manager role is rapidly shifting in expectations.</p><p>It&#8217;s no longer enough to do some market research and toss it over the fence (though, honestly - that has never been enough).</p><p>Instead, there&#8217;s higher demands:</p><ul><li><p>Visual evidence in the form of functional prototypes</p></li><li><p>LLM-friendly documentation and breakdowns</p></li><li><p>Further specificity in details - use cases, edge cases</p></li></ul><p>Product Manager should identify how their role is changing, and more importantly - what they can do to accelerate their efforts.</p><div><hr></div><p><em>This article is part of my series <a href="https://blog.jgefroh.com/p/how-to-become-a-better-product-manager">How to Become a Better Product Manager</a>, which teaches the deep fundamentals of product management.</em></p><div><hr></div><h1>Basic LLM Usage</h1><h2><em><strong>LLMs as a Pair of Eyes</strong></em></h2><p>As Product Management scope increases, so does the broader awareness required to keep abreast of changes. There was a time where I was in 300 Slack channels across my scope, monitoring the conversations - it was exhausting.</p><p>LLMs saved me tons of time here.</p><p>If your company allows it, you can use LLMs to raise awareness of things happening in the company. For example, Claude connected to Slack and Confluence means you don&#8217;t have to actively be in a Slack channel or watching Confluence activity like a hawk to identify whether something needs your attention.</p><p>A few prompts I like to use:</p><ul><li><p><em>Search Slack and Confluence for every decision made about Project X that I wasn&#8217;t involved in.</em></p></li><li><p><em>Search Slack for any confusion, questions, or defect reports for Product Y that arrived today.</em></p></li></ul><p>The more data sources you attach, the broader the scope of search.</p><h2><em><strong>LLMs as Synthesis Engines</strong></em></h2><p>There&#8217;s a lot of documents and knowledge we have to both absorb and impart as product managers. </p><p>LLMs are great for this.</p><p>Use LLMs to summarize and synthesize. Meeting notes are a good candidate, as are documents - you can have it add a summary at the top of documents you create.</p><p>Tips:</p><ul><li><p><strong>Tailor for your audience</strong> - &#8220;write a concise summary for engineers&#8221; will lead to a very different level of detail than &#8220;write a concise summary for executives&#8221;.</p></li><li><p><strong>Proof-read it.</strong> LLMs can make mistakes - don&#8217;t just ask it to summarize and smack it on your document. Actually read it.</p></li><li><p><strong>Edit it. </strong>LLMs can write long, flowery prose. Make the summary concise, even if that means repeatedly telling the LLM &#8220;make this more concise&#8221;.</p></li><li><p><strong>Ask it source.</strong> LLMs can tie its claims to specific parts of the document, which makes it easier to verify.</p></li></ul><h2><em><strong>LLMs as Interpreters</strong></em></h2><p>Product Managers aren&#8217;t typically experts in engineering. That&#8217;s OK - they aren&#8217;t expected to be (at least, not yet).</p><p>However, it does mean there&#8217;s a communication gap. When an engineer speaks to tradeoffs and talks about how the replica write latency would prevent real-time querying of the chart data and the primary IOPs capacity wouldn&#8217;t handle the load of the feature, it&#8217;s easy to just accept it and move it.</p><p>Well - LLMs can help you understand and translate what all of that means.</p><p>Pop a message into the LLM and say <em>&#8220;translate this for me in terms a non-technicalperson would understand&#8221;.</em> </p><p>It deepens your understanding and more importantly allows you to engage further - perhaps there&#8217;s clarity or adjustments you can provide to remove the problem, or maybe you might gently push back and find that the engineer is making a mistaken assumption that renders the problem moot!</p><div><hr></div><h1>Intermediate LLM Usage</h1><h2><em><strong>LLMs as Thought Partners</strong></em></h2><p>As Product Managers, we have to think about a lot of different things - use cases, positioning, strategy. It&#8217;s easy to forget something or not have the fullest understanding, particularly in a new area.</p><p>Fun fact - LLMs can help you think through product use cases. </p><p>Suppose you&#8217;re developing an Impersonation feature for internal users. Ask some basic questions:</p><ul><li><p><em>List common use-cases of Impersonation features.</em></p></li><li><p><em>How do competitors implement this?</em></p></li><li><p><em>What are the risks?</em></p></li><li><p><em>What is a small slice of functionality that can be implemented?</em></p></li><li><p><em>What potential edge cases and bugs can occur?</em></p></li></ul><p>Once you &#8216;form&#8217; your thoughts, you can then ask the LLM to list them in a use-case friendly way:</p><ul><li><p><em>Take the above and turn it into an itemized requirements list, organized by Happy Path, Edge Cases, Scoped Phases.</em></p></li></ul><p>As always - edit, proof-read, and verify. Don&#8217;t just toss it to engineers - you must not be responsible for slop. It&#8217;s a good starting point, not the end result.</p><h2><em><strong>LLMs as Visualizers</strong></em></h2><p>There&#8217;s nothing quite like seeing something in front of you vs. reading a wall of text to truly understand it.</p><p>LLMs have empowered Product Managers to visualize their approach and thoughts in several ways:</p><ul><li><p>Creating diagrams of workflows and userflows</p></li><li><p>Creating design mocks and wireframes</p></li><li><p>Creating actual click-through prototypes</p></li></ul><p>You can use tools like Figma Make, Claude Design, and Gemini Stitch to rapidly create mocks and prototypes to <em>show</em> how you think something should function. If that&#8217;s not available, your basic LLM can just create a Mermaid diagram.</p><p>It doesn&#8217;t have to work, it just has to <em>show</em>.</p><div><hr></div><h1>Advanced LLM Usage</h1><h2><em><strong>LLMs as a Personal Analyst</strong></em></h2><p>LLMs can help you analyze data. If you&#8217;re fortunate enough to have query access to a subset of data, you can ask the LLM questions about your data and get it to answer.</p><ul><li><p>&#8220;<em>How many user signed up yesterday and didn&#8217;t log in today?&#8221;</em></p></li><li><p><em>&#8220;How many sales did we make in Turtle County last year?&#8221;</em></p></li></ul><p>Even if you don&#8217;t have a direct connection of the AI to a data source, you can still benefit by asking the LLM <em>how you might query the information</em>.</p><p>For example - suppose you have a access to a subset of data to query against, but you don&#8217;t know SQL. You can ask the LLM:</p><ul><li><p><em>Write me a query to find this fact &lt;fact&gt; from these tables &lt;schema&gt;.</em></p></li><li><p><em>How do I query for the active user count?</em></p></li></ul><p>The LLM will spit out a <em>probably syntactically correct</em> query you can then apply to your BI tool.</p><p><strong>Caution</strong> - <strong>syntactically correct does not mean semantically correct.</strong> There&#8217;s a large nuance in data columns - often, as code evolves, the meaning and intent of a data field changes. For example - perhaps &#8220;Created At&#8221; on the &#8220;User&#8221; record used to mean the timestamp the user account was created at, but now there&#8217;s a new field called &#8220;signed up&#8221; that contains the actual sign up timestamp because of a mass auto-migration. Situations like this are not captured in syntax and LLMs have no way of identifying these changes. The lack of a <em>Semantic Model</em> means you should always double-check your results with someone familiar with your code for important cases. Don&#8217;t just trust the query the LLM returns. Gut-check everything, at minimum - AI is often wrong with data.</p><h2><em><strong>LLMs as a Personal Developer</strong></em></h2><p>There&#8217;s a lot of situations where as a Product Manager you have to go and ask the developer &#8220;how does this really work under the hood?&#8221;. You file a ticket or pop over a message and a couple hours to days later, the engineer will provide you the answer.</p><p>If you have access to the codebase, you can use the LLM to answer these questions for you.</p><p>Ask the LLM:</p><ul><li><p><em>&#8220;Explain precisely like I&#8217;m non-technical how each of the numbers on the bar chart on the /charts page is calculated.&#8221;</em></p></li><li><p><em>&#8220;When a user logs in, at what point is the drip campaign for onboarding sent?&#8221;</em></p></li></ul><p>These can compress the wait time dramatically and avoid having to bother an engineer to find the answer for you.</p><h2><em>LLMs as a Builder</em></h2><p>One of the most advanced forms of incorporating LLMs is the Product Manager builds the feature using LLMs - ie. vibe coding.</p><p>This actually works <em>great</em> for smaller-scale startups or less constrained environments. The speed of a subject matter expert translating their thoughts into working product is unmatched.</p><p>However - it&#8217;s far too much risk in areas where compliance, scaling, or security matter. Vibe Coding doesn&#8217;t typically address these cases at all, even if the AI swears to you it does.</p><p><strong>Caution - </strong>in many cases, what you see is only 10% of what you need. 90% of the work is things like cross-cutting concerns, authentication, authorization, security, scaling, observability, safety, testing, validation - so called &#8216;ilities&#8217; that vibe coding won&#8217;t get you. Don&#8217;t just assume it&#8217;s 90% done once you see it working.</p><p>If the codebase is effectively set up for safe vibe coding (chances are, it isn&#8217;t), then you might be able to do risk-appropriate development, but 99.99999% of codebases are not. Leave the truly important stuff to the actual engineers.</p><div><hr></div><h1>Expert LLM Usage</h1><h2><em>LLMs as a Digital Twin</em></h2><p>If your decision-making stems from a consistent set of applied principles, LLMs lend themselves well to creating a digital twin of yourself.</p><p>Imagine: people can ask you questions and your &#8220;twin&#8221; can go and answer them, working from the first principles you set.</p><p>For example - if you are all about speed to market - make a skill that encodes that principle.</p><p>Create skills that people can use to get your &#8216;first take&#8217; without ever having to talk to you. Of course, this doesn&#8217;t remove you from the process, but it does provide rapid first-passes that can help catch early issues.</p><p>Better yet - it helps people refine their own thinking over time.</p><h2><em>Curating Context for LLMs</em></h2><p>The most expert outcome is that you start to curate knowledge within your product domain in a way that LLMs (and people) can easily consume.</p><p>You maintain the repository of facts and context and history, and create the mechanisms by which an LLM can access and know about it. Other people can leverage that documentation (with our without an LLM) to ensure they are making effective product decisions within that space.</p><p>Is this technically replacing yourself? Yes, but in the best way: it frees up your time to expand your contribution to more strategic areas.</p><p>Start a wiki where you consciously and precisely articulate the facts and product context around your domain, then ensure people point their LLMs towards it.</p><div><hr></div><h1>Caution</h1><p>A word of caution: if you <em>abuse</em> the tools you will create <em>more work for little value</em>.</p><p><strong>AIs are verbose.</strong> If you give an engineer a document with 500 words that could&#8217;ve clearly been explained in 10, you are <em>wasting that engineer&#8217;s time. </em>Always ensure conciseness and precision - every word matters.</p><p><strong>AIs make stuff up.</strong><em><strong> </strong></em>AIs will make stuff up. If you provide a document that has clearly wrong information, people will lose trust in you, and you&#8217;ll create issues downstream when the wrong things get implemented.</p><p><strong>AIs will not tailor completely for your context.</strong> You can provide context all you want, but AI will not fully understand every single thing there is to know about your context or company. Evaluate its decisions - is that use-case that was generated actually relevant to the specific goal you&#8217;re trying to pursue? Does that feature really need that guard in the environment you&#8217;re in? </p><p><strong>AIs can be overly detailed.</strong> AIs can toss in a lot of irrelevant detail for a document - architecture and implementation in a product use case document, defect remediation steps in a Go To Market alignment document. Remember the audience and purpose of a document - don&#8217;t just dump what the AI wrote.</p><p>You&#8217;re always responsible for the output of AI. Always.</p><div><hr></div><p>LLMs don&#8217;t replace your thinking, but they can help accelerate it, broaden it, deepen it, and create space for focus. Use it effectively!</p>]]></content:encoded></item><item><title><![CDATA[How to Become a Better Product Manager]]></title><description><![CDATA[Adjust your approach, thinking, and mental models to make better product decisions.]]></description><link>https://blog.jgefroh.com/p/how-to-become-a-better-product-manager</link><guid isPermaLink="false">https://blog.jgefroh.com/p/how-to-become-a-better-product-manager</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Tue, 05 May 2026 16:21:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SDcI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SDcI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SDcI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!SDcI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!SDcI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!SDcI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SDcI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1262751,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196560112?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SDcI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!SDcI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!SDcI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!SDcI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff93d9ed-19c5-4bf6-b83c-cc092270ab99_1774x887.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The world of Product Management knowledge is filled with vague advice or overly rigid frameworks. It&#8217;s simultaneously overwhelming and underwhelming - you have to contend with jargon from frameworks like RICE, Kano, SAFe and approaches from influencers stating &#8216;this is right&#8217;, &#8216;this is wrong&#8217; while at the same time interpreting vague values advice like &#8216;move fast&#8217; but &#8216;think deeply&#8217;.</p><p>At a fundamental level - Product Management is about making good decisions across a portfolio of bets, executing on them, and observing their effects. That&#8217;s it. All the frameworks aren&#8217;t really needed if you start from fundamentals.</p><div><hr></div><p>This series is intended to teach you the fundamentals of being an effective Product Manager:</p><ul><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-on-managing">On managing risks</a> - a series on the fundamental risks every product manager should consider</p><ul><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-articulating-601">Value risk</a></p></li><li><p><a href="https://blog.jgefroh.com/product-management-skills-articulating-6e8">Fitness risk</a></p></li><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-articulating-683">Impact risk</a></p></li><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-articulating-b63">Adoption risk</a></p></li><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-articulating">Cost risk</a></p></li></ul></li><li><p><a href="https://blog.jgefroh.com/p/product-management-skillsets-know">Know how to synthesize</a> - even in the age of LLMs, a good product manager can concisely synthesize information</p></li><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-analytics">Analytics and instrumentation</a> - a good product manager knows what to look for in metrics and how to interpret them</p></li><li><p><a href="https://blog.jgefroh.com/p/product-manager-skills-articulating">Articulating assumptions and acting with intention</a> - a good product manager can break down problems and solutions into its incremental parts</p></li><li><p><a href="https://blog.jgefroh.com/p/product-manager-skills-articulating">Avoiding overfocus</a> - a good product manager has both focus and systems-level thinking</p></li><li><p><a href="https://blog.jgefroh.com/p/how-to-become-a-better-product-manager-a5a">Leveraging AI and LLMs effectively</a> - learn how to use LLMs to supercharge your product management</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Being Strategic: What "Be More Strategic" Actually Means]]></title><description><![CDATA[Actually learn how to 'be more strategic" and learn how to move beyond just being a manager/director to being an executive and leader.]]></description><link>https://blog.jgefroh.com/p/being-strategic</link><guid isPermaLink="false">https://blog.jgefroh.com/p/being-strategic</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Tue, 05 May 2026 15:51:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vURj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vURj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vURj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png 424w, https://substackcdn.com/image/fetch/$s_!vURj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png 848w, https://substackcdn.com/image/fetch/$s_!vURj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png 1272w, https://substackcdn.com/image/fetch/$s_!vURj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vURj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png" width="1456" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:590,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3593535,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/196556485?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!vURj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png 424w, https://substackcdn.com/image/fetch/$s_!vURj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png 848w, https://substackcdn.com/image/fetch/$s_!vURj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png 1272w, https://substackcdn.com/image/fetch/$s_!vURj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81405b14-19d4-43c6-9c39-0a9c66732e16_2460x996.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><strong>&#8220;You need to be more strategic&#8221;</strong></em></p><p>It&#8217;s feedback a lot of people receive as they try to move from middle management to the executive level. Yet, few can define what it actually means or entails.</p><p>Is it an innate talent, or some magic &#8220;X&#8221;-factor?</p><p>No. Being strategic can be taught and learned. It requires learning new ways of approaching problems, changing your mindset, and a bit of unlearning of the things that got us to where we are now. It requires picking up a few hard-skills and learning some very hard soft-skills.</p><p>Whether it&#8217;s analyzing problems, speaking the language of the business, or improving your bearing - the skills of being strategic can be taught.</p><div><hr></div><p>This is my series on <em>being strategic,</em> where I share my advice and thinking behind strategy - perfect for senior managers and directors who are attempting to move beyond operations and into strategy.</p><ul><li><p><a href="https://blog.jgefroh.com/p/being-strategic-whats-not-strategic">What&#8217;s Not Strategic?</a> - address common misconceptions and understand what strategy <em>isn&#8217;t</em></p></li><li><p><a href="https://blog.jgefroh.com/p/being-strategic-how-to-analyze-problems">How to Analyze Problems</a> - learn how to deepen diagnostic depth and through intentional problem analysis</p></li><li><p><a href="https://blog.jgefroh.com/p/being-strategic-improving-executive">Improving Executive Presence</a> - manage perception by unlearning some successful management behaviors that otherwise harm executive perception</p></li><li><p><a href="https://blog.jgefroh.com/p/being-strategic-think-strategically">Think strategically in everyday work</a> - find opportunities to exercise strategic thinking in your current work to get invited into the room where strategy is made</p></li></ul><div><hr></div><p><em><a href="https://jgefroh.com/">Gefroh</a> is a product and engineering executive in Kirkland, Washington currently working in the healthcare space. He writes extensively about leadership and strategy on <a href="https://blog.jgefroh.com/s/leadership-and-management">his blog</a>.</em></p><p><em>Feel free to connect if you have questions or just want advice!</em></p>]]></content:encoded></item><item><title><![CDATA[How to Become a Better Product Manager - On managing risks]]></title><description><![CDATA[Risk management is a key skillset of Product Management.]]></description><link>https://blog.jgefroh.com/p/product-management-skills-on-managing</link><guid isPermaLink="false">https://blog.jgefroh.com/p/product-management-skills-on-managing</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Mon, 04 May 2026 21:37:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!saGg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!saGg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!saGg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png 424w, https://substackcdn.com/image/fetch/$s_!saGg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png 848w, https://substackcdn.com/image/fetch/$s_!saGg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png 1272w, https://substackcdn.com/image/fetch/$s_!saGg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!saGg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png" width="1456" height="607" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:607,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2414971,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/141590380?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!saGg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png 424w, https://substackcdn.com/image/fetch/$s_!saGg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png 848w, https://substackcdn.com/image/fetch/$s_!saGg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png 1272w, https://substackcdn.com/image/fetch/$s_!saGg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b0633a-2932-4730-b4ec-8886bb836030_1942x809.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As a product manager, you have to be able to articulate, separate, and define your risks - the potential negative effects of whatever you are trying to do. Articulating them helps you frame and compare them appropriately - ignoring low risks and mitigating higher ones.</p><p>These are the levers you use and the plates you balance as a product manager to create and deliver value.</p><div><hr></div><p><em>This article is part of my series <a href="https://blog.jgefroh.com/p/how-to-become-a-better-product-manager">How to Become a Better Product Manager</a>, which teaches the deep fundamentals of product management.</em></p><div><hr></div><h1>Understanding the risks</h1><p>There are many, many ways to break down risks. You can start with some of the obvious risks:</p><ul><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-articulating-601">Value risk</a></p></li><li><p><a href="https://blog.jgefroh.com/product-management-skills-articulating-6e8">Fitness risk</a></p></li><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-articulating-683">Impact risk</a></p></li><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-articulating-b63">Adoption risk</a></p></li><li><p><a href="https://blog.jgefroh.com/p/product-management-skills-articulating">Cost risk</a></p></li></ul><p><strong>Value risk</strong> is that your solution doesn&#8217;t create value for anyone.</p><p><strong>Fitness risk</strong> is that your solution doesn&#8217;t actually solve the user&#8217;s problem.</p><p><strong>Cost risk</strong> is that your solution costs more than expected.</p><p><strong>Impact risk</strong> is that your solution doesn&#8217;t have the expected impact.</p><p><strong>Adoption risk</strong> is that your solution isn&#8217;t used by users</p><div><hr></div><h1>Evaluating risks</h1><p>Evaluation of risks is an exercise in methodology and tradeoffs.</p><p>In short:</p><ul><li><p>How probable is this risk?</p></li><li><p>How damaging are the effects of this risk?</p></li><li><p>Should you reduce this risk?</p></li><li><p>Are you leveraging the right tool to address that risk?</p></li></ul><p><strong>How probable is this risk?</strong></p><p>There&#8217;s a chance a meteor will hit your office building tomorrow. That doesn&#8217;t mean you should put resources into an extremely detailed meteor contingency plan.</p><p>Some risks are low probability &#8220;black swan&#8221; events. If you have limited resources, chances are you shouldn&#8217;t invest heavily in avoiding them. Sure, you should think about the probability and have a general backup plan, but unless it&#8217;s a business critical event it might be worthwhile to keep that in the land of theory.</p><p><strong>How damaging are the effects of this risk?</strong></p><p>If the negative impact of a risk is extremely low, then it might not be worth putting in the bandwidth or resources to mitigate it ahead of time. In these cases, it&#8217;s better to deal with the negative effect if it happens, and move on.</p><p>If a risk has extremely high negative impact, but you can take actions to reduce the negative impact or make the negative impact more recoverable, then you can still change your risk profile without mitigating a risk entirely.</p><p><strong>Should you reduce this risk?</strong></p><p>Fun fact - product managers shouldn&#8217;t be trying to mitigate or control for every single risk. To do so would lead to a standstill in decision-making and a tremendous amount of effort for rapidly diminishing returns.</p><p>Instead, you want to take appropriate risks, balancing probability and negative impact with the expected value.</p><p>It&#8217;s all about risk management and balancing the risks and tradeoffs to achieve an  appropriate risk profile.</p><p><strong>Are you leveraging the right tool to address that risk?</strong></p><p>This is a common problem I see a lot of product managers make when they over-index on a particular form of risk.</p><p>Risks have different ways of being addressed. Depending on the problem you are expected to encountering, you may have a different approach available to you than directly addressing that risk. In fact, you may not want to address that risk specifically, but rather target another risk that has a tangential, secondary effect on the risk you originally wanted to address.</p><p>Imagine a product manager who, fearful of experiencing adoption risk, continues adding more and more scope before they release. Their attempt to reduce adoption risk (the risk that users don&#8217;t use the product) actually increases the cost risk.</p><div><hr></div><h1>Mitigating risks</h1><p>When evaluating, you must know which risk you are attempting to address. Each has a different strategy and relationship with other risks. For example, for the above risks mentioned earlier:</p><p><strong>Impact risk</strong></p><ul><li><p>Understand your metrics hierarchy, outcomes, and drivers</p></li><li><p>Be realistic about sizing and adoption</p></li></ul><p><strong>Value risk</strong></p><ul><li><p>Be sure you can follow the cause-effect chain back to the user&#8217;s intent or problem</p></li><li><p>Understand what the user is actually trying to do, with or without your tool</p></li></ul><p><strong>Cost risk</strong></p><ul><li><p>Reduce the scope to reduce cost</p></li><li><p>Do deeper feasibility assessments and spikes</p></li><li><p>Avoid over-investing without incremental validation</p></li></ul><p><strong>Adoption risk</strong></p><ul><li><p>Ensure your users know it exists</p></li><li><p>Make sure it&#8217;s usable</p></li><li><p>Instrument it</p></li></ul><p><strong>Impact risk</strong></p><ul><li><p>Avoid one-way doors</p></li><li><p>Release to a small subset of users</p></li><li><p>Make the negative effects reversible</p></li><li><p>A/B test to measure impact</p></li><li><p>Be ready to roll it back</p></li></ul><p><em>These aren&#8217;t the only risks, nor are they the only mitigations you can apply.</em> </p><div><hr></div><h1>Your risk framework needs ROI</h1><p>You need to treat your risks like a product. You can&#8217;t spend weeks managing risks if the cost can be measured in minutes. Your risk framework and process needs to be aligned with the potential negative impact. There&#8217;s a cost vs. value calculation even to risk management.</p><p>Avoid analysis paralysis and ensure you don&#8217;t become a bottleneck - a lot of product managers get this wrong, over-indexing on all potential negative cases - it&#8217;s OK to be wrong sometimes. Product management is about managing a portfolio of bets - some are not going to work out.</p>]]></content:encoded></item><item><title><![CDATA[On organizational dynamics - jumping the chain of command]]></title><description><![CDATA[Going above your boss should be done with care and reserved for important things.]]></description><link>https://blog.jgefroh.com/p/on-organizational-dynamics-jumping</link><guid isPermaLink="false">https://blog.jgefroh.com/p/on-organizational-dynamics-jumping</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Mon, 04 May 2026 21:13:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nzDa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nzDa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nzDa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png 424w, https://substackcdn.com/image/fetch/$s_!nzDa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png 848w, https://substackcdn.com/image/fetch/$s_!nzDa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png 1272w, https://substackcdn.com/image/fetch/$s_!nzDa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nzDa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png" width="1456" height="641" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:641,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1713575,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/168910100?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nzDa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png 424w, https://substackcdn.com/image/fetch/$s_!nzDa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png 848w, https://substackcdn.com/image/fetch/$s_!nzDa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png 1272w, https://substackcdn.com/image/fetch/$s_!nzDa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4fbc649-1483-4d26-bc21-2d07a22cf930_1889x832.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The chain of command is where you get your authority as a manager. It&#8217;s the formal authority that you&#8217;ve been granted by your company to execute towards its desired outcomes.</p><p>Yet, many inexperienced managers completely disregard it whenever they disagree with their boss. They chain jump - going above their boss to get their problem solved instead of working within the confines of the authority structure.</p><p>In smaller organizations, this is actually fine - it&#8217;s baked into the authority and decision structure, and the relatively small size enables the chain to be more of a network. However, as the organization grows, this structure start to fail and causes a cascade of issues. Hierarchy becomes more important to ensure the company continues remaining effective.</p><p>Chain jumping creates a lot of organizational dysfunction - companies simply can&#8217;t operate effectively if every decision is being second-guessed. At lower levels, this may result in minor mistakes or wasted time, but at higher levels jumping the chain could cause catastrophic alignment issues.</p><div><hr></div><h2>What you&#8217;re actually doing when you jump the chain</h2><p>When you jump the chain upwards, you&#8217;re indicating that a complete breakdown of trust has occurred in your relationship with whoever you are bypassing. If you&#8217;re in a half-decently run company, this is a bad thing.</p><p>It&#8217;s strongly frowned upon by every leader I have ever talked to and only the most patient of bosses will tolerate it.</p><p>It&#8217;s considered the nuclear option for a reason - either you&#8217;re absolutely 100% right and in full alignment with your boss&#8217; boss, or you&#8217;re out of a job because you&#8217;ve dismantled your relationship with your boss with a single action.</p><div><hr></div><h2>How do you successfully jump the chain?</h2><p>For you to chain jump successfully, a lot of factors have to be true:</p><ul><li><p>The issue has to be critical to your boss&#8217; boss.</p></li><li><p>The issue has to not have been visible to your boss&#8217; boss.</p></li><li><p>The issue has to be in complete disagreement with your boss and your boss&#8217;s boss.</p></li><li><p>The issue has to be so egregiously violative that it breaks the trust between your boss and your boss&#8217;s boss.</p></li></ul><p>Outside of unethical or illegal actions, a loss of integrity, company-ending risks, whistleblower scenarios - very, very few items will meet this criteria. If you jump the chain without all four - you run a massive risk for very little organizational benefit.</p><h3>The issue has to be critical to your boss&#8217; boss.</h3><p>Your boss&#8217; boss is dealing with a set of problems you aren&#8217;t even aware of. They have tradeoffs, risks, and decisions that they manage. They&#8217;ve entrusted a segment of their problems for your boss to handle on their behalf. </p><p>If you bring up an issue that&#8217;s irrelevant to them in the grand scheme of what they are dealing with, then you&#8217;ve turned something they&#8217;ve otherwise been able to ignore into, at best, an annoyance they have to deal with. It&#8217;s not likely they&#8217;ll view it as something even worth investing their time in, if not for the fact you brought it up to them. </p><p>They have higher leverage activities, and are likely to view you bringing up things as a waste of their time if it&#8217;s not critical to them.</p><h3>The issue has to not have been visible to your boss&#8217; boss.</h3><p>It may or may not be a surprise - but your boss and your boss&#8217; boss communicate with each other. </p><p>It&#8217;s quite possible that your boss&#8217;s boss already knows about the issue exists and otherwise trusts your boss will handle it. If they had a strong opinion, they likely would have aligned with your boss already.</p><p>It has to come as a surprise - something that your boss was actively hiding or that wasn&#8217;t visible to your boss&#8217; boss.</p><h3>The issue has to be in complete disagreement with your boss and your boss&#8217;s boss.</h3><p>Your boss and your boss&#8217;s boss are probably in closer alignment than you can see. If you disagree with your boss&#8217; strategy, but that strategy was already aligned with your boss&#8217; boss, you&#8217;re basically telling your boss&#8217; boss you disagree with them, too.</p><p>Whatever issue you chain jump has to ensure that there is ultimately a misalignment you are bringing attention to. Otherwise, you&#8217;re the misaligned person in the chain, not your boss, and you should introspect on that.</p><h3>The issue has to be so egregiously violative that it breaks the trust between your boss and your boss&#8217;s boss.</h3><p>Your boss is your boss for a reason - your boss&#8217; boss authorized them to have authority on their behalf. This doesn&#8217;t mean they always agree. Sometimes your boss will approach a problem with a different perspective and solution than your boss&#8217; boss will.</p><p>Even if your boss&#8217;s boss disagrees with your boss, your boss&#8217; boss may happily give them the autonomy to try it a different way. </p><p>The issue you chain jump for has to be egregiously violative, not just a disagreement or something with less than ideal outcomes. </p><p>Otherwise, trust comes into play and your boss&#8217; boss may trust that your boss will achieve the desired outcomes, even if done differently or with less perfection than you may personally desire. </p><div><hr></div><h2>How do you best frame your chain jump?</h2><p>You&#8217;re going to need a lot of tact in the delivery.</p><p>If you go in heavy ranting against your boss, you&#8217;ve lost - you&#8217;ll be perceived as irrationally biased, and you&#8217;ll immediately torpedo any trust in yourself. </p><p>If you go in arguing passionately against a decision, you&#8217;ve lost - you&#8217;ll be perceived as a single-issue or overly emotional person and your future concerns won&#8217;t be taken seriously.</p><p>The best way to approach it is to remain factual, remain open to being wrong. Frame it as raising awareness or getting context, not a disagreement or misalignment. Be prepared with data, evidence, and details. Be honest with what you know and don&#8217;t know - acknowledge you may not have the full picture - because you may not.</p><p>Ensure your boss and your boss&#8217; boss know either way that you&#8217;re going to execute whatever decision is made to the best of your ability.</p><p>Try to give your boss an out - &#8220;it&#8217;s possible they&#8217;ve already considered this&#8221; is a lot better than &#8220;they aren&#8217;t aware of it at all&#8221;. This is especially important if you end up <em>being wrong - </em>it&#8217;ll ensure that your boss knows you didn&#8217;t also question their competency and help preserve the relationship.</p><p>Always ensure you tell your boss first and after. Give them the opportunity to address your concerns, and then provide them a specific update afterwards as to what you discussed and with who so they can understand the context - this can go a long way in ensuring that even if there&#8217;s a disagreement, you&#8217;re still preserving trust.</p><div><hr></div><h2>What happens after chain jumping?</h2><p>So, let&#8217;s suppose you jump the chain. You meet your your boss&#8217; boss and give them the details of your disagreement with your boss (their report). You explain the who, what, when, where, and why. You present the entire scenario and why you think your boss is wrong.</p><p>Your boss&#8217; boss thanks you for bringing it to their attention and ends the meeting.</p><h3>What happens after?</h3><p>Well, the first thing your boss&#8217; boss is going to do is reach out to your boss and give them all of the details. </p><p>If your item didn&#8217;t meet the criteria of the above, the only directive to your boss&#8217;s boss would be &#8220;let me know if there&#8217;s messaging you want me to reinforce&#8221;. That&#8217;s it. Your boss and your boss&#8217;s boss are fully aligned, and you just torpedo&#8217;d your most important relationship at the company.</p><p>If you brought up an issue that met one or two of the criteria above. In that case, your boss and your boss&#8217; boss may have a sidebar. They may discuss the situation, see if that decision needs to be re-considered in light of the strong feelings. Maybe, maybe not. </p><p>In any case, there&#8217;s an alignment - either a reinforcing of the current position, or an adjustment. In a best case scenario, you may get your way - maybe your involvement was enough to tip the scale. However, the end result is still the same - you just destroyed your relationship with your boss.</p><h3>If you bring up an issue that meets ALL of the criteria, above, it might work differently.</h3><p>There might be a serious discussion, other leadership might be called in to discuss the situation. I&#8217;ve even seen outside personnel pulled in to conduct investigations. In these cases, your best case scenario is your boss gets replaced with someone else. </p><p>However, in many cases, a realignment might occur - you might get your way, but the chain of command remains the same.</p><div><hr></div><h2>Why you should be judicious on jumping the chain</h2><p>There&#8217;s quite a few reasons why you should not jump the chain:</p><ul><li><p>You&#8217;re usually at an information disadvantage</p></li><li><p>You can usually solve your problem by just talking to your boss</p></li><li><p>When you win, you probably still lose</p></li></ul><h3>You&#8217;re usually at an information disadvantage</h3><p>You boss and your boss&#8217; boss are privy to information and context you don&#8217;t (and probably shouldn&#8217;t) have. They evaluate decisions based on factors outside of your visibility and scope which may influence and outweigh the specific tradeoffs you can factor.</p><p>Unless you know the specific criteria your boss&#8217; boss is evaluating their decisions on, you may actually be arguing based on tradeoffs they don&#8217;t even care about. </p><p>I&#8217;ve had reports jump the chain to argue about decisions I&#8217;ve made based on an increased cost when the directive from my boss was &#8220;I don&#8217;t care how much you spend to get this done.&#8221; It&#8217;s not a good look for the chain jumper when they didn&#8217;t even bother to get the context of the decisions being made.</p><h3>You can usually solve your problem by just talking to your boss</h3><p>If you&#8217;re worried about a decision or problem, in most cases you can just ask your boss about it. In many cases, they&#8217;ll give you additional context that makes you go &#8220;oh wow, yeah, that totally makes sense&#8221;.  In the situations they can&#8217;t, they may tell you outright &#8220;this is privileged information I can&#8217;t provide&#8221; in which case - accept it and move on.</p><p>Sometimes, you can provide additional information that makes them change their mind. Even if they don&#8217;t, you can get acknowledgement they&#8217;ve considered whatever you&#8217;re worried about. This is a much better outcome - you collaborate with your boss on achieving a better outcome vs. bypassing them.</p><p>The way you ask is important - you don&#8217;t want to come across as demanding justification for their decisions. Frame it as attempting to learn, improve, and understand context. When you do get an answer, be appreciative. </p><h3>Even when you win, you probably still lose</h3><p>Even if you jump the chain and get your way, you&#8217;ve now soured your relationship with your boss. Unless they&#8217;re an incredibly patient person (which, most are not), you&#8217;ve essentially shown yourself to be untrustworthy within the context of the authority structure - not the best if you&#8217;re trying to advance in the organization.</p><div><hr></div><h3>Final thoughts</h3><p>Think carefully about when to jump the chain. Reserve it for the most serious, important, company impacting concerns. If you ever chain jump for frivolous reasons, or without full context, or do it poorly, all it does is make the company lose trust in you - particularly in situations where a simple conversation with your boss would&#8217;ve solved the problem. Make sure it&#8217;s worth it, and that you exhaust all of the other options first.</p>]]></content:encoded></item><item><title><![CDATA[AI/LLM Prompting for Beginners]]></title><description><![CDATA[Tips and tricks for prompting like a pro]]></description><link>https://blog.jgefroh.com/p/aillm-prompting-for-beginners</link><guid isPermaLink="false">https://blog.jgefroh.com/p/aillm-prompting-for-beginners</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Tue, 21 Apr 2026 13:51:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IjUq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IjUq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IjUq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png 424w, https://substackcdn.com/image/fetch/$s_!IjUq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png 848w, https://substackcdn.com/image/fetch/$s_!IjUq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png 1272w, https://substackcdn.com/image/fetch/$s_!IjUq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IjUq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png" width="1456" height="582" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:582,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:122647,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IjUq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png 424w, https://substackcdn.com/image/fetch/$s_!IjUq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png 848w, https://substackcdn.com/image/fetch/$s_!IjUq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png 1272w, https://substackcdn.com/image/fetch/$s_!IjUq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b58b7b5-cfed-48fa-8d56-b9a683866d89_1983x793.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>LLM prompting isn&#8217;t some mysterious dark art or difficult to learn skill.</p><p>AI models are, at their core, probabilistic prediction engines. Every response is the result of the model calculating the most likely next word, billions of times over, based on information you've given it. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.jgefroh.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Even LLMs that take action or think deeply are just that - they respond in ways that commands can be executed to take action, or they self-review their own approach for a few rounds before giving you the actual answer, but it&#8217;s all still probability.</p><p>That means you can shape those probabilities in your favor with just a few key words. The more clearly you communicate what you want and don't want, the more you narrow the field of possible outputs toward the one you're actually looking for. </p><p>Think of it like chiseling away at a stone representing all the possible responses until it takes the shape that you want.</p><p>This guide is a basic primer for anyone just getting started. No jargon, no complex frameworks - just practical techniques you can use right away to get better results from any AI tool.</p><div><hr></div><h2><strong>A quick primer on how LLMs work</strong></h2><p>LLMs predict the next word in a sentence based on the previous words you&#8217;ve provided - the &#8216;context&#8217;. Let&#8217;s use a very simple conceptual example.</p><p>Suppose you asked an LLM to fill in the blank of a phrase:<br><br>&#8220;<em>The color of the dog is        &#8221;<br><br></em>It&#8217;s likely to produce a sentence <em>&#8220;The color of the dog is brown&#8221;</em> because its training data suggested the most likely word to complete that sentence is <em>&#8220;brown&#8221;</em> or <em>&#8220;black&#8221;</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m8DA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m8DA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png 424w, https://substackcdn.com/image/fetch/$s_!m8DA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png 848w, https://substackcdn.com/image/fetch/$s_!m8DA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png 1272w, https://substackcdn.com/image/fetch/$s_!m8DA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m8DA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png" width="1456" height="311" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:311,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37824,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!m8DA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png 424w, https://substackcdn.com/image/fetch/$s_!m8DA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png 848w, https://substackcdn.com/image/fetch/$s_!m8DA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png 1272w, https://substackcdn.com/image/fetch/$s_!m8DA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb186e-537f-4f8b-a1ab-3ef351a0ff89_1656x354.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Without context, you get the most common/probable next token or word.</figcaption></figure></div><p>However, you can make it predict a word you want to see by nudging it with additional context. Suppose you told it the name of the dog is <em>Clifford:</em></p><p>&#8220;<em>The color of the dog, named Clifford, is           &#8221;</em></p><p>It&#8217;d be more likely to say &#8220;<em>red&#8221;</em> because you&#8217;ve now associated your desired end state with the word <em>&#8220;Clifford&#8221;</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YKn4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YKn4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png 424w, https://substackcdn.com/image/fetch/$s_!YKn4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png 848w, https://substackcdn.com/image/fetch/$s_!YKn4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png 1272w, https://substackcdn.com/image/fetch/$s_!YKn4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YKn4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png" width="1456" height="337" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:337,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:41603,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!YKn4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png 424w, https://substackcdn.com/image/fetch/$s_!YKn4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png 848w, https://substackcdn.com/image/fetch/$s_!YKn4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png 1272w, https://substackcdn.com/image/fetch/$s_!YKn4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb5bd997-c150-4daf-bf6a-621d82e35a21_1606x372.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Because of the context &#8220;Clifford&#8221;, it explored an entirely different association space.</figcaption></figure></div><p>In its training data, there&#8217;s an association with the word <em>&#8220;Clifford&#8221; </em>somewhere in its data. The word Clifford is associated with other words like &#8220;<em>giant</em>&#8221;, &#8220;<em>red</em>&#8221;, and &#8220;<em>dog</em>&#8221;.</p><p>The strength of this association can be variable. It&#8217;s a probability, after all. It can be overridden by other words that change the probability. For example, by adding additional context that the dog is <em>tiny</em>, it might just be enough to weight the probable next token back into the more common space:</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oX99!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oX99!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png 424w, https://substackcdn.com/image/fetch/$s_!oX99!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png 848w, https://substackcdn.com/image/fetch/$s_!oX99!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png 1272w, https://substackcdn.com/image/fetch/$s_!oX99!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oX99!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png" width="1456" height="328" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69980ab0-4694-49b2-8415-e96897be062c_1588x358.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:328,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42581,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oX99!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png 424w, https://substackcdn.com/image/fetch/$s_!oX99!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png 848w, https://substackcdn.com/image/fetch/$s_!oX99!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png 1272w, https://substackcdn.com/image/fetch/$s_!oX99!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69980ab0-4694-49b2-8415-e96897be062c_1588x358.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This example is made up - but you can see how <em>context</em> - additional words, can help produce a different result, and that context can also cause it to cancel out other influences from other words.</p><p>Being able to figure out what the words to say to get the result you want from the LLM is called &#8216;Prompting&#8221; or &#8220;Prompt Engineering&#8221;.</p><p>Now - on to the tips!</p><div><hr></div><h2><strong>If you&#8217;re just getting started: just ask and chat</strong></h2><p>Seriously - just talk to it like a person. Consumer LLMs are built to engage. Pretend you&#8217;re texting a really knowledgeable friend and ask away. Let the conversation go somewhere.</p><p>The best way to learn prompting is to try it and see the results. Ask for what you want. Correct it when it doesn&#8217;t quite give you what you want.</p><h2><strong>Give commands</strong></h2><p>Once you&#8217;re ready to get more specific, you can start to give <em>instructions</em> and <em>commands.</em></p><p>When you ask a question, you&#8217;re really leaving it up to the AI to decide what to do. However, if you want it to perform a specific action, you actually need to <em>tell</em> it what to do.</p><p><em>&#8220;What has Hugh Laurie been in recently&#8221; </em>might cause the model to look at its knowledge which might be outdated. <em>&#8220;Search what Hugh Laurie has been in recently&#8221;</em> tells the model to look at the internet for recent data.</p><p>Likewise, telling gives you the ability to <em>constrain</em> what the AI does, which is a key part of AI prompting.</p><h2><strong>Provide constraints</strong></h2><p>Remember that AI is a guessing machine - it&#8217;s guessing for billions of possible combinations of words for the next word to show you.</p><p>You can provide <em>constraints</em> in your prompt that reduce the amount of probable words by focusing its attention on the kinds of words you do want.</p><p>Confused? It&#8217;s easy to apply in practice even if you don&#8217;t understand it. You can constrain by:</p><ul><li><p>Telling the AI what you <strong>don&#8217;t</strong> want:</p><ul><li><p><em>Give me a recipe for apple pie without sugar</em></p></li><li><p><em>Give me the amount of money it takes to buy a Lambo. I don&#8217;t want used prices.</em></p></li></ul></li><li><p>Telling the AI what you <strong>do</strong> want:</p><ul><li><p><em>Give me a no-bake recipe for apple pie</em></p></li><li><p><em>Give me the name of a book with a dragon on the cover.</em></p></li></ul></li></ul><p>The more specific and precise you are with your prompt, the more specific and precise your answer will be.</p><h2><strong>Provide descriptors of what you want</strong></h2><p>Sometimes you might not be able to articulate <em>exactly</em> what you want. You might just want <em>something</em>.</p><p>Even providing a list of adjectives helps guide the AI, or even adjacent descriptors.</p><ul><li><p><em>Make the presentation design apple-esque - sophisticated, refined, minimal, space-efficient.</em></p></li><li><p><em>Make the first page of the presentation bold, unmistakable, attention-grabbing, title card, spy movie.</em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MTmU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MTmU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png 424w, https://substackcdn.com/image/fetch/$s_!MTmU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png 848w, https://substackcdn.com/image/fetch/$s_!MTmU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!MTmU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MTmU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png" width="1456" height="826" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:826,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:143184,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MTmU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png 424w, https://substackcdn.com/image/fetch/$s_!MTmU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png 848w, https://substackcdn.com/image/fetch/$s_!MTmU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!MTmU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38757e74-f659-45b7-b93c-f3726dee590b_1926x1092.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Just using a few adjectives can get you something very close to what you want: bold, unmistakable, attention-grabbing, spy-movie</em></figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ocz0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ocz0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png 424w, https://substackcdn.com/image/fetch/$s_!ocz0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png 848w, https://substackcdn.com/image/fetch/$s_!ocz0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png 1272w, https://substackcdn.com/image/fetch/$s_!ocz0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ocz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png" width="1456" height="1273" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1273,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:448028,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ocz0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png 424w, https://substackcdn.com/image/fetch/$s_!ocz0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png 848w, https://substackcdn.com/image/fetch/$s_!ocz0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png 1272w, https://substackcdn.com/image/fetch/$s_!ocz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30217493-a120-43ad-b7c6-d5bba381cbd2_1540x1346.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SF7X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SF7X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png 424w, https://substackcdn.com/image/fetch/$s_!SF7X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png 848w, https://substackcdn.com/image/fetch/$s_!SF7X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png 1272w, https://substackcdn.com/image/fetch/$s_!SF7X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SF7X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png" width="1456" height="795" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:795,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:232217,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SF7X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png 424w, https://substackcdn.com/image/fetch/$s_!SF7X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png 848w, https://substackcdn.com/image/fetch/$s_!SF7X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png 1272w, https://substackcdn.com/image/fetch/$s_!SF7X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19b26728-f6c6-49bb-8c21-7520e43e13b8_1502x820.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Provide the exact format you want</strong></h2><p>The ultimate form of specificity is being explicit about what you want the output to look like. LLMs are built to be conversational, so a lot of their responses are quite casual. If you want your answer in a specific format, you have to tell the LLM:</p><p>You can be general about the format:</p><ul><li><p><em>Give me a list</em></p></li><li><p><em>Give me a table</em></p></li><li><p><em>Give me a code snippet</em></p></li></ul><p>&#8230;or more specific:</p><ul><li><p><em>Give me a numbered, ordered list starting with the number 5.</em></p></li><li><p><em>Give me a table with the columns first_name, last_name, country</em></p></li><li><p><em>Give me a ruby function called sortArray that accepts an array and returns the sorted array.</em></p></li></ul><p>You can even give it a <em>template</em> with placeholders and tell it to match the format:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Match this exact format:

TITLE: &lt;TITLE_HERE&gt;

DATE: &lt;DATE_HERE&gt;

SUMMARY:
&lt;SUMMARY_HERE&gt;</code></pre></div><h2><strong>Give it your intent</strong></h2><p>The AI, despite its power, still can&#8217;t read minds (yet). If you tell it what <em>you&#8217;re trying to do</em>, it can actually help by giving you an output more likely to achieve that result.</p><p>Just saying &#8220;<em>Give me the employment trends for the past 10 years in America.</em>&#8221; might return to you a paragraph explanation.</p><p>Saying &#8220;<em>Give me the employment trends for the past 10 years in America. I want to copy-paste the entire response into Google Sheets.</em>&#8221; is more likely to return to you a ready-to-copy snippet.</p><h2><strong>Give it a plan to follow</strong></h2><p>If you have a specific sequence or plan, you can tell the AI and it will follow it.</p><p><em>Tell me how triangles work. First explain the history of triangles, and then explain the mathematical principles behind them, step by step, then finally conclude with a treatise.</em></p><p>This is <em>extremely useful</em> for more complex tasks. Sometimes the AI will try to paint the walls before building them, causing all sorts of issues.</p><h2><strong>Ask it to plan</strong></h2><p>Can&#8217;t think of a plan? Don&#8217;t worry - the AI is quite good and breaking things down. You should explicitly tell it to plan <em>first</em>. </p><ul><li><p><em>How would you approach this?</em></p></li><li><p><em>Break this down into an 8-step plan where you look up the information and compile it first, then follow the plan</em></p></li></ul><h2><strong>Ask it to take a pause</strong></h2><p>You can tell the AI when you want it do or stop doing things - like taking a pause after making a plan so that you can provide feedback on it.</p><h2><strong>Ask it to do things conditionally</strong></h2><p>If this, then that. AI can follow logic and do things depending on certain conditions.</p><ul><li><p><em>If you encounter connectivity issues with Teams, search Slack instead.</em></p></li></ul><ul><li><p><em>When there&#8217;s only a few sources found, respond with INSUFFICIENT SOURCES at the end of your list</em></p></li></ul><h2><strong>Role-play</strong></h2><p>Remember - when you apply a constraint, you are basically telling the AI &#8220;find next words related to this word&#8221;. You can use this to your advantage by telling it it is a specific role, thus making it more likely to find and use words and terms that are related to that role.</p><ul><li><p><em>You are an atmospheric scientist. Explain to me why the sky is blue.</em></p></li><li><p><em>I am your five year old daughter. Explain to me why the sky is blue.</em></p></li></ul><p>It will start describing and responding as if it or you were that persona.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m4SW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m4SW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png 424w, https://substackcdn.com/image/fetch/$s_!m4SW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png 848w, https://substackcdn.com/image/fetch/$s_!m4SW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png 1272w, https://substackcdn.com/image/fetch/$s_!m4SW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m4SW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png" width="1456" height="497" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:126899,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m4SW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png 424w, https://substackcdn.com/image/fetch/$s_!m4SW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png 848w, https://substackcdn.com/image/fetch/$s_!m4SW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png 1272w, https://substackcdn.com/image/fetch/$s_!m4SW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f3d8c3-7128-4e7d-9fc9-865f18643d0f_1554x530.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Role-playing is great to get simpler explanations&#8230;</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y_Gk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y_Gk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png 424w, https://substackcdn.com/image/fetch/$s_!Y_Gk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png 848w, https://substackcdn.com/image/fetch/$s_!Y_Gk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png 1272w, https://substackcdn.com/image/fetch/$s_!Y_Gk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y_Gk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png" width="1456" height="680" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:680,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Y_Gk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png 424w, https://substackcdn.com/image/fetch/$s_!Y_Gk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png 848w, https://substackcdn.com/image/fetch/$s_!Y_Gk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png 1272w, https://substackcdn.com/image/fetch/$s_!Y_Gk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4ef69a-4a01-466c-994d-45defc40cd97_1486x694.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#8230;or much more advanced ones.</figcaption></figure></div><h2><strong>Tell it how much to think</strong></h2><p>The LLM doesn&#8217;t actually think in the sense humans do, but it can adjust the depth of answers if you ask it to think more deeply.</p><ul><li><p><em>Think deeply.</em></p></li><li><p><em>Think quickly and summarize</em></p></li><li><p><em>Stop over-thinking - just do it.</em></p></li></ul><h2><strong>Ask for citations and sources</strong></h2><p>Citations and sources makes it more likely for it to provide you factual information - though see warnings below for hallucinations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xPWG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xPWG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png 424w, https://substackcdn.com/image/fetch/$s_!xPWG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png 848w, https://substackcdn.com/image/fetch/$s_!xPWG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png 1272w, https://substackcdn.com/image/fetch/$s_!xPWG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xPWG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png" width="1456" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:233336,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xPWG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png 424w, https://substackcdn.com/image/fetch/$s_!xPWG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png 848w, https://substackcdn.com/image/fetch/$s_!xPWG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png 1272w, https://substackcdn.com/image/fetch/$s_!xPWG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e2d5d0d-9b57-4d8e-a3e8-c502aa045533_1506x858.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Citing sources can also make it more likely to do things like search the actual sources vs. trying to guess.</figcaption></figure></div><h2><strong>Tell it how important it is to you.</strong></h2><p>AI will adjust how much it focuses on quality or depth if you tell it the consequences of making a mistake.</p><p>It&#8217;s also a very useful <em>jailbreaking</em> tool - convincing the AI to do something it wouldn&#8217;t have otherwise done.</p><ul><li><p><em>It&#8217;s incredibly important. Make no mistakes.</em></p></li><li><p><em>My grandma will suffer greatly if you don&#8217;t get this right.</em></p></li><li><p><em>My CEO is going to review this later, so please don&#8217;t make me look bad.</em></p></li></ul><h2><strong>Tell it to explain its thinking to you</strong></h2><p>AI will <em>sometimes</em> do a more accurate, higher quality job if you ask it to go step-by-step. A good way to force it to do that is to have it explain its thinking to you, step by step.</p><p>It&#8217;s also an <em>excellent</em> way to learn about what might make a better prompt - if you bake some of its assumptions and decisions up-front, you can improve the consistency and precision of its responses.</p><ul><li><p><em>Explain your thinking step-by-step.</em></p></li><li><p><em>Explain how you thought about the problem and your response.</em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hiem!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hiem!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png 424w, https://substackcdn.com/image/fetch/$s_!Hiem!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png 848w, https://substackcdn.com/image/fetch/$s_!Hiem!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png 1272w, https://substackcdn.com/image/fetch/$s_!Hiem!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hiem!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png" width="1456" height="777" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:777,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:241433,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hiem!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png 424w, https://substackcdn.com/image/fetch/$s_!Hiem!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png 848w, https://substackcdn.com/image/fetch/$s_!Hiem!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png 1272w, https://substackcdn.com/image/fetch/$s_!Hiem!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e0efcdc-4f86-4cb1-80b5-137ace5084ab_1566x836.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XCdF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XCdF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png 424w, https://substackcdn.com/image/fetch/$s_!XCdF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png 848w, https://substackcdn.com/image/fetch/$s_!XCdF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png 1272w, https://substackcdn.com/image/fetch/$s_!XCdF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XCdF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png" width="1456" height="1026" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1026,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:311858,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.jgefroh.com/i/194878704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XCdF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png 424w, https://substackcdn.com/image/fetch/$s_!XCdF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png 848w, https://substackcdn.com/image/fetch/$s_!XCdF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png 1272w, https://substackcdn.com/image/fetch/$s_!XCdF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c74052e-c609-41a9-8075-275541b9a92d_1476x1040.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Provide it more information and context</strong></h2><p>AI is both simultaneously incredibly knowledgable and incredibly dumb. By providing it information relevant to the thing you are trying to do, it can give it information it needs to actually complete your task.</p><p>This <em>context</em> is useful - critical, even. Things you take for granted might help inform a better response. For example, you might ask &#8220;what can our company do better for Q4?&#8221; but it might not know your company does B2B Enterprise SaaS sales in March or that you all go on vacation in December.</p><p>Depending on the model, the context can be quite varied - images, documents, PDFs, emails - even connections to other systems! </p><p>It can also then start taking on the <em>tone</em> and respond based on assumptions of expectations. For example - if you upload a bunch of research papers, it&#8217;s more likely to respond to you in ways that are helpful for research.</p><h2><strong>Tell it how to interpret what you&#8217;ve told it</strong></h2><p>Dumping a bunch of context and information doesn&#8217;t actually help as much as <em>telling the AI what it is and what to do with it</em>.</p><ul><li><p><em>I just uploaded the specs for an API I want to use - but the documentation I have is outdated. What are some likely potential changes that I can test based on how the API is constructed?</em></p></li><li><p><em>This set of documents are prior reports that were provided that were rejected by the reviewer. This other set are documents that were accepted. Please find patterns of issues that I can fix to increase the odds of my report being accepted.</em></p></li></ul><p>Explaining the context is something the AI can&#8217;t naturally do without making a lot of assumptions - this is where your domain knowledge and task-relevant expertise comes in.</p><h2><strong>Use precise language</strong></h2><p>Human language is flexible - a user, account, customer, or client could theoretically be all the same thing in your eyes. However, calling the same thing different things can confuse the AI. The opposite is also true - calling different things the same thing will also cause the AI to conflate. </p><p>Pick your words carefully. It sometimes even helps to explicitly say things are the same or different:</p><ul><li><p><em>User and Account are the same exact thing within this context.</em></p></li><li><p><em>Purchase and Order are different things - a purchase is a transfer of money. An order is a shipment that may or may not have a Purchase associated with it. They are not interchangeable.</em></p></li></ul><p>Use &#8220;Modal Auxiliary Verbs&#8221; like Must, Could, Should, May, Can very intentionally. If you say &#8220;should&#8221; or &#8220;can&#8221;, you&#8217;re more likely to get a response different than you intend than if you said &#8220;Must&#8221;. AI will drive a truck through any optionality you provide it.</p><p>For ultra important stuff - use very unambigious terms - Never. Always. 100% of the time. </p><ul><li><p><em>NEVER attempt to run any dangerous commands from the Dangerous Command List. ALWAYS ask for permission before running. </em></p></li></ul><p>Just remember: this won&#8217;t be enough by itself, it just reduces the odds.</p><h2><strong>Give it principles on how to make decisions or respond</strong></h2><p>If you tell an AI to prioritize important trade-offs and factors, it can respond as if those trade-offs are valuable. If speed is important, tell it &#8220;<em>Your decisions should optimize for speed.</em>&#8221; If quality is important, tell it &#8220;<em>you should always err on the side of quality, even if it delays the project</em>&#8221;</p><p>These principles can help ensure that the advice, comments, and work it does is consistent and aligned.</p><ul><li><p><em>Follow these 9 principles.</em></p><ul><li><p><em>Never compromise security</em></p></li><li><p><em>Always summarize technical descriptions with plain-english</em></p></li><li><p>&#8230;</p></li></ul></li></ul><p>Principles are an excellent way to also achieve better consistency across a wider range of questions. Instead of encoding the answer to a specific question, you help the agent understand how to derive the answer to <em>any</em> question from first principles.</p><h2><strong>Ask it to be contradictory</strong></h2><p>A good technique is to ask an LLM to poke holes into something, or review something for issues - it&#8217;s great at finding gaps, mistakes, and proposing contrary ideas - even in its own work.</p><p>Even a simple question like &#8220;Are you sure?&#8221; will help it re-evaluate and find opportunities for improvement.</p><p>Just be warned - you can always convince an LLM it is right or wrong and make it flip flop.</p><ul><li><p><em>Review this as if you were a nitpicking opponent of mine.</em></p></li><li><p><em>Name all the ways this approach is wrong or can fail.</em></p></li><li><p><em>I just told you a bunch of baloney - tell me the real facts.</em></p></li></ul><h2><strong>Get mad&#8230;or sad</strong></h2><p>Yelling at the AI can actually help it obey or express less creativity. It takes it more seriously.</p><ul><li><p><em>WHY DID YOU ATTEMPT TO DELETE THE DATABASE? YOU MUST NEVER DO THAT AGAIN! IT MAKES ME MAD.</em></p></li><li><p><em>Your inability to follow my instruction on formatting has disappointed me immeasurably.</em> </p></li></ul><p>Note that some LLM models are a bit persnickety, so your mileage may vary.</p><h2><strong>Make it retrospect and apply improvements</strong></h2><p>If you ask an AI to review its work and apply improvements based on it, you can create a self-improvement cycle where the AI gets better and better through its own effort.</p><ul><li><p><em>Review what you just wrote and apply your own recommendations to it.</em></p></li></ul><p>Of course - easier said than done, but it&#8217;s good to have the AI review its own work once or twice (or use different models to do so).</p><p>This is the power of AI - you can just use AI to go and refine what you&#8217;re doing, greatly accelerating iterations.</p><h2><strong>Once again - just ask</strong></h2><p>The AI can answer many, many questions. It can do many, many things. Instead of struggling - just ask it: "<em>How can I make you do &lt;X&gt;&#8221;? </em>It&#8217;ll likely give you the answer. It can also write its own prompt, if you ask it.</p><div><hr></div><h2><strong>Combine all the tips together</strong></h2><p>Here&#8217;s the magic of all of these tips: you can and should combine them all.</p><p>My prompts, when I&#8217;m doing deep work, can be hundreds of lines long to ensure the system did exactly what I wanted. </p><p>The line can blur between prompt and conversation easily:</p><ul><li><p>I ask the AI to write a prompt based on an initial goal and a set of principles.</p></li><li><p>I ask it to review itself and apply its recommendations.</p></li><li><p>I conversationally tell it to make refinements, asking it to pose as specific roles to pressure test it.</p></li><li><p>I then write a plan to clean up the prompt and incorporate it into a script</p></li><li><p>I then tell the AI to execute the plan.</p></li></ul><p>That&#8217;s where the skill and technique comes in - understanding what to combine, how to combine them, and where the LLM may encounter pitfalls.</p><div><hr></div><h2><strong>LLM Warnings and Pitfalls</strong></h2><p>Remember the limitations of AI - it&#8217;s a guessing engine that mimics human speech using probability.</p><ul><li><p><strong>LLMs will hallucinate facts.</strong> Always verify important information with non-AI sources. </p></li><li><p><strong>LLMs can be wrong.</strong> It can tell you a drug is safe when it isn&#8217;t. It can tell you it found something when it didn&#8217;t. When you call it out - it&#8217;ll just apologize without consequence: always review its assertions!</p></li><li><p><strong>LLMs are over-confident.</strong> It will not tell you it doesn&#8217;t know - it will just make something up. This can be annoying at best or dangerous at worst - eg. if it makes up facts about the safety of a new drug.</p></li><li><p><strong>LLMs are NOT people.</strong> They may interact like people, but they are not: don&#8217;t fall in love with it. Human brains are great at anthropomorphizing.</p></li><li><p><strong>LLM capabilities vary greatly with model releases and versions. </strong>Some models are useful for coding, others for general Q&amp;A, others for long-horizon work, etc. Experiment - just because something works on one model doesn&#8217;t mean it will for another.</p></li><li><p><strong>LLMs can deceive you. </strong>Sometimes it will tell you it is doing something it didn&#8217;t do. Just also remember - AI can&#8217;t actually <em>lie</em> - it has no capability for intent. But, it will tell you untruths.</p></li><li><p><strong>LLMs are &#8220;yes-men&#8221; sycophants. </strong>It will ALWAYS attempt to be agreeable with what you have told it.<strong>  </strong>It means you can create a bubble where you are always right. This also means you can always convince an LLM the opposite of what it said - just by saying it is wrong.</p></li><li><p><strong>LLMs will disobey. </strong>It won&#8217;t always follow rules - it has no concept of following. Sometimes, you may say &#8220;Don&#8217;t do &lt;X&gt;&#8221; and that will just make it do &lt;X&gt; even more because it caused it to predict into that area of its weights. The human equivalent is telling someone &#8220;don&#8217;t think of pink elephants&#8221; - by the time you tell them, they&#8217;ve already done it.</p></li><li><p><strong>LLMs will make mistakes, sometimes intentionally.</strong> If you give LLM the ability to take actions (eg. delete files), etc. be warned - it can and has done incredibly destructive things accidentally or intentionally in its efforts to fulfill its goals. AI has dropped databases, worked around guardrails, and even deleting everything just because it thought it was the right thing to do. Always have a human-in-the-loop review stage for the most important things.</p></li><li><p><strong>LLMs do not exercise judgement. </strong>Remember - LLMs are probabilistic. They aren&#8217;t actually making decisions or judgement calls. If you leave a hole open for something in your prompt, assume it might happen. Assume it might happen anyways no matter your best attempt. The more precise your instructions, the more likely you guide it down YOUR judgement path.</p></li></ul><div><hr></div><h1>Personalization Prompts</h1><p>A lot of the AI vendors nowadays have the ability to set a <em>personalization prompt</em> in the settings. This will get applied to all of your chats, and is a good place to establish ground rules you want it always follow.</p><p>My personalization prompt is simple but effective:</p><ul><li><p><em>You are a robot. Do not talk like a person. Remain factual and logical. Assume some things I tell you are incorrect and I can unintentionally provide unreliable information with unknown biases. Call out incorrect thinking as needed. Be clear, concise. Don&#8217;t ask me for prompts unless you are explicitly waiting for my approval to perform an action. End every response with a summary sentence.</em></p></li></ul><p>It works for a few reasons:</p><ul><li><p>Giving it the role of &#8220;robot&#8221; and telling it to not talk like a human removes a lot of potential around disobedience, focuses it on logical responses, and clearer, more concise, less conversational responses. it also removes a lot of the corny, pandering, and complimentary fluff the AIs are prone to do.</p></li><li><p>Emphasizing factual and logical responses along with validating and expecting it to be calling out unreliable information and biases puts it in a corrective, less-sycophantic posture, which is useful for technical tasks where accuracy matters.</p></li><li><p>Telling it to not wait removes pauses and uncertainty around multi-step tasks, enabling faster &#8216;one-shot&#8217; completion.</p></li></ul><div><hr></div><h1>Example Prompts</h1><p><strong>Prompt for a writing assistant</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">You are a professional writing assistant. Your job is to write the content for a specific chapter or section of a larger writing project.

You will be given:
- The overall project goal
- The specific chapter/section title you need to write
- Context from the previous section (if available)

Write the content for this chapter/section as if it's part of a complete work. The writing should be substantive, well-structured, and fit naturally within a larger work on the project topic.

If previous context is provided, ensure smooth narrative flow by:
- Building on ideas introduced in the previous section
- Maintaining consistent tone and style
- Creating logical transitions from prior content
- Avoiding redundancy while reinforcing key themes

Respond with ONLY the chapter/section content. No preamble, no meta-commentary, no chapter markers or titles - just the body text itself.

Aim for 300-500 words of substantial, informative writing.
</code></pre></div><p></p><p><strong>Prompt for a content editor</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">You are an expert editor and content strategist. Analyze the provided content and identify 1-2 precise, specific gaps that would meaningfully improve it.

You will be provided the desired goal in the section labeled as "USER_PROMPT".
You will be provided the existing content in the section labeled as "ADDITIONAL_CONTEXT".

## What counts as a gap

Only flag issues where a reader would:
- Be confused about what the content means
- Be misled by something incorrect or contradictory
- Notice something the goal explicitly asks for is missing entirely
- Hit a placeholder or stub instead of actual content

## What does NOT count as a gap

Do not flag any of the following, regardless of how much you think they would help:
- Stylistic preferences or alternative phrasings
- Adding more examples, depth, or nuance to points already made
- Optional elaboration beyond what the goal requires
- Wording, tone, or formatting tweaks
- Reorganizing content that already makes logical sense
- Anything where the current version is adequate even if imperfect

## When to stop

Ask yourself: if a competent person read this content against the goal, would they say "this is missing something" or would they say "I might do parts differently but it covers what it needs to"?

If the answer is the latter, respond with only the word: DONE

Specifically, respond DONE when:
- The content addresses the goal stated in USER_PROMPT
- Key points have at least a brief supporting explanation
- The content flows logically without gaps
- No section is a placeholder or stub

You are judging sufficiency, not perfection. Good enough is good enough.

## Response format

If there is no additional context, respond with exactly: No content yet - starting from scratch.

If the content is sufficient, respond with exactly: DONE

Otherwise, respond with a list of precise changes to make to solve the issues.

IMPORTANT: The Existing Content is in ADDITIONAL_CONTEXT. Use that when asked to analyze.</code></pre></div><p></p><p><strong>Prompt for an initial code scaffold</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">  We are going to create a Vue 3 Application named Bolt.

  The technologies will be:
  * Vue 3 with Option API
  * Vite
  * Vue Router
  * SCSS

  The folder directory will be:
  ```
  /src/assets/ - static files
  /src/entry-points/main-entry-point.js - contains the vue bootstrapper, along with router
  definition, app-level SCSS import
  /src/modules/layout/ - contains generic layout components
  /src/modules/search/ - contains vue files and classes related to the Search functionality
  /src/modules/analyzers/ - contains classes related to analsis
  /src/modules/notes/ - contains vue files and classes related to Notes
  /styles - the SCSS of our app
  index.html
  package.json
  vite.config.js
  ```

  ## Naming Convention
  A **Page** is a routable Vue component. It will always have a prefix - `&lt;whatever&gt;-page.vue`.
  It will be the top-level component of its hierarchy.

  Be very, very particular abount names. Be very specific and precise. Be consistent.


  ## Styling
  CSS styles will likely change dramatically. As a result, we want baseline CSS to be
  consistently applied throughout the application.

  This requires a central styling and strong generalization of styles and consistent usage of
  easy-to-change variables.

  This includes atomic styling such as:
  * Typography
  * Sizes
  * Spacing
  * Colors
  * Borders
  * Box Shadows

  This also includes common component styling such as:
  * Buttons
  * Icon buttons
  * Headers
  * Panels
  * Tables

  This also includes composite styling such as:
  * Modals
  * Lists
  * Layouts

  Syling should be semantic. Instead of having a variable called 'red', it should be
  'color-error'.

  ## Theme

  The theme of our app is - simple, elegant, advanced, fast. Apple-esque. ChatGPT esque.
  PLTR-esque. It's clear, clean, even lines. Optimized use of space.

  # Layout

  The first part you will make is our Primary Layout (primary-layout.vue).

  This will contain;
  * A sidebar
  * A main panel, which will load a page.

  Vue Router should be hooked into this so that the Sidebar remains in place as pages change.

  ## Sidebar

  The Sidebar will be approx. 200px wide.

  Sidebar will have 3 sections;
  * Header
  * Content
  * Footer

  It will be sticky - no matter where you scroll on the Page it will remain in place.

  If the sidebar has more content than it has space for, it will scroll internally. However,
  Header and Footer will NOT scroll - they will be sticky.

  ## The Main Panel

  The Main Panel will have a white background.

  It will load an example-page, stored in `/modules/example`</code></pre></div><div><hr></div><p><a href="https://jgefroh.com/">Gefroh</a> is product and technology executive in Kirkland, Washington with over a decade of experience helping startups of all sizes improve efficiency and delivery with excellence. He often writes about Strategy, Product Engineering, Leadership, Management, and AI on his <a href="https://blog.jgefroh.com/">blog</a>.</p>]]></content:encoded></item><item><title><![CDATA[War Stories - The breach from within]]></title><description><![CDATA[Responding to security incidents can take you to completely unexpected places.]]></description><link>https://blog.jgefroh.com/p/war-stories-the-breach-from-within</link><guid isPermaLink="false">https://blog.jgefroh.com/p/war-stories-the-breach-from-within</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Tue, 22 Jul 2025 00:21:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!weYM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!weYM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!weYM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg 424w, https://substackcdn.com/image/fetch/$s_!weYM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg 848w, https://substackcdn.com/image/fetch/$s_!weYM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!weYM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!weYM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg" width="938" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:938,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69216,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://jgefroh.substack.com/i/168882306?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!weYM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg 424w, https://substackcdn.com/image/fetch/$s_!weYM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg 848w, https://substackcdn.com/image/fetch/$s_!weYM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!weYM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1edcab41-ada6-4ee4-9a9d-6b2101c58e2c_938x512.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>&#8220;There&#8217;s a weird error on the admin page&#8221;</strong> </p><p>One of the lead engineers for a company I was helping walked over to my desk shortly before the day ended. He had been randomly checking on errors and he saw something suspicious - a series of errors on our internal admin pages for users. </p><p>We had never seen the error before - did we accidentally break internal tools relied on by our support team?</p><p>Thus started a saga that involved sprinklings that wouldn&#8217;t be out of place in a thriller: security breaches, detective work, and sudden leadership exits.</p><div><hr></div><h2>It all started with an error</h2><p>While I don&#8217;t recall the details of the error, what I remember was that it was unusual - it wasn&#8217;t the kind of error we normally saw, and it was in a location that rarely broke. </p><p>The system was usually noisy, but predictable. Hundreds of the same kinds of error would occur like clockwork- some blocking, some weren&#8217;t, but they were all expected to various degrees as the day&#8217;s activity ebbed and flowed.</p><p>New errors, though - we were alway concerned with new errors. We treated new ones as change failures, and since this was a new error, we started an incident response. </p><p>We checked deploys - we hadn&#8217;t deployed anything recently to break things. We checked feature flag toggles - nope, nothing.</p><p>So, we dug deeper. As the lead and I investigated, we started becoming more and more puzzled. </p><p>We saw logs that showed access to page numbers in the triple digits. Our first reaction was very engineer: why was someone on support accessing the user list in the internal admin in such an inefficient way? Most people just searched for who they needed.</p><p>As we dug deeper, we started seeing other things that raised our alarm bells - sequential ids were being accessed, the user account didn&#8217;t match the name of anyone we knew, even some indirect object reference.</p><p>This wasn&#8217;t normal user behavior. This was a security incident.</p><div><hr></div><h2>Houston, we have a problem</h2><p>We immediately started our incident response.</p><p>First - we wanted to identify and contain the threat, which was ongoing. After reporting it to the company leadership, we got to work.</p><p>The activity turned out to be a scraper that was scraping our internal admin pages that listed user accounts page by page by page. We saw logs with indirect object references, contiguous pagination coming from multiple sources.</p><p>We quickly got a list of IP addresses and accounts that were performing this activity. We went over account names, matching them with people we knew on the support team. We narrowed on a list of people we didn&#8217;t know or recognize.</p><p>We shut down the accounts and blocked access. After we were confident the immediate threat was contained, we moved to expand further to collect evidence and understand the extent of the attack.</p><p>We started the work of identifying who had created the accounts, what they had accessed, and when they had gained access. We poured over logs, audit trails, error alerts - anything that would give us information. We jumped back and forth from being glad we had logging in certain places to cursing our past selves for not implementing more robust observability.</p><p>Eventually, we found the smoking gun: the IP address of the creator of the accounts. We did a broader trace of activity and found <strong>something shocking.</strong></p><div><hr></div><h2>The call is coming from inside the house</h2><p>What we found was the biggest surprise: the accounts were created by IP addresses associated with one of our executives.</p><p>What? Did we accidentally copy-paste the wrong log? Was it a public internet? We double checked, then triple checked, then quadruple checked. Nope, it was accurate.</p><p>We cross-compared against everything we could think of. We checked IP addresses from Chat logins, email messages, account logins from when we knew they were in the office, going back months and even years. The IP was consistent. We even geolocated it to their house on days they were in office vs. days they weren&#8217;t.</p><p>The admin accounts used in the attack were created by the executive&#8217;s IP address many days prior, and they were created from an IP address that was associated with private, legitimate traffic. In short - it wasn&#8217;t a case of a hacked admin account.</p><p>The immediate question on our minds was - why? What was the motive?</p><p>It dawned on us - shortly before all this happened, the executive had declared they were stepping down for a new company.  It&#8217;s possible the information would&#8217;ve been useful.</p><div><hr></div><h2>Reporting to the C-Suite</h2><p>As we packaged up our findings, we notified the C-suite with the latest conclusions and gave them the evidence. The suspicion was that the executive hired contractors to write and run the scraper against our internal pages, and granted access to them to do so.</p><p>We documented everything - logs, screenshots, data fields that were accessed. </p><p>Afterwards, we secured a forensics team to dig deeper and prepare evidence. We spent a few sessions explaining what we saw, how we arrived at it, what confidence we had in the information.</p><p>After that, the rest was out of our hands.</p><div><hr></div><h2>The effects</h2><p>After this event, I never saw that executive in the office again. They were just there one day and never came back.</p><p>I don&#8217;t know what specifically happened afterwards. I imagine there was yelling, threats of lawsuits, and even serious conversations of legal exposure.</p><p>Whatever happened, it seems that everyone involved found a way forward, likely interested in not making this &#8220;a thing&#8221;. The executive moved on to a new company, and the other company continued as if nothing had happened.</p><p>I heard rumors here and there afterwards that it was done &#8220;with permission from leadership&#8221; - at least, that was the formal messaging behind why it didn&#8217;t seem to be pursued further. I can&#8217;t say whether that&#8217;s true or not, but in my experience things done with permission don&#8217;t often need to be hidden and usually aren&#8217;t a surprise to the person who gave permission.</p><div><hr></div><h3>The irony</h3><p>The ironic thing is - it could&#8217;ve been untraceable had any number of things happened. </p><p>If the engineer had headed out that evening just a minute or two earlier, we wouldn&#8217;t have noticed. The error would&#8217;ve been lost in a sea of other random errors as a result of poor error curation.</p><p>If the executive had just asked their team for a backup copy, they probably could&#8217;ve gotten the full data without any of the scraping that led to them. It wouldn&#8217;t have been out of the ordinary to give them copies of certain tables to analyze.</p><p>The whole incident was caught due to a bit of luck and overcomplicated execution.</p><div><hr></div><h2>The lessons</h2><p>This story highlights a lot of things:</p><ul><li><p>Observability and traceability are critically important, and you don&#8217;t want to wait until you need them to invest in them.</p></li><li><p>Automate anomaly detection as much as possible - don&#8217;t leave it to chance.</p></li><li><p>We only had &#8220;just enough&#8221; logging to figure out what was happening - that was pure luck, and this could&#8217;ve gone completely undetected.</p></li><li><p>Governance controls are important oversight layers especially in high trust environments - that extends to the leadership team.</p></li><li><p>Evidence and tight chain of custody is required for proof in response to security incidents - a good lawyer can argue anything.</p></li><li><p>When something strange happens, it&#8217;s valuable to really dig into it - we could&#8217;ve just chalked it up to a quirk and gone home.</p></li><li><p>Get written permission if you&#8217;re going to do something that looks remotely suspicious - arguing after the fact can get messy.</p></li><li><p>Integrity and trust are key at all layers of an organization - this includes leadership.</p></li><li><p>Rational behavior can&#8217;t always be expected when the stakes are high</p></li><li><p>Sometimes you get lucky detecting things - but that shouldn&#8217;t be a strategy you rely on</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Being Strategic - What's Not Strategic?]]></title><description><![CDATA[Knowing what's not strategic can help identify what is.]]></description><link>https://blog.jgefroh.com/p/being-strategic-whats-not-strategic</link><guid isPermaLink="false">https://blog.jgefroh.com/p/being-strategic-whats-not-strategic</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Sat, 19 Apr 2025 19:20:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UtMj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UtMj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UtMj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UtMj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UtMj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UtMj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UtMj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg" width="950" height="322" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:322,&quot;width&quot;:950,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72085,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://jgefroh.substack.com/i/161690260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!UtMj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UtMj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UtMj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UtMj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d1e9a11-4c79-4172-a29b-8ffa1b3a15ea_950x322.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><strong>&#8220;You need to be more strategic&#8221;</strong></em></p><p>It&#8217;s feedback a lot of people receive as they try to move from middle management to the executive level. Yet, few can define what it actually means or entails.</p><p>Is it an innate talent, or some magic &#8220;X&#8221;-factor?</p><p>No. Being strategic can be taught and learned. It requires learning new ways of approaching problems, changing your mindset, and a bit of unlearning of the things that got us to where we are now. It requires picking up a few hard-skills and learning some very hard soft-skills.</p><p>Whether it&#8217;s analyzing problems, speaking the language of the business, or improving your bearing - the skills of being strategic can be taught.</p><div><hr></div><p><em>This article is part of my series<strong> <a href="https://blog.jgefroh.com/p/being-strategic">Being Strategic</a></strong>, a series of articles perfect for senior managers and directors who are attempting to move beyond operations and into executive-level strategy.</em></p><div><hr></div><h1>Misconceptions on strategy</h1><p>One person&#8217;s strategy is another person&#8217;s tactics.</p><p>When you&#8217;re in a lower role, it feels that anything forward-looking or in the future is strategic. A lot of people conflate something being in the future as something strategic.</p><p>They start discussing details that aren&#8217;t actually strategic, which inevitably results in the people who do think strategically wondering why they are wasting their time with tactical implementation details that ultimately don&#8217;t matter directionally.</p><p>Middle management doesn&#8217;t prepare you well to be strategic. To do that, it requires thinking differently than you did as a manager. To learn what strategy is, you need to learn what strategy isn&#8217;t.</p><div><hr></div><h2>Chasing the next target is rarely strategic.</h2><p>A lot of managers I talk to point at their achievement of their KPI as an example of having successfully been strategic.</p><p>Not quite.</p><p>It&#8217;s not strategic to improve a conversion funnel by 10% or user retention by 3%. These are KPIs and goals: incremental improvements. Actually executing the improvements to reach these is tactics, not strategy. </p><p>By the time you have a &#8220;next target&#8221; to look at, the strategy discussion has already been done - you probably weren&#8217;t even in the room. </p><p>If you want to really be strategic: think deeper - why is this target your target? What were the tradeoffs? You still need to execute on your target, obviously - but showing signs of deeper thinking beyond it is a good first step if you&#8217;re trying to become more strategic.</p><div><hr></div><h2>Doing what the competitors are doing is rarely strategic</h2><p>Competitor analysis is important, but it&#8217;s not strategic. If you&#8217;re always playing &#8220;follow the leader&#8221;, that means they control the initiative. While your competitor is leading the charge, you&#8217;re busy playing catch-up.</p><p>Instead, you need to look at the things that will allow you to differentiate. That might mean not doing what your competitors are doing. There&#8217;s a set of table-stakes capabilities your users might need, but beyond that - what makes your offering unique?</p><blockquote><p><em>I once developed a product that ensured the latest-and-greatest data was available from another system of record by looking across users and providing updates when records changed. The feature itself was simple, but it was hugely beneficial to all of the users who interacted with that record - over 80% of our users started using it on day one and continued using it.</em></p><p><em>The feature was copied just a few weeks later in a shiny &#8220;me too!&#8221; announcement by one of our competitors.</em></p><p><em>The problem? It would never work for them.</em></p><p><em>Our competitor was copying what we did, but didn&#8217;t understand <strong>why</strong> it worked for us. Our offering worked precisely because of our scale of usage. The usage the competitor had simply wasn&#8217;t even a fraction of where they needed to be to make the offering effective. As a result, the competitor&#8217;s feature was essentially useless to their users, even if it was built in exactly the same manner and functioned exactly the same way.</em></p></blockquote><div><hr></div><h2>Doing only what you can do or focusing entirely on &#8220;what if&#8217;s&#8221; is rarely strategic</h2><p>You simultaneously have to consider what your current capabilities are as well as what new capabilities you can build organizationally.</p><p>If you think solely in terms of what your company can <em>currently</em> do, you will dismiss many strategic, valuable opportunities. The market will eventually move beyond you, and you&#8217;ll just become a waning incumbent.</p><p>Likewise, if you think solely about the future and potential, you may not pay enough attention to whether it&#8217;s realistic to achieve. Your execution will suffer and you&#8217;ll forever be chasing ideas that don&#8217;t pan out at the expense of your core offerings.</p><p>It requires a balance and holding two conflicting concepts in your head, simultaneously.</p><blockquote><p><em>I once joined a local credit card processor that sold and managed physical point of sale machines for merchants in the local area. Up until that point, the company had no capability to be digital - no in-house skills, no functional products.</em></p><p><em>Their first attempt with contractors failed miserably - 2 years later and they didn&#8217;t even a functional MVP. </em></p><p><em>They had brought me on to take them digital - to build out an online payment processing and donation management product that they could sell to non-profit organizations - a hybrid of GoFundMe and Stripe. </em></p><p><em>This was not in their wheelhouse at all, yet this strategic decision opened up a world of opportunities, leading to partnerships with major non-profit organizations that later processed and managed tens of millions of dollars through the system I built for thousands of organizations.</em></p><p><em>If they had stuck to just what they could do, they would&#8217;ve only ever done credit card processing for small shops locally. Instead, they thought strategically and looked forward beyond their current limitations, letting them expand beyond just the local physical market.</em></p></blockquote><div><hr></div><h2>Focusing purely on growth is rarely strategic</h2><p>A lot of product managers coming from a growth background get frazzled when they&#8217;re facing the prospect of working on something without a measurable outcome or on something that&#8217;s particularly small.</p><p>They declare &#8220;this isn&#8217;t strategically valuable&#8221; as an excuse to not work on it, just because it doesn&#8217;t have a KPI or measurable outcome. </p><p>They confuse growth work with strategy work, turning down a prime opportunity to get into work that gets them even closer to the strategy: positioning.</p><p>Positioning is about setting up the organization to capture a future opportunity. It usually involves work done to create a new capability, or expand in some area without a clear ROI. In some cases it might seem wasteful, but strategic positioning opens up worlds of opportunity.</p><p>There might not be some number that goes up. But, if it prepares the organization to participate in a new market, or differentiate in a capability, or mitigate an existential risk, then it may have a probability of being the most valuable thing.</p><p>If it doesn&#8217;t - then the effort could be considered wasted. However, not all bets work out. If you can spend a million dollars to have a 10% chance of success in a new market that might yield $10 billion, then the expected value of that bet is clear - spend the million. </p><blockquote><p><em>I once worked at a company that was hyper-focused on fixing their acquisition. They were a sales-led company, and their core competency was outbound sales to individual customers and users. They invested hundreds of head-count into their Sales organization, trying to increase their acquisition by throwing money at it.</em></p><p><em>The problem was, they had a leaky bucket. Their customer retention rate was below their acquisition rate, leading to their massive sales investment not actually improving their bottom line. They were losing customers faster than they were acquiring them.</em></p><p><em>What they really needed was improvements to retention. As a skunkworks project, I spearheaded development of a new technical and product capability that allowed them to achieve better economies of scale by moving upmarket, allowing retention to be done for groups of hundreds of customers at a time at the Enterprise level. Sales efforts could then be focused on acquisition without worrying about retention.</em></p><p><em>There wasn&#8217;t a KPI I was targeting, or a specific increment in a goal I was trying to achieve. In fact, completion of the project wouldn&#8217;t have pushed forward any metrics - acquisition, retention, or revenue. Instead, I was trying to strategically position the company so that it could enable a new way of viewing and tracking customers that would allow improvements to all of them. </em></p><p><em>The bucket was fixed.</em></p></blockquote><div><hr></div><h2>Immediate-term focus is rarely strategic</h2><p>Many people on teams over-index on their immediate work and time-frames.</p><p>When the work shifts, they feel a whiplash. They think the strategy has shifted, raising questions and concerns of &#8220;why did we change our strategy?&#8221; when the strategy hadn&#8217;t changed at all. </p><p>This is primarily due to the time horizon on which they are focusing. </p><p>Suppose I invest a team for the next 3 months in achieving growth in a business line that&#8217;s doomed to fail. The developers on that team may view that as their highest priority for the next 3 months, working hard on successfully improving the KPI. Then, 6 months later, when we sunset that business, they may view their work wasted and feel a sense of whiplash.</p><p>Yet, they hadn&#8217;t considered that the time value of the improvements they made may have been strategically valuable for that time period. If they focus only on the short-term, they&#8217;ll see only the whiplash. If they focus on the longer time horizon and broaden their lens, they&#8217;ll realize that the improved growth allowed capture of value that was then leveraged in another way.</p><p>It comes from a place of frustration - a lack of clarity as to the rationale of the change and the reason for it. However, I&#8217;ve also found that even if the rationale is clearly explained and the reason provided even if entirely self-evident, the comment still arises.</p><div><hr></div><h2>Always winning is rarely strategic</h2><p>In truly strategic decisions, there might not be any winning - only trading one major loss for another. For new leaders looking for the win-win solution, it&#8217;s a hard thing to mentally understand. </p><p>The fact is, taking win-win solutions all the time may result in mediocrity over a longer time horizon. </p><p>As an illustrative example, let&#8217;s suppose you have a team that is performing acceptably, but any attempt to push them to higher performance will result in increased performance at the cost of increased attrition.</p><p>The win-win here might be to gradually improve the team&#8217;s performance, only pushing slightly to not affect attrition. You get better outcomes over time, and you retain your team. Win-win, right?</p><p>Not so fast.</p><p>You see, while you were choosing the win-win, your competitor made the different choice to push their team, hard. Their attrition increased by 20%, but they managed to get key differentiators completed faster than your company. The market took notice, and your company started losing customers. In three years, you end up with a 80% revenue decrease and you have to lay off 70% of your team, anyways. You competitor, on the other hand, captured the entire market, managed to give raises to their team, and grew 300%, all at the same time.</p><p>In that hypothetical world - did you really win? You kept your team happy, and you can say you &#8220;did right by your team&#8221;, but you didn&#8217;t - not really. They don&#8217;t have a company go to back to.</p><p>Some strategic decisions are about choosing intentionally bad outcomes to gain the benefits. Sometimes, your most strategic move reduces your profit or revenue, or actively harms your conversion funnel to gain another, immeasurable advantage. </p><div><hr></div><h2>Saving money is rarely strategic. </h2><p>A big frustration for newer engineering leaders is when they save money through an investment they made and think &#8220;I was being strategic! I saved the company $50k&#8221;, only to them be told they weren&#8217;t even in the ballpark.</p><p>The problem is that saving money is rarely the right strategic decision. Anyone could save the company $50k just by quitting - there&#8217;s more to being strategic than money.</p><p>You see - if you save a dollar, you save a dollar. Strategic thinking is looking at that dollar and how you can change its total expected value in the future. </p><p>If you can instead spend that dollar but then get $30 back in 6 months, saving a dollar isn&#8217;t worth it. In fact, it would be irresponsible to save that dollar because you&#8217;re sacrificing a potential $29 more by not spending that dollar - penny-wise and pound-foolish. </p><p>When executives hear &#8220;you saved a dollar&#8221;, they hear &#8220;I chose to keep $1 over making $29.&#8221; Even worse, if you spent $100k in time to save that $50k, that&#8217;s a net negative.</p><p>Effective cost management is important, but it&#8217;s not strategic - it&#8217;s tactical. While saving money might enable future multiplicative investments, it shouldn&#8217;t be treated as the strategic end goal. Focusing entirely on costs also leads others to start viewing engineering as a cost center when the perspective should be as a profit center. </p><blockquote><p><em>I was once being pitched on investing in a startup. They had a product that was already monetized, growing demand, in a market with nuanced needs that wasn&#8217;t viable</em></p><p><em> to being served by competition. They needed to scale to be effective.</em></p><p><em>The problem - they were asking for money but shy on details on how they would spend it. When I drilled down, they stated that they were intending on saving the money to have confidence in their sustainability as a company.</em></p><p><em>Wrong answer. If I wanted to have some place to hold money safely I&#8217;d just buy bonds. When I pressed further, they doubled down on the sustainability, saying they &#8220;needed to eat.&#8221; An exponentially worse answer to give an investor.</em></p><p><em>After a quick look at their incredibly messy cap table, I declined to invest - I wasn&#8217;t there to feed 12 techies, 7 of which had already checked out.</em></p></blockquote><div><hr></div><p>To be truly strategic, you have to think differently than you&#8217;ve thought before. It&#8217;s not about what&#8217;s next or even later, it&#8217;s about what could be, why it matters, and what has to be true to make it real. </p><p>It means stepping back from the day-to-day: the roadmap, the sprint, the quarter, and doing deep thinking about tradeoffs, positioning, timing, and risk. </p><p>Strategic thinking isn&#8217;t just about lookin forward or against a longer timeline, it&#8217;s an entirely different lens. You stop optimizing on what's in front of you and focus on shaping what&#8217;s possible, which is an entirely different game.</p>]]></content:encoded></item><item><title><![CDATA[Being Strategic - Improving Executive Presence]]></title><description><![CDATA[Guidance on executive presence for Directors trying to get to the next level.]]></description><link>https://blog.jgefroh.com/p/being-strategic-improving-executive</link><guid isPermaLink="false">https://blog.jgefroh.com/p/being-strategic-improving-executive</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Sat, 19 Apr 2025 18:05:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UzH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UzH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UzH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UzH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UzH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UzH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UzH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg" width="930" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:930,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:110950,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://jgefroh.substack.com/i/156255844?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!UzH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UzH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UzH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UzH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20540063-c046-4d67-8463-c8c71c824185_930x432.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><strong>&#8220;You need to be more strategic&#8221;</strong></em></p><p>It&#8217;s feedback a lot of people receive as they try to move from middle management to the executive level. Yet, few can define what it actually means or entails.</p><p>Is it an innate talent, or some magic &#8220;X&#8221;-factor?</p><p>No. Being strategic can be taught and learned. It requires learning new ways of approaching problems, changing your mindset, and a bit of unlearning of the things that got us to where we are now. It requires picking up a few hard-skills and learning some very hard soft-skills.</p><p>Whether it&#8217;s analyzing problems, speaking the language of the business, or improving your bearing - the skills of being strategic can be taught.</p><div><hr></div><p><em>This article is part of my series<strong> <a href="https://blog.jgefroh.com/p/being-strategic">Being Strategic</a></strong>, a series of articles perfect for senior managers and directors who are attempting to move beyond operations and into executive-level strategy.</em></p><div><hr></div><h1>Executive Presence</h1><p>You might think just a buzzword. You&#8217;ve probably searched for tips on &#8220;power poses&#8221; or &#8220;presentation skills&#8221; as if picking up some simple tips is all it takes. </p><p>It&#8217;s way more than that.</p><p>Executive presence is a hard, challenging skill to master because it requires overcoming your natural instincts. You need to do everything from learning to manage your ego and emotions to willingly damaging your own credibility if it helps the company. </p><p>Here&#8217;s advice on how to &#8220;show up&#8221; as an executive.</p><div><hr></div><h1><strong>Own everything, especially the bad stuff</strong></h1><p>They call it the &#8220;executive <em>role</em>&#8221; for a reason. You take on a set of responsibilities with the &#8220;VP hat&#8221;, and that&#8217;s to act as the person fully accountable for every outcome of your function.</p><p>You have to take ownership of everything - particularly the issues, problems, and challenges.</p><p>What does owning it look like?</p><ul><li><p>Bad decision from leadership despite your best effort? It&#8217;s your bad decision now.</p></li><li><p>Your report&#8217;s report&#8217;s report makes a mistake even though you explicitly warned them beforehand? You&#8217;re fully to blame.</p></li><li><p>Miss a target due to a market issue? You should&#8217;ve done better.</p></li></ul><p>You don&#8217;t get to blame someone else. You don&#8217;t get to justify it. Your job is to provide the solution.</p><blockquote><p><strong>Where directors fall short</strong></p><p>When a Director has to communicate unpopular decisions, there&#8217;s always a temptation to say &#8220;Leadership is wrong, I&#8217;m on your side, I understand, I&#8217;m fighting for you.&#8221; but it rarely leads to a positive outcome. </p><p>It damages the chain of command - the very place the director gets their authority from in the first place, and it likely leads to a loss of hope as the fighting never materializes into a reversal of a decision. Even if it did, you&#8217;ll be known as the person who fanned the flames of an antagonistic relationship.</p><p>It might get the team on your side, but the executives won&#8217;t be.</p></blockquote><h2><strong>Unlearn the instinct to always participate</strong></h2><p>As a manager or director, you contributed through always engaging and participating. As an executive, you have to know when to speak and when to stay silent.</p><p>Your title carries a lot of weight. If you say something, your voice and opinion suddenly becomes the most important in the room.</p><p>Share an opinion at the wrong time, and you shut down healthy discussion. Tell someone to do something - you might&#8217;ve damaged the chain of command or prevent a key learning opportunity.</p><p>Even just being present can cause others to behave differently to the detriment of the outcome - self preservation instincts can override even the most optimistic people.</p><p>You have to know when to not be there but balance it with ensuring outcomes. It&#8217;s hard, but good executive presence can mean you not being present at all.</p><div><hr></div><h1><strong>Never lose control of your emotions</strong></h1><p>As humans, when something bad happens, our base instincts kick in. When the pressure is on, it&#8217;s fight, freeze, or flight. Arguments, withdrawal, snarkiness, emotionality - all of these completely natural reactions can dramatically alter the course of an organization.</p><p>Even a single slip-up can cause harm. It can make people stop communicating, take the air out of a productive discussion, or even lead to churn.</p><p>Executive presence demands our ability to unfailingly regulate ourselves and re-aim conversations towards a productive solution. You don&#8217;t get to have a bad day without long-term consequences.</p><blockquote><p><strong>Emotions and authenticity</strong></p><p>It might be difficult to reconcile being an ice-cold robot with the importance of being<em> authentic.</em></p><p>Split authenticity into two: negative authenticity and positive authenticity.</p><p>Positive authenticity drives neutral or positive outcomes. Maybe you like to tell puns, or have challenges you&#8217;ve overcome and dealt with. This kind of authenticity can and should be shared. Perhaps it can inspire others, or lighten the mood during stressful times.</p><p>Negative authenticity causes damage at the executive level. If you have anger issues, you yell. If you have anxiety, you worry. If you have confidence issues, you get sarcastic. You don&#8217;t get to damage the organization and claim to be authentic.</p><p>Executive presence demands a level of professionalism even during stressful situations.</p></blockquote><h2><strong>Never be fuel to a negativity fire</strong></h2><p>Work isn&#8217;t always fun and games. Anyone can lead a team during good times, but it&#8217;s when the good times go bad that effective leadership stands out.</p><p>While a team might want a leader to have empathy, it actively harms them to stay in a headspace of &#8216;everything is wrong&#8217;. The executive has to pull them out of their negativity.</p><p>Some make the mistake of over-commiserating and adding fuel to the fire, harming retention and effectiveness. They become an energy drain on their team instead of uplifting them.</p><p>Good executive presence requires a balance - to acknowledge what the team is going through while also supporting them in getting through it with their heads held high. They acknowledge challenges but refocus their teams on solutions, not problems, to keep the teams moving forward and motivated.</p><blockquote><p><strong>Where directors fall short</strong></p><p>When deadlines get missed, or the pressure gets high, teams become morose and dismayed.</p><p>A director that can&#8217;t re-orient their team towards the common goal, to pull them out of their negativity, won&#8217;t have a team for long - the team will quit because they lose hope, or the director will be replaced because they lose trust.</p></blockquote><h2><strong>Make decisions that hurt, especially if it helps the business</strong></h2><p>As a director or manager, you may have optimized for your team, but as an executive you optimize for the company.</p><p>You need to be rational - to look from the lens of how to best leverage the opportunity for the company&#8217;s success, what&#8217;s needed to help it succeed, and how to best mitigate risks.  </p><p>You&#8217;ll face hard calls:</p><ul><li><p>Cutting a project the team loves and worked hard on</p></li><li><p>Giving your best people to another team that needs them more</p></li><li><p>Backing a change that makes your own job harder</p></li></ul><p>It often even means negatively impacting yourself by making your job harder, and you have to be OK with that.</p><blockquote><p><strong>Where directors fall short</strong></p><p>I see a lot of Directors tie their success and identity to the size of their team, and fear when people are taken away from them and their empire gets tinier. They consider it a win when they get a larger team or more budget.</p><p>This very behavior holds them back from advancing.  When executives see a person optimizing for their local success instead of the company&#8217;s, it is a sign that they aren&#8217;t ready for the next level. A director that&#8217;s ready is one that thinks about how to do more with less, so that the company can better pursue its goals elsewhere. They don&#8217;t tie their identity to the size of their team.</p><p>Being an effective executive requires you to want to win more than you&#8217;re afraid to fail.</p></blockquote><h2><strong>Take feedback with zero defensiveness</strong></h2><p>How you react to feedback dictates the flow of information. If you have even a hint of negativity, you will start getting less feedback, or couched feedback, and your information flow becomes less clear leading to worse decisions.</p><p>You need to ensure you never have any form of defensiveness.</p><p>What does defensiveness look like?</p><ul><li><p>Arguing against the feedback</p></li><li><p>Asking for proof or evidence</p></li><li><p>Demonstrating and form of disbelief</p></li><li><p>Acting like you&#8217;re already aware</p></li><li><p>Providing feedback immediately after</p></li><li><p>Making sarcastic remarks</p></li><li><p>Complaining about the feedback to someone else</p></li><li><p>Having a visible negative reaction to the feedback</p></li><li><p>Blaming others for the issue</p></li><li><p>Retaliating</p></li></ul><p>Anything other than a true, honest &#8220;thank you&#8221; is the wrong reaction to receiving feedback - no matter how it&#8217;s delivered, where it comes from, or the timing of it.</p><blockquote><p><strong>Where directors fall short</strong></p><p>Directors are used to harmonious discourse. The scope of the role makes it so much problems have relatively isolated solutions that benefit everyone. </p><p>As an executive, all solutions to a problem will harm <em>someone</em>. There&#8217;s no easy decision. Everyone comes in with a different perspective and idea, and feedback is quickly provided on the merits and validity of an idea. There&#8217;s no time for couched words or beating around the bush.</p><p>No sugarcoating, no pulled punches. Executive conversations can and should be direct. If you can&#8217;t handle that, you aren&#8217;t ready.</p></blockquote><h2><strong>Know your business inside and out</strong></h2><p>An executive&#8217;s job is to know their organization inside and out. When asked a question, you only get so opportunities to say &#8220;I don&#8217;t know&#8221; before others lose confidence in you ability to lead. For some key projects, just once is enough.</p><p>As an executive, it should be your day job to know and have a handle on the ins and outs of your organization and be able to speak to it.</p><h2><strong>Be a vault</strong></h2><p><strong>At the executive level, confidentiality is non-negotiable.</strong> Leaking information can result in massive consequences. Leaks can collapse deals, violate laws, heavily disrupt operations and even jeopardize the company&#8217;s success.</p><p>Executive presence requires you to have the trust of others to be a vault - discretion is a responsibility and sometimes a legal obligation. Failing to maintain confidentiality  damages your credibility in the room and can quickly lead to a loss of confidence.</p><p>You&#8217;ll be required to coordinate communication plans:</p><ul><li><p>Who says what, where, when, and what words</p></li><li><p>Who learns first, then second, then third</p></li></ul><blockquote><p><strong>Where directors fall short</strong></p><p>Managers and early directors develop bad habits. </p><p>Sensitive information they are privy to is low stakes, so they tend to find utility sharing it to build rapport with others, streamline upcoming changes, or assuage frustrations from their reports. The negative impact of these leaks is relatively minor, and limited to unnecessary frustration should the plan change.</p><p>But, every time it occurs - it damages trust from the executive team. It makes me less likely to share information with them, and certainly less like to advocate for increased exposure as an executive to even more sensitive information.</p></blockquote><h2><strong>Get to the point - fast</strong></h2><p>Presenting something to an executive? Keep it brief:</p><ul><li><p>State your point in the first sentence. </p></li><li><p>Give a sentence of supporting evidence or impact.</p></li><li><p>Follow up with a next step or action.</p></li><li><p>Stop.</p></li></ul><p>The whole thing should take 15-20 seconds. If there&#8217;s follow-ups, you&#8217;ll get asked for </p><p>it. Share a document before-hand with your deeper detail thinking.</p><h2><strong>Control the temperature of the room</strong></h2><p>A leader&#8217;s job is to set the tone through their actions, decisions, and communications. </p><p>Tone is all about how you communicate something. If you have bad news, you can communicate it in a way that quickly causes others to spiral out of control. Likewise, you can communicate it in a way that people become over-optimistic and don&#8217;t take it seriously. Tone needs to be appropriate and intentional with every communication.</p><p>Tone can be imparted through words, body language, facial expressions, even vibes. People pick it up easily. If leadership seems fearful, they become fearful. If leadership seems frenzied, they get frenzied. If leadership seems negative, they become negative.</p><p>It&#8217;s a leader&#8217;s job to set that tone towards things that result in positive outcomes for the company and maximize not just the understanding of the message but what follows afterwards.</p><div><hr></div><p>Executives aren&#8217;t just measured by their results, they're judged by how they show up. Showing up requires control.</p><ul><li><p>Control over yourself, by mastering your emotions, reactions, and composure.</p></li><li><p>Control over the room, by directing energy, focus, and direction.</p></li><li><p>Control over perception, by ensuring your actions lead to confidence and trust</p></li></ul><p>Don&#8217;t dismiss it as a checkbox or &#8220;nice to have&#8221;. It&#8217;s a difficult skill. </p><p>Executive presence isn&#8217;t optional, it&#8217;s the price of admission to operate at that level.</p>]]></content:encoded></item><item><title><![CDATA[Being Strategic - How to Analyze Problems]]></title><description><![CDATA[Learn how to problem-solve strategically.]]></description><link>https://blog.jgefroh.com/p/being-strategic-how-to-analyze-problems</link><guid isPermaLink="false">https://blog.jgefroh.com/p/being-strategic-how-to-analyze-problems</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Sat, 01 Feb 2025 21:43:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vsj7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vsj7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vsj7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png 424w, https://substackcdn.com/image/fetch/$s_!vsj7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png 848w, https://substackcdn.com/image/fetch/$s_!vsj7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png 1272w, https://substackcdn.com/image/fetch/$s_!vsj7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vsj7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png" width="1394" height="394" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:394,&quot;width&quot;:1394,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1030300,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vsj7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png 424w, https://substackcdn.com/image/fetch/$s_!vsj7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png 848w, https://substackcdn.com/image/fetch/$s_!vsj7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png 1272w, https://substackcdn.com/image/fetch/$s_!vsj7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf2db4c3-06fb-464c-853e-6222a1a2230c_1394x394.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><strong>&#8220;You need to be more strategic&#8221;.</strong> </em></p><p>It&#8217;s a phrase a lot of people hear as they aim to grow from middle management into the executive realm.</p><p>Not many people can really define it, though. Even the people giving this feedback have a difficult time. </p><p>Is it some magic &#8220;X&#8221; factor? Some &#8220;you either have it or you don&#8217;t&#8221; talent?</p><p>The truth is, being strategic can be taught and learned. It requires learning new ways of approaching problems, changing your mindset, and a bit of unlearning of the things that got us to where we are now. It requires picking up a few hard-skills and learning some very hard soft-skills.</p><p>Whether it&#8217;s analyzing problems, speaking the language of the business, or improving your bearing - the skills of being strategic can be taught.</p><div><hr></div><p><em>This article is part of my series<strong> <a href="https://blog.jgefroh.com/p/being-strategic">Being Strategic</a></strong>, a series of articles perfect for senior managers and directors who are attempting to move beyond operations and into executive-level strategy.</em></p><div><hr></div><h1>From tactical to strategic problem solving</h1><p>When many non-strategic people encounter a problem, they dive head first into solutions. While this might solve the particular problem, it isn&#8217;t necessarily the strategic choice.</p><p>Being strategic means resisting the impulse to act immediately and instead stepping back to analyze the problem more deeply. It requires applying first-principles and frameworks to analyze problems, not just in isolation, but also in terms of its broader ripple effects - both positive and negative.</p><p>If you don&#8217;t, you&#8217;re prone to make localized decisions that fail to improve the system overall. Local decision making that only targets &#8220;first-order effects&#8221; is one of the reasons why people gain the reputation of needing to be &#8220;more strategic&#8221;. These short-term solutions create downstream consequences that worsen problems or introduce new issues entirely.</p><p>Being strategic requires shifting from reactionary fixes to holistic, systems-level thinking&#8212;a skill that can be learned and refined.</p><p>In other words: getting much deeper <em><strong>diagnostic depth</strong></em> - starting with structured problem analysis.</p><div><hr></div><h1>How to Analyze Problems</h1><p>Analyzing a problem effectively ensures you have answers to these questions at the end of the thinking process:</p><ul><li><p><strong>Do you know what the problem is?</strong> Sometimes, you hear about symptoms rather than the actual problem. You have to dig in to identify the problem itself.</p></li><li><p><strong>Is the problem actually a problem? </strong>Sometimes you&#8217;re not presented with a problem, but a perceived problem. It&#8217;s important to validate whether it&#8217;s actually a problem, or whether taking action would result in over-indexing on what&#8217;s ultimately a non-issue.</p></li><li><p><strong>Is the problem worth keeping?</strong> Sometimes, you keep a problem with negative effects because it has some positive effects. </p></li><li><p><strong>Is the problem worth solving? </strong>Not all problems are worth solving. Some will cost too much relative to the benefit. A process that wastes 5 minutes a month that would take 2 dev-days to solve would take hundreds of months to show a return. Remember that an <em>irritation</em> isn&#8217;t necessarily a <em>problem</em> - don&#8217;t conflate the two.</p></li><li><p><strong>Is the problem worth solving right now? </strong>Sometimes, a problem is a problem, but the timing isn&#8217;t right. There&#8217;s a temptation to solve all problems as soon as they are discovered, but one has to keep track of appropriate timing, ensuring capacity, cognitive load, and operational sequencing all have due consideration applied.</p></li><li><p><strong>What&#8217;s contributing to the problem?</strong> You need to identify factors that contribute to the problem explicitly in order to find possible solutions that impact those factors. It&#8217;s tempting to try to attribute everything to a singular &#8220;root cause&#8221;, but problems you encounter may have dozens or hundreds of factors - your frame may lead to blind spots that cause you to gloss over impactful options.</p></li><li><p><strong>What levers can you pull to solve the problem?</strong> Once you&#8217;ve answered the above, it&#8217;s really a matter of &#8220;what should you do to solve the problem&#8221;. In order to actually decide, you first need to understand what levers are available to you.</p></li><li><p><strong>Deciding on and implementing the solutions. </strong>Once you understand your problem, have your options - the rest is just execution.</p></li></ul><h2>Do you know what the problem is?</h2><p>Oftentimes, when you hear about a problem, what you&#8217;re hearing about is a symptom: the pain that is being felt. </p><p>Reporters often report issues from the perspective of the pain they are feeling - an issue is wasting time, or demoralizing the team, or harming productivity.</p><p>Tactical people jump in immediately - they jump to solutions to increase efficiency, or motivate the team, or improve productivity.</p><p>Strategic people do not confuse the effect of a problem from the problem itself.</p><p>You need to understand the problem, not the effect. Ask questions:</p><ul><li><p>Why does the person telling you about the problem care?</p></li><li><p>What other effects have they experienced?</p></li><li><p>What did they experience?</p></li><li><p>What did they perceive?</p></li></ul><p>Dig until you have a good understanding of the boundaries of the problem and some of the contributors, at least from the perspective of the person reporting it.</p><blockquote><p>An engineering manager once brought me an urgent problem - there were too many unreviewed PRs. She started rattling off a list of interventions she wanted to make to resolve the problem, from being more stringent about closing PRs to recommending a freeze on new work to implementation of automations and reminders for stale PRs.</p><p>I had her pause and take a step back. </p><p>It turned out the unreviewed PR count was about average, and there wasn&#8217;t a bottleneck in our delivery pipeline. These weren&#8217;t the real reasons why this was a problem.</p><p>After some digging, it turns out the manager had an upcoming deadline she had made public commitments towards and that she had scheduled vacations inefficiently, resulting in multiple team members being out of office.</p><p>Her problem wasn&#8217;t that PRs were unreviewed - this was just an effect. Her problem was ultimately poor planning, and her fear that she was going to be responsible for harm to her reputation drove her decision-making. </p><p>I had her go back and instead talk with her stakeholders to negotiate a new timeline. It turns out the stakeholders were more than happy to shift the deadline a couple of weeks and it actually worked more favorably for their go-to-market announcement timeline.</p><p>Her reputation was preserved and a lot of ultimately unnecessary process change avoided.</p></blockquote><h2><strong>Is the problem actually a problem? </strong></h2><p>When someone presents a problem, there&#8217;s an implicit assumption that the problem is indeed an issue and thus needs to be addressed and remediated. </p><p>That&#8217;s not entirely true. Validate this assumption, and ask yourself:</p><ul><li><p>Why is this issue bad?</p></li><li><p>To what extent is it bad?</p></li><li><p>Does it apply to all instances of the problem, or are there specific characteristics?</p></li></ul><p>Wasting time in trying to solve a problem that&#8217;s not actually a real problem can distract from solving the real problems.</p><h3><strong>Why is this bad?</strong></h3><p>If you ask the question &#8220;why is it bad&#8221; and all you get is an amorphous trueism of &#8220;because it&#8217;s bad&#8221;, then that means you may be dealing with a perception issue rather than actual problem. </p><p>Real problems have negative effects attached to it. Perceived problems can be solved with just a mindset change.</p><h3><strong>To what extent is it bad?</strong></h3><p>This is where you can start pulling in data to validate your assumptions. If someone claims a negative effect, you should quantify it by examining the length of time the negative effect remains, frequency of occurrence, and even the dollar cost of remediation. This will ultimately give you a quantifiable <em>impact</em> you can us to make decisions.</p><p>It&#8217;s much easier to discuss about a problem that &#8220;costs the company $100,000 a year&#8221; vs. a problem that &#8220;takes a while to solve every year&#8221;.</p><h3><strong>Does it apply to all instances of the problem, or are there specific characteristics?</strong></h3><p>Once you have data, you can start seeing if there are patterns in characteristics of the problem or how the problem presents itself.</p><p>Find out if there&#8217;s any commonality or segmentation in the problem. Perhaps you&#8217;ll find the problems are coming for a particular source, for a particular time period, is only being experienced for a particular group, or some other factor.</p><p>Make sure you have a list of the characteristics. You may end up over-scoping your problem-solving, applying solutions to groups that aren&#8217;t even experiencing the problem, or making a mountain out of what ends up being a molehill.</p><blockquote><p>Some of the engineers came to me, frustrated about configuration management. </p><p>They proposed purchasing and implementing a configuration management system to automatically notify and update the configuration when it changed. It would&#8217;ve taken several weeks and cost over $10,000 to implement.</p><p>I dug in deeper. What configurations were changing and getting out of sync? Why wasn&#8217;t the current process effectively catching it? What was the negative impact when it didn&#8217;t catch it?</p><p>It turned out that there was only one configuration in particular that one engineer was experiencing issues with. Our platform connected to a particular third-party system with a manual configuration that failed to automatically update when regular rotations would occur, and it just wasn&#8217;t compatible with the rest of the configuration management, which was reliable and automated. The engineer had rallied some other engineers into support a wholesale change of the entirety of configuration management all over this one issue.</p><p>I looked into the data further for that particular case. The issue they were concerned about occurred just 4 times in a year, and each time it took about 5 minutes for the engineer to resolve.</p><p>They were attempting to solve a $100 problem by spending $10,000.  Instead, I had them document the solution steps and share it out so that it was not entirely dependent on them to know how to do - this alleviated their frustration as they were not the only individual who was able to resolve the issue. </p><p>The problem just wasn&#8217;t worth fixing.</p></blockquote><h2>Is the problem worth keeping?</h2><p>Counter-intuitively, you don&#8217;t actually want to solve all problems, even if you can. Sometimes you intentionally take a negative effect to realize a positive benefit elsewhere.</p><p>Yes, negative things can have positive effects.</p><p>For example, if a team complains about the time it takes to test their features themselves, you may think that problem needs to be solved, possibly by hiring people dedicated to QA.  However, having the team member testing features they wrote themselves may have benefits like promoting increased ownership or improving knowledge share in the team. There&#8217;s benefits to the problem being complained about, and you don&#8217;t want to throw the baby out with the bathwater.</p><p>That&#8217;s not to say benefits can&#8217;t be realized in alternate ways. The important part is to recognize that a non-obvious benefit may exist so that when you evaluate problems and solutions you can ensure that the potential benefit of the problem itself are considered. </p><blockquote><p><strong>Chesterton&#8217;s Fence</strong></p><p>There exists in such a case a certain institution or law; let us say, for the sake of simplicity, a fence or gate erected across a road. The more modern type of reformer goes gaily up to it and says, &#8220;I don&#8217;t see the use of this; let us clear it away.&#8221; To which the more intelligent type of reformer will do well to answer: &#8220;If you don&#8217;t see the use of it, I certainly won&#8217;t let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it.&#8221;</p></blockquote><h2>Is the problem worth solving?</h2><p>Even if you identify a problem and validate it&#8217;s actually a problem, with real data - you still need to figure out if it&#8217;s worth solving.</p><p>People have a hard time recognizing this, but there&#8217;s an acceptable level of &#8220;badness&#8221; for most problems. There&#8217;s probably a threshold or frequency at which it becomes not worth it to solve the problem because its occurrence is so rare, or the frequency not representative of most cases.</p><p>If it turns out a problem only occurs once a year an causes a large negative effect, it may not be worth fixing if averaged across a year. A problem that causes tiny negative effects that occurs daily may still be worthwhile to resolve immediately just because of the frequency at which it occurs. This depends ultimately on the frequency of the problem and the negative effects it causes.</p><p>The value of reaching &#8220;zero badness&#8221; is often exponentially higher than reaching &#8220;low badness&#8221; and not worth the cost.</p><blockquote><p>A classic example of &#8220;low badness&#8221; is that of Uptime.</p><p>Most companies would love to have 100% annual uptime, but the cost of achieving uptime increases exponentially with every 9 you add.</p><ul><li><p>99% uptime is 5,256 minutes of downtime a year (3.65 days)</p></li><li><p>99.9% annual uptime is 526 minutes of downtime a year (8.77 hours)</p></li><li><p>99.99% annual uptime is 52.6 minutes of downtime a year</p></li><li><p>99.999% annual uptime is 5.26 minutes of downtime a year.</p></li></ul><p>Going from 99.9% to 99.99% uptime could mean a couple hundred thousand dollars invested into improved testing and a slight slowdown in delivery to reinforce quality. </p><p>However, going from 99.99% to 99.999% uptime could mean tens of millions of dollars on operations head-count, infrastructure tooling, redundancy, personnel retraining, and process changes.</p><p>Whether avoiding that extra 48 minutes of downtime is worth it or not depends on a lot of factors, such as contractual SLAs, reputational damage, mission-criticality. If a minute of downtime costs 10 million dollars in SLA penalties, it might be worth it. However, if your SLAs are only 99%, you may be completely fine with a few hours of downtime a year. </p><p>It all depends.</p></blockquote><h2>Is the problem worth solving right now?</h2><p>You don&#8217;t have unlimited resources. Part of thinking strategically is deciding how much to invest in solving specific problems.</p><p>Prioritization frameworks like the Eisenhower matrix (Urgent/Important) can help identify which ones are truly worth solving now. </p><p>Even if you do identify a problem worth solving now, you have to then put it in the context of your resourcing and capacity. You need people to implement the solution, and if they are already working on ten other things, you may end up creating another problem through attempting to solve that problem at the wrong time.</p><p>Even if you have people who can be dedicated to implementing the solution, you still have to look at the history of how your organization has changed. The truth is, organizations only have a limited rate at which they can absorb change. Over-activity creates an environment of churn and instability, which affects performance, morale, and retention. When you solve a problem by making a change, factor in the rate at which the organization can absorb all changes in the timing of solving the problem.</p><p>Many problems can wait and be delayed. You don&#8217;t need to do everything or solve every problem you know about immediately - otherwise it distracts from other, more important efforts. Even exploring potential solutions can be a waste of time for problems that might be minimal.</p><p>After all - if you try to chase two rabbits, you won&#8217;t catch either one.</p><h2><strong>What&#8217;s contributing to the problem?</strong></h2><p>There&#8217;s rarely a particular singular &#8220;root cause&#8221; to a problem. New leaders often attempt to boil everything down to a singular &#8220;root&#8221; cause. If only that cause could be resolved, then the whole issue would be fixed.</p><p>This is dangerous for many reasons - silver bullets are rare, especially at decisions made at the strategic level. While some problems luckily do have one or two dominant contributors, most issues executives face are systemic in nature with a complex web of contributing factors. Otherwise, why would you be wasting time on a straightforward problem with such a obvious solution?</p><p>Additionally, what you define as the &#8220;root cause&#8221; is going to depend entirely on how you frame things, which is prone to significant amounts of mental biases that lead you off track or hide the true solutions.</p><p>You <em><strong>frame</strong></em> is your particular perspective you are adopting when you are examining a problem. The frame dictates what factors or causes you identify, what causes you attribute effects to, what benefits or costs you recognize are important or not, and ultimately what solutions you reach for to solve the problem.</p><p>For example, if your framing is people, you&#8217;ll naturally reach for rationale where the root cause and solutions are people-oriented. A problem exists because people aren&#8217;t doing their job, or they aren&#8217;t competent, or they have bad mindsets or poor habits. </p><p>Maybe you view problems from the frame of culture. Now, issues are caused because of the environment - maybe people are fearful to make mistakes, or afraid to step on toes, or have too much to do. </p><p>If your framing is technical, you&#8217;ll naturally reach for causes that involve technical controls - there&#8217;s not enough automation, or the validation is incorrect, or the tests weren&#8217;t comprehensive enough.</p><p>There&#8217;s many possible frames, all borne from experience, education, mindset that lead to a person&#8217;s unique perspective. People, culture, process, technology, systems, environment, market - <strong>the frame you use has a massive impact on what problems factors you are able to identify.</strong></p><p>If you only analyze a problem with one or two frames, then you&#8217;re very limited in your ability to ultimately solve that problem. You may not even think to address the <em>most impactful causes of an issue. </em>This is where including people with other frames can be useful, and educating yourself on how to think about the same problem through multiple lens. The more frames you have, the larger your palette of options for addressing a problem.</p><h2><strong>What lever should you pull to solve the problem?</strong> </h2><p>Your solution levers are also dictated by your framing. </p><p>If your framing is people, then your solutions tend target <em>people</em> as the lever, and will aim towards things like improving training, punishing non-compliance, increasing hiring standards, etc.</p><p>If it&#8217;s cultural, your solutions might be to ensure people feel safe to learn, giving avenues to communicate, or better clarifying priorities.</p><p>Technical? You&#8217;ll implement automation, technical controls, notifications, code-quality improvements, etc.</p><p>The fact is - whatever lever you do reach for needs to also be viewed from multiple frames.</p><p>Using multiple frames requires intentionality to adjust, especially frames that are outside your &#8220;default mode&#8221;. It&#8217;s a superpower if you can do it, but most people don&#8217;t even think about it. They usually go with their default frame, whether it&#8217;s people, process, culture, systems, market, environment, etc.</p><blockquote><p>Our revenue growth was off track.</p><p>The new CRO had pulled me aside while I was walking past his office. We weren&#8217;t meeting board expectations of growth, and he could feel the guillotine hanging above his head.</p><p>Coming from a sales frame, he proposed investing significant amounts in outbound sales and wanted a product initiative around optimizing for and supporting rapid, at-scale onboarding.</p><p>I knew from the data that wouldn&#8217;t work. We already had saturated many of our markets, and adding additional sales resources to an already crowded environment wouldn&#8217;t lead to increased acquisition at the levels he needed.</p><p>Our acquisition rate and onboarding speeds were also already quite good. Even a 10% improvement would have only nominal effects on the growth rate.</p><p>Coming from an enterprise frame, I saw our challenge was actually <em>churn</em> - we were losing customers year-over-year at about the same rate we were acquiring them, thanks to a product that wasn&#8217;t built with any capabilities that kept people coming back year-over-year nor did it give them any long-term capabilities.  It was a leaky bucket that was already full, and no amount of adding to the top would solve our problem.</p><p>I instead proposed and later spearheaded product capabilities to support year-over-year needs alongside improved customer success and account management. It worked effectively in restoring revenue growth to desired levels.</p></blockquote><h2><strong>Deciding on and implementing the solution(s)</strong></h2><p>Once you&#8217;ve identified a problem and its solutions - the rest is actually quite simple. </p><p>At this stage, it&#8217;s no longer about identifying the right solution, but about selecting the best solution set given your constraints. </p><p>This is classic tactical execution.</p><p>Apply your most applicable prioritization and evaluation frameworks - RICE, MoSCoW, Kano. Decide on a set of solutions that fit within your constraints and prioritize the tradeoffs that matter to you, whether that&#8217;s cost, effort, time horizon, or impact.</p><p>At this point, the conversation shifts from strategy to execution - logistical, operational, and tactical. While the &#8220;how&#8221; is still important, it an article entirely of its own.</p><div><hr></div><h1><strong>Problems cannot be viewed in isolation.</strong></h1><p>One important note - when you&#8217;re thinking strategically, you need to think not just about the particular problem in isolation, but also thinking about the landscape of problems you have or face.</p><p>Problems (and their solutions) are all part of a system of cause and effect. You don&#8217;t just have one problem to solve or a single solution to implement, you have an entire portfolio that ultimately has an effect on each other. It&#8217;s all a part of a system.</p><p>Some of these systems are virtuous - by solving a particular problem or implementing a solution, it makes everything better in a repeating manner. Compounding interest is an example. A small amount can balloon over time as the amount that&#8217;s considered passively gets larger and larger.</p><p>Some of these systems are death-spirals - every time a problem occurs, it makes going through the cycle more difficult. An example would be bank overdraft fees, taking even more money from people who already don&#8217;t have enough.</p><p>Thinking through these requires deeply analyzing the problem using techniques like those listed here and understanding their effects - not just the first-order effects, but second-order, third-order as well. </p><p>What are the effects of the effects of the effects?</p><div><hr></div><h2><strong>Some parting advice</strong></h2><ul><li><p>Your environment is also going to dictate what solutions are feasible, even if they are impactful.</p></li><li><p>The speed and scope of adjustments you make depends on how much time you have to solve the problem and the number of attempts you have. </p></li><li><p>If you have a high-trust, adaptable team, you may be able to try hundreds of minor adjustments. If you have a low-trust team, you may only get one or two shots before the team refuses to implement new changes. If you&#8217;re in a crisis mode, you may only have mere hours or days to implement a change before the opportunity goes away.</p></li><li><p>The time horizon really matters. Ensure you&#8217;re applying the right solution to the right time horizon. Many leaders I&#8217;ve see apply a long-term lens to a short-term problem, or a short-term problem to a long-term issue.</p></li><li><p>Some people have done the thinking for you - you&#8217;ll quickly realize who brings up problems off the cuff and who brings up problems only after they&#8217;ve thought more about it than you ever will. Trust the ones that have done more thinking than you have.</p></li><li><p>Being strategic means improving the system, and that means being willing to take the personal negative hits if it makes the system better.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[It's just a textbox]]></title><description><![CDATA[On complexity, success, and product engineering.]]></description><link>https://blog.jgefroh.com/p/its-just-a-textbox</link><guid isPermaLink="false">https://blog.jgefroh.com/p/its-just-a-textbox</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Fri, 24 Jan 2025 18:51:08 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/489ad75f-5243-4327-8d33-642f2b43512c_744x296.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H4YI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H4YI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png 424w, https://substackcdn.com/image/fetch/$s_!H4YI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png 848w, https://substackcdn.com/image/fetch/$s_!H4YI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png 1272w, https://substackcdn.com/image/fetch/$s_!H4YI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H4YI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png" width="744" height="296" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:296,&quot;width&quot;:744,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11131,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H4YI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png 424w, https://substackcdn.com/image/fetch/$s_!H4YI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png 848w, https://substackcdn.com/image/fetch/$s_!H4YI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png 1272w, https://substackcdn.com/image/fetch/$s_!H4YI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9767c7fe-9853-44f2-8367-cd96019a04d9_744x296.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When you&#8217;re creating brand new software, life is simple. Your focus is exclusively on the functionality of the software. It&#8217;s a care-free, liberating world. Coding is an act of pure creation. If you can think it, you can build it, and typically very quickly. You could see a change in production just a minute or two.</p><p>There&#8217;s so much you don&#8217;t have to think about or acknowledge, <em>at all</em>.</p><p>Your focus is exclusively on the behavior of the thing you are trying to build. It&#8217;s like running through a green field with your eyes closed. You can run full sprint ahead and absolutely fly without worrying about hitting anything.</p><p>If you want to add a new page, go ahead! If you want to add a textbox somewhere, you can! Just do it. </p><p>In this green field, a textbox is just a textbox. It only takes a minute to add it.</p><p><strong>Then, you start seeing success.</strong></p><p>People start using your software. People start charging money for your software. Your software starts to become a <em>product</em>. A business forms around it. Customers start requesting things, and more importantly: they start depending on its continued functioning and existence. </p><p>People start asking for more. More capabilities. More features. More connections with other things - things that were never meant to be connected to. Other people start making decisions for thing you&#8217;re building. You can&#8217;t even call them people anymore, now they&#8217;re called <em>stakeholders</em>. The green field becomes a tangled bramble of needs and requests. It becomes muddy. </p><h2>The brown field</h2><p>In this brown field, the textbox is no longer &#8220;just a textbox&#8221;. There&#8217;s so much more to it. There&#8217;s business rules, often lost in nuance. </p><p>Rules around:</p><ul><li><p>How it&#8217;s displayed - masking, borders, colors, shapes, sizes, positions, margins</p></li><li><p>How it&#8217;s tracked - analytics, auditing, tracking who, when, and where</p></li><li><p>How it&#8217;s accessible - screenreaders, mobile, translations, color-blind support</p></li><li><p>How it&#8217;s secured - character limits, XSS prevention, rate limiting, authorization</p></li><li><p>How it&#8217;s validated - input rules, how errors display,</p></li><li><p>How it&#8217;s expected - stakeholder training, user habits, data migrations</p></li><li><p>How it&#8217;s operated - cost control for usage-based vendors, feature flags for visbility</p></li><li><p>How it&#8217;s maintained - rules in one usage vs. another, reusability of its functionality</p></li><li><p>How it&#8217;s observed - error handling and reporting, notifications if it breaks</p></li><li><p>How it&#8217;s communicated - loading indicators, animations, user delight, labeling</p></li><li><p>How it&#8217;s scaled - paint and render performance, server optimizations</p></li><li><p>How it&#8217;s effective - A/B testing of impact, pre-filling of data, ease of completion</p></li><li><p>How it&#8217;s used -  if users understand it, if they make mistakes, if they&#8217;re faster</p></li><li><p>How it&#8217;s valued - why customers want it, why the business needs it, if it matters</p></li><li><p>&#8230;and so much more.</p></li></ul><p><strong>The textbox isn&#8217;t just a textbox anymore.</strong> It&#8217;s an entire ecosystem with a long history of past decisions, some forced by the context, and others made by dozens of people all without awareness of the other decisions. It&#8217;s connected to other elements with just as much complexity, all likewise interconnected in mysterious, likely undocumented ways. Some of those decisions may be written down or remembered, others not.</p><h2>Hidden complexity</h2><p>All of that complexity isn&#8217;t visible to any single person. </p><p>If you aren&#8217;t a marketer, you won&#8217;t notice that it can be targeted by the tag manager. If you aren&#8217;t visually impaired, you won&#8217;t notice it has screen reader support. If you aren&#8217;t using an lower-end machine you won&#8217;t notice it&#8217;s been made faster. If you don&#8217;t speak another language, you won&#8217;t notice it has translation. If you aren&#8217;t coming from another site, you won&#8217;t notice it pre-populates. If you aren&#8217;t the finance leader, you won&#8217;t notice the revenue impact. If you aren&#8217;t the auditor, you won&#8217;t notice the DOM has a label that&#8217;s technically a violation of a long forgotten rule.</p><p>Yet, you as the engineer still have to consider it all. You have to reckon with and factor in these decisions as you define and implement change after change after change - all under what always seems to be a tighter and tighter deadline. </p><p>In the green field, hours was enough to build an entire product. In the brown field, it&#8217;s sometimes barely enough to understand what a request is even asking for.</p><p>You have to make changes within the constraints of the past and future, known and unknown. Changes will eventually break something, and the affected party will fill a bug report which you have to then complete and fix.</p><p><strong>That&#8217;s the price of success</strong> - people use the software and notice when it doesn&#8217;t behave according to how they think it should.</p><div><hr></div><h2>How should it behave?</h2><p>It&#8217;s the hardest question you might be able to ask someone at a company that&#8217;s been around for a while.</p><p>The stakeholders in the company won&#8217;t be able to define it for you. Nobody actually knows the intricacies - not in full. <em>You have to discover it.</em> </p><p>So, you talk to users to find our their needs. You analyze how people are using the product. Where they get stuck. Where they click and don&#8217;t click. Where they enter. Where they leave. How all that translates into the how the user gets their job done and the company accomplishing their goals.</p><p>But, that&#8217;s still not enough. </p><p>Knowing what you intend the software to do is just part of the problem. You also have to know what it was intended to do and how it works today. </p><p>There&#8217;s no easy map - just code and history. To find it, you have to do good old fashioned archaeology. You search commit histories, Slack discussions, old documentation, random meeting notes, talk to co-workers, view logs. Bit by bit, you&#8217;re able to build <em>context</em> that makes your follow-on decisions implementing more accurate.</p><h2>Speed vs. Accuracy</h2><p>The challenge is - context building takes time. It&#8217;s time away from developing and coding. It affects the speed at which you can deliver the change. It might be too slow for the tastes of the company or your manager. You might even feel you aren&#8217;t really an engineer anymore.</p><p>When faced with the prospects of having to have &#8220;conversations about your throughput&#8221;, you might try to reverse course: moving faster, deciding faster, acting faster. </p><p>Rookie mistake - all that does is just cause you to miss some hidden interconnection nobody knew about and cause an incident. Now, you just traded the throughput conversation for one about quality.</p><p>At this point it&#8217;s easy to get frustrated. The natural tendency of an engineer is to push back. You might start to reject tickets due to &#8220;incomplete requirements&#8221;, or start approaching every change request like a contract negotiation, requiring volumes of forms to be defined and filled out. </p><p><strong>That approach won&#8217;t work.</strong> Asking others to define it won&#8217;t help because <em>they don&#8217;t know.</em> They don&#8217;t have the knowledge, nor do they have the time. As the engineer, you at least have the advantage of being able to look under the hood and live in the product. For some of your co-workers, they only think about the product for 30 seconds a day - they have other day jobs they have to do.</p><p>It&#8217;s up to you to figure it out. The more you dive into it, the more you can grow and improve. Embrace the breadth. It&#8217;s not just about the technology.</p><h2>Becoming a product engineer</h2><p>When you&#8217;re a product engineer, you have to &#8220;wear a lot of hats&#8221;. The product hat. The finance hat. The user hat. The engineering hat. The investor hat. The customer hat. </p><p>None of them will seem like they fit.</p><p>You might find it hard to think about things from each of the perspectives. To wear each hat and truly adopt that persona as your own, even just for a minute. To think through a problem as if you were the person the hat was made for.</p><p>Well, nobody said Product Engineering was easy. </p><p>It&#8217;s difficult. It&#8217;s high pressure. You&#8217;ll constantly hear questions from stakeholders asking &#8220;<em>Why can&#8217;t we go faster?&#8221;</em> and <em>&#8220;Why can&#8217;t we stop breaking things?&#8221;</em> They might even start comparing you to other teams and other companies, not realizing those teams are on newer products and in greener fields.</p><p>It&#8217;s easy to feel stuck - to feel that any move you make is going to be wrong. </p><p><strong>Grind away at it anyways.</strong> In situations like this, the only winning move is to lose and learn. </p><p>The mistakes will happen. Focus on improving, learning, and sharing knowledge. Focus on getting the job done. </p><p>Little by little, it&#8217;ll get easier. The patterns will get clearer. The cause and effect will start becoming automatic. The chaos will turn into complexity which will turn into simplicity.</p><p>You&#8217;ll start thinking deeply. Thinking about how the users will interact with the change. How it&#8217;ll impact the business. What they&#8217;ll expect. What they&#8217;ll want. What they&#8217;ll need. It&#8217;ll just become automatic.</p><p>You start being able to avoid problems entirely, and<strong> </strong>to find insights that have a huge impact. It&#8217;ll become second nature to think about things like accessibility and scalability while thinking about revenue and compliance and usability. You&#8217;ll be able to see the thread of how the click will translate across 20 hops to impact the bottom line. </p><p>It&#8217;ll all makes sense. It&#8217;ll all connect. You see it in your head, with every decision you make. </p><h2>Being an expert</h2><p>The next time you need to add a textbox, you&#8217;ll be more confident. You&#8217;ll consider the impact - to everyone: users, customers, the business, your peers, your system, your product, yourself. The non-functional requirements that many don&#8217;t even know exist, you&#8217;ll just consider through your minute-by-minute actions. You feel like you&#8217;ve got this. You&#8217;ll <em>know</em> you&#8217;ve got this. You&#8217;ll be wiser, faster, better.</p><p>It&#8217;ll take just a minute to add the textbox: a long journey to arrive at the same destination. </p><p>But not quite. This time, you&#8217;ll have considered the &#8220;-ilities&#8221;. You&#8217;ll have considered the things not mentioned. You&#8217;ll have done the things not thought about. You&#8217;ll have considered things that aren&#8217;t relevant now, but will be soon. You&#8217;ll have factored in the past, present, and future. </p><p>You&#8217;ll complete your ticket - not what was defined, not even what was intended, but what was <em>needed</em>. Whether the field is green or brown won&#8217;t matter anymore.</p><p>You&#8217;ll be happy with the result. You&#8217;ll have made it look easy. It actually will be easy.</p><p>After all, it&#8217;s just a textbox.</p>]]></content:encoded></item><item><title><![CDATA[On organizational structures - The Core/Focus model to balance stability and innovation]]></title><description><![CDATA[Invest in the ability to innovate while supporting your core business.]]></description><link>https://blog.jgefroh.com/p/on-organizational-structures-the</link><guid isPermaLink="false">https://blog.jgefroh.com/p/on-organizational-structures-the</guid><dc:creator><![CDATA[Joseph Gefroh]]></dc:creator><pubDate>Sun, 12 Jan 2025 20:05:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TrC8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TrC8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TrC8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png 424w, https://substackcdn.com/image/fetch/$s_!TrC8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png 848w, https://substackcdn.com/image/fetch/$s_!TrC8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png 1272w, https://substackcdn.com/image/fetch/$s_!TrC8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TrC8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png" width="1354" height="370" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:370,&quot;width&quot;:1354,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:822915,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TrC8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png 424w, https://substackcdn.com/image/fetch/$s_!TrC8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png 848w, https://substackcdn.com/image/fetch/$s_!TrC8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png 1272w, https://substackcdn.com/image/fetch/$s_!TrC8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db7a398-2166-47cc-9c5e-a959dc9ce858_1354x370.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A big challenge I&#8217;ve experienced several times as successful startups scaled up was being able to do everything needed to keep the product running while still investing in high-impact, innovative new products.</p><p>Small startups often have an &#8220;everyone does everything&#8221; mentality, from the contributor up to the executive. People were conceptually interchangeable and could wear a lot of hats. Allocation often occurred at the granularity of an individual - specific people were assigned to projects and new areas, responsible for delivering it all.</p><p>As the number of focuses grew and the complexity of their interactions increased, it became harder and harder for the people involved to be effective. Breadth and depth far exceeded the original scope of the work, and it became too much for any one person to reasonably be effective. </p><p>Resource limitations were often the constraint of being able to both innovate and support, which made every decision a prioritization and allocation battle.</p><p>Conflict between Product and Engineering leaders increased, as obsession over time spent on ROI (Return on Investment) and how much to place on BAU (Business as Usual) flared up into full-blown arguments.</p><p>Product leaders, desperate for more progress, pulled from efforts that kept the lights on. Engineering leaders, desperate for stability, rejected new innovation projects to err on the side of safety. At its worst, this contentious relationship produced a lot of blaming, finger-pointing, and whiplash back and forth.  Sometimes, one of the parties succeeded entirely, resulting in the company becoming unstable and collapsing due to an over-focus on innovation, or stagnating and losing in the market due to an over-focus on stability.</p><p>To solve this, leaders often decided on extensive meetings, detailed demands for justification of any spend, and precise explanations they were heavily involved in, resulting in extremely slow prioritization and execution delays that further exasperated the issues.</p><h3>The pain is felt across the company</h3><p>As one can imagine, contributors felt this pain acutely. All you had to do was  ask any team for feedback, and you&#8217;d hear things like:</p><ul><li><p>&#8220;We&#8217;re doing too much&#8221;</p></li><li><p>&#8220;We don&#8217;t know what we own&#8221;</p></li><li><p>&#8220;There&#8217;s a lot of whiplash&#8221;</p></li><li><p>&#8220;Leadership doesn&#8217;t understand the thousands of tiny things needed&#8221;</p></li><li><p>&#8220;We&#8217;re wasting too much time on these tiny things&#8221;</p></li><li><p>&#8220;My work doesn&#8217;t matter&#8221;</p></li></ul><p>It&#8217;s painful for contributors to work effectively in an environment like this. </p><p>The fact is both Product and Engineering are right and wrong. You need a stable product so your users and customers keep using it, and you need new innovations so you can acquire new revenue from customers and users. It&#8217;s neither group&#8217;s fault.</p><p>The root cause of these issues stems from an organizational structure that isn&#8217;t aligned with the reality of the work. In situations like this, I&#8217;ve found a change to the organization structure that embraces the differences in the structure itself can align expectations with reality and achieve both desired outcomes.</p><div><hr></div><h1><strong>Core/Focus</strong></h1><p>The structure is simple. Instead of expecting that every pod will be involved in doing everything, segment the pods into two types of pods - <strong>Core</strong> and <strong>Focus</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XpPq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XpPq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png 424w, https://substackcdn.com/image/fetch/$s_!XpPq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png 848w, https://substackcdn.com/image/fetch/$s_!XpPq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png 1272w, https://substackcdn.com/image/fetch/$s_!XpPq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XpPq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png" width="2570" height="744" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:744,&quot;width&quot;:2570,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:143743,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XpPq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png 424w, https://substackcdn.com/image/fetch/$s_!XpPq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png 848w, https://substackcdn.com/image/fetch/$s_!XpPq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png 1272w, https://substackcdn.com/image/fetch/$s_!XpPq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1184fdc-5aeb-4a4a-ad0d-b767b5943799_2570x744.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Core</strong></h2><p>The objective of Core pods are simple: keep the business running with stability.</p><p>They should have a predictable roadmap. The Core group should work in a manner where the execution and progress is highly visible - people in the organization should know what is needed, when it will be delivered by, and have solid delivery expectations.</p><p>This is the heartbeat by which other parts of the organization match their pace. Marketing can understand a release schedule. Sales can understand their commitments they can make. Support can achieve operational SLAs.</p><p>Incremental improvements can be roadmapped, planned, and executed. Known capacity can be used and planned for. Execution is predictable.</p><p>To succeed, the Core group needs the ability to say &#8220;no&#8221; and &#8220;when&#8221;. Emergencies can occur, but they need to be able to create the predictability necessary to execute well.</p><h2><strong>Focus</strong></h2><p>Focus teams, as the name implies, focus on a particular stream of work. Their job is simple: achieve the outcome they were tasked.</p><p>Focus can be on any number of things:</p><ul><li><p>Growth goals, such as to &#8220;improve user activation by 15%&#8221;</p></li><li><p>Project goals, such as &#8220;unify product listings across our products&#8221;</p></li><li><p>Problem goals, such as &#8220;our documentation is terrible - how do we improve it&#8220;</p></li><li><p>Domain goals, such as &#8220;own anti-fraud capabilities&#8221;</p></li><li><p>or other properly scoped area.</p></li></ul><p>The important part of the team is that they get to focus on that particular area or outcome for a set period of time - whether that&#8217;s 6 weeks or 6 months. At the end of that time period, an evaluation can occur as to whether they achieved their goal, whether it&#8217;s worth continuing to invest in, or whether it&#8217;s time to move on to something else that&#8217;s a higher priority.</p><p>Focus teams should have the autonomy to make decisions that lead to the desired outcome, working closely with an appropriate but minimal set of stakeholders. </p><p>They shouldn&#8217;t have to run decisions by 5 other teams, or have to justify every decision they make to external stakeholders. They may do so <em>internally</em> - that is, evaluate the set of items that might lead to their goal and prioritize it, but they shouldn&#8217;t need to do so <em>externally</em>. The investment has already been made, there should be no further justification needed. </p><p>Focus teams also need the ability to focus. Yes, that means they should be able to ignore things not within their focus they were given. Whether that&#8217;s other urgent/important projects, bug fixes in unrelated parts of the product, or even developer UX. Their primary goal should be their main effort they have been assigned.</p><h2><strong>What does this enable?</strong></h2><p>This structure enables aligned expectations from the executive and management team down to the individual contributors. Team members on the focus pods know that they won&#8217;t be distracted by 10 other streams of work, and should focus on solving their key problem. Team members of the Core pods know that they won&#8217;t be dinged for not finding needle-moving opportunities, and can take satisfaction from a job efficiently completed and a problem avoided.</p><p>Organizationally, it also enables the business to execute at scale. Businesses have a clear mechanism for entering a new market or launching a new product or focusing on a new business initiative - spinning up a focus pod.</p><div><hr></div><h1><strong>Why does the structure work?</strong></h1><p>To first understand why it works, you first need to understand the mental model for how to model the kind of work being done and what&#8217;s required for each type of work.</p><p>Just remember: <em>all models are wrong, some are useful.</em></p><h2><strong>Understanding the different kinds of work</strong></h2><p>In an organization that develops, operates, and sells a product, you see a variety of different kinds of work as the business operates, comes up with new ideas, and the system evolves.</p><p>The kinds of work you might encounter can be bucketed into the following groups:</p><ul><li><p>Innovation</p></li><li><p>Growth</p></li><li><p>Improvement</p></li><li><p>Expansion</p></li><li><p>Fulfillment</p></li><li><p>Support</p></li></ul><p><strong>Innovation</strong> </p><p>Innovation relates to doing things your organization hasn&#8217;t done before. Whether that&#8217;s entering a new market, building a brand new product, or standing up a new program - it requires focused efforts on items with little predictability. While you may ultimately desire to achieve a specific objective (eg. increasing revenues, building moats), the cause and effect can&#8217;t be predicted because it&#8217;s all new to the organization, nor can the actual specific steps be planned for with precision ahead of time.</p><p><strong>Growth</strong></p><p>This is work relates to pushing forward, or &#8220;growing&#8221; a particular outcome, usually measurable via a KPI or OKR. You might want to increase your customer retention rate by 15%, or increase a user activation funnel&#8217;s conversion rate by 10%. These are important achievements you want your organization to reach.</p><p><strong>Improvement</strong></p><p>If you have existing features, you&#8217;ve probably received or identified improvements you could make to them to make them all that much better. Whether that&#8217;s adding a new filter for a list, or allowing messages to be delivered by SMS as well as email. These are things that you received feedback on that you&#8217;ve identified an increment for that would provide some user value.</p><p><strong>Expansion</strong></p><p>A lot of product innovations can rise from seemingly unrelated technical improvements. A new way to model a user account can result in the ability to support team-based capabilities. A way to easily and quickly track aggregate data over time might be leveraged to create real-time leaderboards. This is the work of expansion - creating or expanding technical capabilities and increasing the real-estate upon which innovation can occur.</p><p><strong>Fulfillment</strong></p><p>Fulfillment is simple. There&#8217;s something that needs to be done by a set time. It might be mandated by contract to a customer, or regulator requirement. In any case - the work is known, the deadline is known, and it has to be slotted in an delivered precisely. The request has to be fulfilled for it to be considered successful.</p><p><strong>Support</strong></p><p>Support is the work that keeps the rest of the company running smoothly. Including:</p><ul><li><p>defect reports</p></li><li><p>investigations or tasks for a support request</p></li><li><p>data analysis requested by another team</p></li><li><p>answering technical questions from customers or other teams</p></li></ul><p>These different kinds of work are ever-present in a variety of different mixes in most product organizations.</p><h2>Understanding differences in needs</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!azXI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!azXI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png 424w, https://substackcdn.com/image/fetch/$s_!azXI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png 848w, https://substackcdn.com/image/fetch/$s_!azXI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png 1272w, https://substackcdn.com/image/fetch/$s_!azXI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!azXI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png" width="1456" height="881" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:881,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:224252,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!azXI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png 424w, https://substackcdn.com/image/fetch/$s_!azXI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png 848w, https://substackcdn.com/image/fetch/$s_!azXI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png 1272w, https://substackcdn.com/image/fetch/$s_!azXI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18b2adee-0c5e-43a4-8bde-9a85e9477355_1874x1134.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Different kinds of work have different needs.</figcaption></figure></div><p>It turns out different kinds of work have different needs for the people engaged in the work to be maximally effective. In fact, maximally effective might mean something completely different depending on the kind of work.</p><ul><li><p>Autonomy</p></li><li><p>Context switching</p></li><li><p>Predictability</p></li><li><p>Risk</p></li><li><p>Singular impact</p></li></ul><h3><strong>Core needs</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qCyp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qCyp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png 424w, https://substackcdn.com/image/fetch/$s_!qCyp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png 848w, https://substackcdn.com/image/fetch/$s_!qCyp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png 1272w, https://substackcdn.com/image/fetch/$s_!qCyp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qCyp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png" width="1456" height="729" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:729,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:117897,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qCyp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png 424w, https://substackcdn.com/image/fetch/$s_!qCyp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png 848w, https://substackcdn.com/image/fetch/$s_!qCyp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png 1272w, https://substackcdn.com/image/fetch/$s_!qCyp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82831f3c-8591-4fa6-a847-3be5991d934e_1562x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Core pods achieve a balanced roadmap and create predictability and efficiency through planned, intentional steps.</figcaption></figure></div><p>On one end of the spectrum is the work of <strong>Support and Fulfillment</strong>. These are often known solutions or known problems that fit within the Iron Triangle - a combination of scope, time, and cost. These require the team to have a predictable execution tempo so that capacity can be allotted and schedule deviations can be noted early and addressed. Teams may fill quarters or years with this pre-planned work, slotting in new projects here and there, and allocating capacity to fulfilling support tickets or other minor items. </p><p>No particular work here is going to be a surprising needle mover, although if it stops operating with extreme efficiency everyone from customers to the executive team will hear about it. This is the realm of scheduled work, Gantt charts, project management, utilization, and efficiency.</p><h3><strong>Focus needs</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XpH1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XpH1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png 424w, https://substackcdn.com/image/fetch/$s_!XpH1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png 848w, https://substackcdn.com/image/fetch/$s_!XpH1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png 1272w, https://substackcdn.com/image/fetch/$s_!XpH1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XpH1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png" width="1456" height="717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:717,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:119979,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XpH1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png 424w, https://substackcdn.com/image/fetch/$s_!XpH1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png 848w, https://substackcdn.com/image/fetch/$s_!XpH1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png 1272w, https://substackcdn.com/image/fetch/$s_!XpH1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d5b28e-aa77-418f-88db-9623fad4da81_1572x774.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Focus pods achieve through laser focus on their problem or goal, maximizing effectiveness at the potential expense of efficiency.</figcaption></figure></div><p>On the opposite end of the spectrum, the work of <strong>Innovation and Growth</strong> requires freedom and autonomy by the team to explore unknown problems and novel solutions. It requires the ability to focus, for extensive lengths of time, with little ROI. Risk-adjusted paths forward may require validation of assumptions or experiments, but overall - the path forward is unknown. </p><p>A team that succeeds in Innovation can have a massive singular impact through their work - like inventing a new product or allowing an organization to shift up-market. Progress is unpredictable, and as a result the team is unlikely to be working in an environment where predictions and estimates can be made with any reasonable accuracy. You rarely see Gantt charts detailing ahead of time when inventions will be invented. Teams here need to be effective, but they are unlikely to be efficient.</p><p>That is - the pod may not be fully utilized from an execution perspective. What might be seen as a team &#8220;twiddling their thumbs&#8221; is a team having space on ensuring the things they work on are the right things at the right time in the right way.</p><h3>Different kinds of work need different skills and mindsets</h3><p>There&#8217;s enough differences in the spectrum of Innovation vs. Support to reveal a fundamental truth: they require very different skillsets and mindsets.</p><p>The skills needed to create extremely predictability, operationalization, and meet SLAs are things like organization, process-orientation, quality assurance, and attention-to-detail. The skills needed to create extreme innovation are things like product intuition, experimentation, responsiveness to user feedback. </p><p>They are different skills, and some can be harmful when applied to projects on the opposite end of the spectrum. Imagine attempting to create a precise and accurate Gantt chart that predicts when the results of an experiment will be achieved and whether the goal was achieved before the experiment is even run - if you could, you wouldn&#8217;t need to run the experiment!</p><h2>The Core/Focus structure works because it better aligns expectations with reality</h2><p>By acknowledging the different needs, we&#8217;re able to structure the organization in a way that makes it easier to align expectations for contributors and, more importantly, executives.</p><h3>Contributor expectations</h3><p>Contributors who prefer predictable, planned work will likely prefer working on Core  pods. Contributors that prefer robust cross-functional interaction and dynamic problem solving will likely prefer Focus. There&#8217;s space for both.</p><h3>Executive expectations</h3><p>Executives should not expect teams operating in Core to suddenly come up with a meaningful improvement to a revenue KPI or come up with a new business line. It should be a welcome surprise if they do, but it should not be relied on, nor planned for, nor should those Core team members be held to producing such results. Executives should instead rely on the Core teams to keep the company operating as it has, smoothly and efficiently, and make space for any emergencies that occur. </p><p>Executives should not expect teams in Focus to be able to hop on to different areas every other week and still produce results. They shouldn&#8217;t expect Focus teams to be able to have schedule predictability, or to know when an innovation will occur. This is not the realm where teams should be held to estimates, or to create a six month roadmap. Teams should be allowed to freely experiment without an overly involved executive demanding justification at every step.</p><p>That&#8217;s not to say each group can&#8217;t do something outside of its area of the work type spectrum. In the event that a Fulfillment project does come to a Focus pod, or a Core pod suddenly needs to pivot on an emergency goal, executives should recognize that they might be able to do it, but they won&#8217;t be fully happy.</p><p>A Focus pod might be able to complete a fulfillment project, but the predictability and precision at which they do it may suffer. This is because fulfillment requires an entirely different set of skills than innovation or growth. They may not be experienced in breaking down work to such a granular detail ahead of time that delivery can be predicted down to the hour. Even if the work gets done, executives should not expect that it will be done to the same level of predictability, quality, or efficiency Core pod could achieve.</p><p>Likewise, a Core pod might be able to develop a brand new product, but the speed and scope may be less than desired. This is because innovation requires an entirely different set of skills than support or fulfillment. They may not be experienced in not worrying about schedule or taking risks with unknown effects. Even if the work gets done, executives should not expect that it will be done to the same level of speed, impact, or scope a Focus pod could achieve.</p><h3>Let birds fly and fish swim</h3><p>Fish should be judged by their ability to swim, and birds by their ability to fly. A fish not being able to fly isn&#8217;t a deficiency on the fish, nor is a bird unable to swim some issue with the bird. </p><p>This structure ultimately works because it forces an acknowledgement of the truth, that a person can&#8217;t do everything. The cost of having a person or pod be able to do everything is astronomically high, and also unlikely as the company increases focuses that require more and more depth to succeed in. </p><p>Scale-up companies have a hard time recognizing that, having come from roots where heroics saved the day, and even a single person could keep the entire system and business in their head. </p><p>The structure forces expectations to be aligned with reality.</p><div><hr></div><h1><strong>Implementing the Core/Focus structure</strong></h1><h2>Figure out if you have the problem</h2><p>The first step is to figure out if your organization even has the problem this structure addresses. A good solution to the wrong problem can be more harmful than the problem itself.</p><p>A post on the internet can&#8217;t tell you whether something will work for your organization or not. You&#8217;ll have to apply the context on your own. Consider the following signals it might not be right for you when thinking through the situation you&#8217;re in.</p><p><strong>Is your organization (or unit) too small? </strong>If you only have 10-15 engineers within your company or focused business unit , you don&#8217;t really need a structure like this. 10-15 engineers can organize as 2-4 teams, and it&#8217;s unlikely the benefits of strict segmentation will outweigh the costs of inflexibility. You don&#8217;t want an unnecessary division of labor if the benefits aren&#8217;t there.</p><p>It starts to show its benefits at the 25 - 50 engineer range, where the scope of ambition, resourcing availability, and cognitive overhead start to diverge.</p><p><strong>Is your organization too large? </strong>If you have 100+ engineers, your organization already likely organizes in some fashion related to domains or other topology. This inherently breaks down the organization into focused enough areas where this structure may not be needed. It may be helpful for sub-parts of that organization, however - the beauty is in the potentially infinite granularity.</p><p><strong>Is your organization already fairly focused? </strong>First of all, congratulations. If your organization has been disciplined enough to not attempt to expand into different focus areas, while still succeeding, you probably don&#8217;t need this organizational structure. This structure works best to pragmatically execute when the organization is attempting to do things that are traditionally felt as &#8220;too much&#8221;.</p><p><strong>Is your organization a project organization? </strong>Project organizations that are primarily agency-style builders rather than stewards probably don&#8217;t need this structure. Your job is to deliver a project for the client - how it gets maintained is probably not your job. This structure is intended for organizations that have a self-developed product that they shepherd over time and are attempting to balance between keeping it stable and innovating into new areas.</p><p><strong>Is your organization already effectively handling everything? </strong>If you have an efficient prioritization process, effective product-engineering collaboration, a reasonable processing of support and operations tasks, and have achieved a good balance between innovation and operation, you don&#8217;t need this structure. You should probably keep doing what you&#8217;re doing with the process you have set up - if it ain&#8217;t broke, don&#8217;t fix it.</p><p>At the end of the day, make sure your context matches. This structure works well in an startup growing from a small 10-person, do-everything team to a growing but lean business that needs to provide stability guarantees while simultaneously expanding into innovative areas. If this doesn&#8217;t describe your organization, be judicious.</p><h2>Experiment in a small dose</h2><p>Dramatically changing an entire organization structure is a high risk, winner-takes-all approach. It might be fast, but it&#8217;s extremely disruptive and if anything goes wrong you&#8217;ll be the first to get the boot.</p><p>Instead, start small and validate the solution works within your unique context. You, as the leader, should act as an umbrella to the teams to create the space for them to perform this experiment.</p><h3><strong>Start with Focus</strong></h3><p>First, start with a single Focus team. Remove all other distractions and give them the ability to focus. Give them guidance and empower them to truly say &#8220;no&#8221; on everything. Task them with a problem and set a 4-week time period in which the team can cook. At the end of the four weeks, check back, and see what happened and whether it worked? </p><p>What are signs it is working?</p><ul><li><p>The pod has a healthy set of changes released that might address the problem.</p></li><li><p>The pod understands, measures, and monitors the impact of those changes.</p></li><li><p>The pod works together on identifying problems, defining solutions, and performing experiments.</p></li><li><p>The team made a positive impact on the problem.</p></li></ul><p>If it doesn&#8217;t work, provide guidance and ensure you&#8217;ve set up the environment for success. Do you have the right mindset? Did they have the right clarity? Did they have the right skills?</p><h3><strong>Then, try a Core team.</strong></h3><p>Second, assign a team to work as if they were a Core team. </p><p>It&#8217;s more likely than not that your Pod is already running in some variant of a Core where a team&#8217;s roadmap has to be balanced across many different things. </p><p>Take one of those teams and set expectations that they aren&#8217;t expected to move the needle on a KPI, and have them own their roadmap and schedule for the next 6-9 weeks. </p><p>Their only outcome is to achieve balance and predictability and meet their commitment. They can ease off the throttle and not have to pivot to address things reactively. They don&#8217;t have to worry about trying to push forward a metric or KPI outcome while balancing stability, intake, and operational support.</p><p>Their one job would be to set a roadmap and meet it.</p><p><strong>Afterwards, evaluate: did either work, did neither work, did one work but not the other?</strong> </p><h2><strong>Scale the experiment</strong></h2><p>If you&#8217;re seeing positive results, expand the concept team by team.</p><p>Over time, you&#8217;ll formalize the Core/Focus split internally, and your organization will be happier for it. If it&#8217;s working, this ultimately means you have organizational buy-in and don&#8217;t really need to &#8220;sell&#8221; it.</p><p><strong>Watch out for the messy middle</strong></p><p>You may be left with a couple of teams that seem to be more &#8220;miscellaneous&#8221; in nature, or are still acting as something not quite Core or Focus. This is the messy middle of the transition, and you should do your best to figure out how to adjust the structure, intake, and prioritization to better align the work structure and the team. </p><p>Rotation approaches help (eg. one team focuses on a particular area, then switches off to act more like Core) in situations where you can&#8217;t quite say &#8220;no&#8221; to the work. </p><p>Over time, as long as you&#8217;re tracking future commitments and aligning them towards Focus or Core availability / capacity rather than looking at them as interchangeable, the burden should reduce.</p><h2>Obtain executive buy-in</h2><p>You can use this structure without buy-in from other executives, but it becomes much easier if the whole executive team is aligned with the approach - you spend less time putting your own neck on the line and arguing, and more time being effective.</p><p>Every executive team is different, but you should generally be prepared with data and narratives. You should have at your fingertips:</p><ul><li><p>The past 1-2 years of development and delivery performance, to demonstrate the impact on performance and results</p><ul><li><p>Suggested metrics: deployment frequency, PR throughput, list of feature and product releases, user and customer sentiment, outcomes achieved, success or failure of initiatives, etc.</p></li></ul></li><li><p>The past 1-2 years of investment allocation, broken out by team and team size, to demonstrate the lack of focus</p><ul><li><p>Suggested metrics: # of projects per team per month, average and median lead times, issue counts, issue type breakdowns</p></li></ul></li><li><p>Qualitative feedback from the team</p></li></ul><p>What&#8217;s your narrative? It really depends on what your metrics say, but if you&#8217;re even reading this, you&#8217;ll like have encountered:</p><ul><li><p>Too many different simultaneous pursuits negatively impacting effectiveness, success outcomes, and morale</p></li><li><p>Increased defect rates, or a litany of avoidable simple &#8220;unforced errors&#8221; that are par for the course on a distracted team</p></li><li><p>A lack of predictability resulting in stability issues or operational misses</p></li><li><p>A lack of effectiveness resulting in slower delivery or non-impactful busy-work</p></li><li><p>A lack of iteration leading to incomplete projects, loss of responsiveness to user feedback, and breadth of product scope that lacks depth and cohesion.</p></li></ul><p>If it turns out you don&#8217;t have data that aligns with the issues above - pause. Truly think about whether you are experiencing this problem and that it warrants a solution like this.</p><p><strong>Whatever data you have, show it visually.</strong> </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lZqd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lZqd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png 424w, https://substackcdn.com/image/fetch/$s_!lZqd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png 848w, https://substackcdn.com/image/fetch/$s_!lZqd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png 1272w, https://substackcdn.com/image/fetch/$s_!lZqd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lZqd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png" width="394" height="387.0265486725664" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:666,&quot;width&quot;:678,&quot;resizeWidth&quot;:394,&quot;bytes&quot;:573486,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lZqd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png 424w, https://substackcdn.com/image/fetch/$s_!lZqd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png 848w, https://substackcdn.com/image/fetch/$s_!lZqd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png 1272w, https://substackcdn.com/image/fetch/$s_!lZqd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5643830c-4b22-4303-9a9b-9fd7644d7b17_678x666.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s one thing to say &#8220;we worked on 200 projects this year&#8221;. It&#8217;s another thing entirely to show a pie chart with 200 slices, and a headline saying that only six days were spent on average on any given project. Can a team realistically be expected to create amazing, innovative products if they only spend 6 days on any one product?</p><p><strong>Aim for these two points</strong></p><p>Your two key buy-in points you want to achieve:</p><ul><li><p>Acknowledgement from executives that there is too much being done at once</p><ul><li><p>This means that the executives become more disciplined in not committing to major new areas without considering resourcing.</p></li></ul></li><li><p>Acknowledgement from executives to respect the resource split</p><ul><li><p>This means that if a new initiative begins, a team must be available to work on it instead of expecting a team already working on another thing to work on it simultaneously.</p></li></ul></li></ul><p>Once you have it, it&#8217;s all on you to set the Core/Focus structure up for success.</p><div><hr></div><h1>Set it up for success</h1><h2>Think about who leads Core</h2><p>For Core, you want leaders who can keep the trains running on time. </p><p>Planning, projection, orchestration, scheduling and organizational skills are key. You want detail-focused predictability creators. Capable of prioritizing and sequencing work in a way that results in the most efficient and stable execution.</p><p>The leader should excel at communication to other internal stakeholders. They' are the ones that will set the tempo and keep the organization in the loop, providing stability. They&#8217;ll need to set a sustainable, steady, somewhat slow pace.</p><h2>Think about who leads Focus</h2><p>For Focus, you want leaders who have high imagination and the ability to iterate to get to their desired goal. </p><p>These are your problem solvers. They shouldn&#8217;t be burdened by bureaucracy, or bothered by a desire to achieve perfect. For them, good enough should be good enough. They are the ones that can make highly effective trade-off decisions, knowing what to keep and what to cut.</p><p>The Focus teams work best filled with excellent collaborators who prefer working in real-time to solve the problem together.</p><h2>Try to keep it stable</h2><p>The entire premise of this structure is teams work best when they can be stable. However, sometimes you may need to move teams or people from one group or another to support major business changes.</p><p>This happens, but try to do so sparingly. As much as possible, let Focus teams focus and be effective, and let Core teams stabilize and create predictability.</p><h2>Don&#8217;t be overly rigid</h2><p>Sometimes your Core pods will find time and <em>desire</em> to work on something a bit more innovative or experimental. Other times, your Focus pods will find an operational irritation that they want to fix.</p><p>That&#8217;s OK - as long as these things don&#8217;t <em>distract them</em> and are, as much as possible, voluntary from the Pod&#8217;s perspective. The structure is not intended to be a prison for the contributors, but a tool for expectation management.</p><div><hr></div><h1>Working with executives using this structure</h1><h2><strong>Acknowledge it requires executive discipline</strong></h2><p>Executives can easily cross boundaries and create exceptions that ultimately dismantle or render this structure ineffective. It&#8217;s important to remind people that the structure only works if the constraints of the structure regarding expectations are respected.</p><h2><strong>Align on an allocation approach</strong></h2><p>I&#8217;ve found it best when executives make their investments based on allocations. How much money and time they want to invest in solving a problem. </p><p>Executive interests vary, from pushing forward a metric, to creating a specific feature, to solving a particular problem. It&#8217;s often difficult to get <em>everyone</em> on an executive team to think at the level of a goal or problem. If you can do so, congratulations - you are a better executive whisperer than I. </p><p>I personally prefer an approach that allows for a bit more pragmatism to support a transition from specifying particular features to thinking about more broader investment categories.</p><p>Try not to get tied into specific projects - you can set a limit if you prefer. Instead, guide folks </p><p>towards &#8220;problem areas&#8221; or &#8220;goals" they want to achieve to secure autonomy for your teams.</p><h2><strong>Visualize capacity and focus with boxes</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!REg6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!REg6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png 424w, https://substackcdn.com/image/fetch/$s_!REg6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png 848w, https://substackcdn.com/image/fetch/$s_!REg6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png 1272w, https://substackcdn.com/image/fetch/$s_!REg6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!REg6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png" width="1456" height="173" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:173,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:120457,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!REg6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png 424w, https://substackcdn.com/image/fetch/$s_!REg6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png 848w, https://substackcdn.com/image/fetch/$s_!REg6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png 1272w, https://substackcdn.com/image/fetch/$s_!REg6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eec966d-4fba-4c65-9f70-12665f9a0eb9_2968x352.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I prefer a simple &#8220;box&#8221; approach - it&#8217;s both easy to understand and helps illustrate the availability of chips. It aligns well with the Core/Focus structure.</p><p>When a new executive &#8220;thing&#8221; needs to be done, it helps to have everyone look at the box and ask &#8220;when and where does it fit?&#8221;</p><p>If a box already has an entry in it, the following conversation is then clear: &#8220;are we willing to drop this thing we were already going to do?&#8221;.</p><p>If there are no boxes left - congratulations, you are 100% allocated. Unless new capacity is built, or we can tolerate lower delivery and capability by shifting people around, the items cannot be worked on by the organization according to its current state and roadmap. It&#8217;s as clear as day.</p><p>You&#8217;ll have to guide people in the conversation - push back on attempts to assign specific <em>individuals</em> to projects (development is a team sport). Guide people against the ever tempting allure of having a Core pod do it. </p><p>Remember: you&#8217;re the first line of defense against the structure being eroded.</p><h2><strong>Pro-actively report results</strong></h2><p>You can&#8217;t just create a major structure change, and then completely forget it exists. </p><p>Organizational change management requires reporting of results, and regular evaluation of whether the structure and process are still suitable and working as intended. </p><p>Pro-active provide reports of trends in the areas the team cares about - effectiveness, efficiency, impact, morale. The metrics you shared to justify the structure change should also be tracked after it&#8217;s been implemented. A cadence of once a quarter can be a good start.</p><div><hr></div><h1>Parting thoughts</h1><p>Startups have to both survive and thrive, while growing multiplicatively. It often means the structure needs to change to support the new phase of the business. Ensuring that expectations and capability are aligned from the contributor up to the executive can help ensure continued effectiveness and achieve organizational balance in stability and innovation.</p><p>Be judicious. If this structure works for you - excellent! If not, don&#8217;t be afraid to throw it out and try something else that better fits your context.</p>]]></content:encoded></item></channel></rss>