<?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[Jose Lima Neto]]></title><description><![CDATA[Software Engineering Stuff!]]></description><link>https://blog.joselimaneto.com</link><image><url>https://substackcdn.com/image/fetch/$s_!DZjJ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe892fb77-0207-42a0-9c1f-60accaf9f3c6_1147x1147.png</url><title>Jose Lima Neto</title><link>https://blog.joselimaneto.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 24 Apr 2026 10:24:07 GMT</lastBuildDate><atom:link href="https://blog.joselimaneto.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Jose Lima Neto]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[joselimaneto@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[joselimaneto@substack.com]]></itunes:email><itunes:name><![CDATA[Jose Lima Neto]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jose Lima Neto]]></itunes:author><googleplay:owner><![CDATA[joselimaneto@substack.com]]></googleplay:owner><googleplay:email><![CDATA[joselimaneto@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jose Lima Neto]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Prudent Software Development]]></title><description><![CDATA[Balancing Technical Debt and Avoiding Messy Code]]></description><link>https://blog.joselimaneto.com/p/prudent-software-development</link><guid isPermaLink="false">https://blog.joselimaneto.com/p/prudent-software-development</guid><dc:creator><![CDATA[Jose Lima Neto]]></dc:creator><pubDate>Sun, 12 Nov 2023 21:24:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xgtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024" 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_!xgtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xgtR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024 424w, https://substackcdn.com/image/fetch/$s_!xgtR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024 848w, https://substackcdn.com/image/fetch/$s_!xgtR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024 1272w, https://substackcdn.com/image/fetch/$s_!xgtR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xgtR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024" width="724" height="724" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b37dac3e-0538-452d-b30f-63130cccd445_1024x1024&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&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_!xgtR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024 424w, https://substackcdn.com/image/fetch/$s_!xgtR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024 848w, https://substackcdn.com/image/fetch/$s_!xgtR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024 1272w, https://substackcdn.com/image/fetch/$s_!xgtR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37dac3e-0538-452d-b30f-63130cccd445_1024x1024 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 have recently delved into the concept of technical debt through a series of articles, among which <a href="https://martinfowler.com/bliki/TechnicalDebtQuadrant.html">this insightful piece</a> by the esteemed Martin Fowler stood out. In his article, Fowler describes the Technical Debt Quadrant and also references the observations of Uncle Bob regarding <a href="https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt">messy code and its relation to technical debt</a>. These discussions resonated a lot with my own past experiences. Reflecting on these discussions, I've recognized a key concern in my technical leadership career: <em>ensuring that my teams engage in prudent software development</em>.</p><p>In recent projects, I've encountered a significant amount of legacy code. The challenge, however, wasn't the legacy code itself but rather its disorganized and messy state. To illustrate that, I encountered methods that spanned thousands of lines of code and files containing literally +5K lines of code &#8212; a clear testament to the level of disorder. Unfortunately, the existing engineering culture at that time referred to that mess as "technical debt&#8221;. <em>Simply, it was not!</em></p><p>Ward Cunningham, years ago, defined "technical debt" as the necessary engineering trade-offs made to meet pressing business requirements and customer needs, often under tight schedules. There is nothing wrong with assuming suboptimal solutions in order to accelerate product releases. That is part of the game while developing software specially for business purposes. However, a method with 4K lines of code &#128552; should never be considered in that category. As the wise Uncle Bob affirmed, <em>"A mess is not a technical debt. A mess is just a mess.&#8221;</em></p><p>Technical debt, a part of our ongoing trade-offs in software engineering, should not be an excuse for poor code quality. True technical debt arises from genuine project constraints and should offer a clear benefit for the impending release, entailing reasonable risks and being manageable.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.joselimaneto.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 Jose Lima Neto! 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><blockquote><h3><strong>Why Might Teams Write Messy Code?</strong></h3></blockquote><p>In my experience, I have observed teams descending into disorder due to two primary factors: <em>irrational decision-making</em> and <em>poor work ethics</em>. Often, the intense pressure of meeting business demands and adhering to tight release schedules can lead teams, especially those with less experience, to abandon rational planning. In their haste, they may end up implementing solutions without proper process or discipline. This approach inevitably results in losses, not just for the team, but for the entire organization.</p><p>Poor work ethics is another significant contributor to messy outcomes in software development. Factors like laziness and unprofessionalism are at the core of poor work ethics. Theses factors can be deeply rooted in the culture of the organization by the people building it up. Dealing with this type of challenge extends beyond the scope of engineering techniques. Addressing them effectively requires a cultural shift within the organization, which usually involve replacing individuals who perpetuate these negative behaviors.</p><blockquote><h3><strong>Working Towards Clean Technical Debt</strong></h3></blockquote><p>To achieve this, technical leaders and managers must empower teams to work on the basis of prudent software development. From Fowler's Technical Debt Quadrant, we can figure that a prudent debt aligns with the concept of technical debts. By deliberating taking a debt, a team should be prudent on whether an earlier release pays off or its costs will be irrationally high. In that sense, the consequences of debts will tend to be wisely beneficial and manageable to pay them down.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CaIe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CaIe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png 424w, https://substackcdn.com/image/fetch/$s_!CaIe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png 848w, https://substackcdn.com/image/fetch/$s_!CaIe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png 1272w, https://substackcdn.com/image/fetch/$s_!CaIe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CaIe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png" width="1118" height="802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:802,&quot;width&quot;:1118,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:238468,&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_!CaIe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png 424w, https://substackcdn.com/image/fetch/$s_!CaIe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png 848w, https://substackcdn.com/image/fetch/$s_!CaIe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.png 1272w, https://substackcdn.com/image/fetch/$s_!CaIe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9a7422-f6cb-4f27-92ab-ddec2be6b5e5_1118x802.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 href="https://martinfowler.com/bliki/TechnicalDebtQuadrant.html">Technical Debt Quadrant</a> by Marin Fowler</figcaption></figure></div><p></p><blockquote><h3><strong>Managing Technical Debt Effectively</strong></h3></blockquote><p>Effective management of technical debt requires a proactive approach. The first step is to acknowledge and document technical debt as it occurs. This involves keeping a record of where and why compromises are made, and the anticipated impact. Regularly reviewing and prioritizing technical debt during project iterations can help ensure that it doesn't accumulate unchecked. This process allows teams to make informed decisions about when and how to address technical debt.</p><p>Additionally, implementing good developemnt practices and standards is crucial. RFCs (Request for Comments), Design reviews, Code reviews, Pair programming, and adherence to design patterns can significantly reduce the introduction of messy code. Such practices also promote knowledge sharing and collective code ownership, which are vital for maintaining code quality over time.</p><blockquote><h3><strong>Cultivating Prudent Software Development</strong></h3></blockquote><p>Creating a culture of prudent software development involves more than just technical practices; it requires a shift in the engineering mindset. Encourage teams to take a long-term view of their work and understand the future implications of their coding choices. Robust engineering processes like Request for Comments (RFCs) and Architecture Decision Records (ADRs) are essential tools for establishing long-term visions and documenting key decisions, thereby facilitating world-class software development. </p><p>Emphasizing the importance of sustainable development and continuous learning can also help cultivate a prudent culture. Investing in training and professional development will equip teams with the hard and soft skills they need to make prudent decisions under pressure.</p><p>Moreover, it&#8217;s essential to establish an environment where team members feel empowered to voice concerns about potential technical debt. Open communication and a blame-free culture can help in identifying issues early and addressing them before they escalate.</p><p>In conclusion, while technical debt is an inherent part of software development, its management is critical. By distinguishing between prudent technical debt and messy code, and fostering a culture that values sustainable and thoughtful development practices, teams can deliver high-quality software that meets business needs without compromising future maintainability and scalability of the entire organization.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.joselimaneto.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 Jose Lima Neto! 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>]]></content:encoded></item><item><title><![CDATA[Navigating the Nuances of Technical Leadership: Beyond Code and Concepts]]></title><description><![CDATA[Unpacking the essence of technical leadership, bridging expertise with team evolution.]]></description><link>https://blog.joselimaneto.com/p/navigating-the-nuances-of-technical</link><guid isPermaLink="false">https://blog.joselimaneto.com/p/navigating-the-nuances-of-technical</guid><dc:creator><![CDATA[Jose Lima Neto]]></dc:creator><pubDate>Mon, 11 Sep 2023 12:07:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!O1TJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024" length="0" type="image/jpeg"/><content:encoded><![CDATA[<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_!O1TJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O1TJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024 424w, https://substackcdn.com/image/fetch/$s_!O1TJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024 848w, https://substackcdn.com/image/fetch/$s_!O1TJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024 1272w, https://substackcdn.com/image/fetch/$s_!O1TJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O1TJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024" width="512" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:512,&quot;width&quot;:512,&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;: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_!O1TJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024 424w, https://substackcdn.com/image/fetch/$s_!O1TJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024 848w, https://substackcdn.com/image/fetch/$s_!O1TJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024 1272w, https://substackcdn.com/image/fetch/$s_!O1TJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f1b3331-bf1b-4251-8665-ff5bd753f650_1024x1024 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><figcaption class="image-caption"></figcaption></figure></div><p>Back in 2021, I became an Engineering Manager at QuintoAndar, a well-known real estate tech-company in Brazil. That was an exciting opportunity for me to explore a new career path in management and further develop my leadership skills. Since then, I have also worked as a manager at Rei do Pitaco and Inventa Shop, both early-stage Brazilian startups. All of these experiences taught me valuable lessons about managing, but specially leading tech teams.</p><p>Each of those companies had a different approach to software engineering and product development. This allowed me to grow as a manager by exposing myself to various organizational scenarios and expectations for the role. Therefore, before delving into the specifics of this post, it's important to recognize that every organization you work for will have its own perspectives on leadership roles. I have learned that many of these perspectives are deeply connected to the company's values and culture. The journey will be much simpler if your perspectives are aligned with those of the company.</p><p>After two-intensive years in the management path, I felt a strong pull back to the hands-on tech side of things, where my true passion lies. Looking back, all of these career and job moves have been a journey of self-discovery, during which I have been able to explore what truly inspires me professionally &#8212; <em>the technical aspects of engineering software.</em></p><p>In the software industry, making continuous impact over time goes beyond the realm of code, algorithms, design patterns, and software architecture. As an experienced engineer, you will eventually need to transition from being a software contributor to overseeing not just projects, but also people, processes, and overarching visions. Developing such skills is essential whether you want to stay on a technical track or move into the management path. From what I have seen and experienced, the impact of a Senior Engineer will invariably depend on how they can lead the way through projects, while also helping people and evolving processes. That means ascending to an engineering leadership level which is not solely about mastering the tech craft, but rather a blend of technical prowess, strategic foresight, and nurturing team growth.</p><p>Now, deeply immersed in the technical intricacies and drawing from my varied leadership roles, I want to share some of the key attributes and actions that I believe can distinguish ordinary technical leadership from effective technical leadership.</p><h3><strong>The Realm of Technical Proficiency &amp; Business Acumen</strong></h3><p>A team invariably looks to its leader for solutions and clarity. It is paramount for technical leaders to serve as a reference for their teams. Regardless of their functional requirements, projects will require well-formed technical decisions that can ensure the basis for supporting expected functionalities of the software.</p><p>Two tactics have helped me acquire technical proficiency along the way: first, understanding well-known solutions for common problems; and second, staying up-to-date with the latest approaches in technology, tools, and methodologies from other practitioners in the software industry.</p><p>Many day-to-day problems have already been solved using various software design and architecture patterns. As a technical leader, it's crucial to analyze problems effectively, and then choose technical solutions that fit them, rather than the other way around. As you encounter more specific problems, you'll need to specialize your knowledge accordingly and eventually expand your map of solutions to the cutting edge of innovation. In other words, stay tuned about the hypes and embrace the state-of-the-art of the industry.</p><p>Furthermore, being deeply involved in the business domain ensures that every decision made is both technically sound and pragmatic. Understanding the big picture of the business and correlating it with technical challenges will ensure dominance in both technology and business. Every decision and line of code should cater to the broader business narrative. As a leader, understanding and aligning with the company's goals ensures that you are not just coding but orchestrating solutions that resonate with real problems in the organization and its products.</p><h3><strong>Foresight &amp; Continuous Improvement</strong></h3><p>The journey of a leader often involves envisioning the future. This vision should not only address known challenges but also anticipate the "known unknowns". A "known unknown" refers to something that we are aware we don't know yet. It's a gap in our knowledge that we can identify. In the context of decision-making or problem-solving, "known unknowns" represent factors or variables that we recognize as uncertain or missing but understand that they play a certain role in the situation and have to be addressed at some point.</p><p>For example, a software development team is aware that they might face spikes in traffic but doesn't know when these spikes will occur. This is a "known unknown". In such cases, the team needs to come up with proper mechanisms to proactively foresee perspectives for addressing "known unknowns" when they arise (metrics for service monitoring and alerts can help in this case). Properly handling "known unknowns" can prevent chaotic firefighting and ensure the smooth execution of big, challenging projects.</p><p>As we move forward, we should avoid complacency. Just as software is ever-evolving, our processes should evolve as well. Regular iteration, identifying inefficiencies, and ensuring that the team's modus operandi evolves with time can make the difference between a good team and a great, effective one. Recurring retrospective rituals, writing postmortems for projects, and using collaborative decision-making processes (like RFCs) can help guide teams to improve their technical quality over time.</p><h3><strong>Team Empowerment &amp; Growth</strong></h3><p>Our code, in many ways, is a reflection of our craft, our passion. As technical leaders, standing up for best engineering practices ensures that this reflection shines bright. It&#8217;s about ensuring robustness in the product and longevity in the team's efforts. And while processes and code are crucial, the true essence of leadership lies in recognizing and nurturing potential of the individuals in the team. An empowered team is one that's on a continuous learning curve. Engineering leaders must be both catalysts and multipliers of such curve.</p><p>As catalysts, engineering leaders can always be seeking opportunities for the other engineers in the team to expand their horizons, be it through new projects, challenging tasks, or tailored training sessions. As multipliers, engineering leaders should always strive to find ways to transfer technical knowledge within the organization. By doing so, their accumulated expertise can be applied by others in similar circumstances.</p><p>Technical leadership plays a crucial mentorship role in any organization. It involves not only leading projects, but also boosting soft skills and providing career guidance. These responsibilities are not solely the jobs of management. Ensuring team growth and development is an integral part of the technical leadership position as well.</p><p>Technical leadership is not just a title; it's a journey. Like any journey, it may encounter many nuances especially when it comes to the company's culture and values. However, it is ultimately a combination of technical expertise, strategic vision, and genuine care for the team. As we progress in our careers, we should remember that our personal growth is not enough; we must also ensure that our teams grow with us. The growth, epiphanies, and hurdles we face all shape the narrative, along with the code we write.</p>]]></content:encoded></item></channel></rss>