<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: frontpills</title>
    <description>The latest articles on DEV Community by frontpills (@frontpills).</description>
    <link>https://dev.to/frontpills</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2191383%2F5194d449-ec8b-4c70-9d5a-7c264ecf8cc5.jpg</url>
      <title>DEV Community: frontpills</title>
      <link>https://dev.to/frontpills</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/frontpills"/>
    <language>en</language>
    <item>
      <title>Skeptics Shall Inherit the AI</title>
      <dc:creator>frontpills</dc:creator>
      <pubDate>Mon, 10 Feb 2025 20:42:55 +0000</pubDate>
      <link>https://dev.to/frontpills/skeptics-shall-inherit-the-ai-2bkb</link>
      <guid>https://dev.to/frontpills/skeptics-shall-inherit-the-ai-2bkb</guid>
      <description>&lt;p&gt;Skeptics Shall Inherit the AI: Why Those Who Doubt AI Can Make the Most of It&lt;/p&gt;

&lt;p&gt;First post of the year: a new reflection on the impact of AI on human progress. This is a topic I think about often. AI has made its way into every field and is being used indiscriminately.&lt;/p&gt;

&lt;p&gt;I spend a good part of each day at the park and try to chat with other parents to pass the time. I also take these opportunities to bring up the topic of AI with people who are less tech-savvy (they probably think of me as the AI guy).&lt;/p&gt;

&lt;p&gt;The responses always surprise me, regardless of their profession, everyone has found a way AI makes their work easier. There’s an obvious positive takeaway, but I won’t go into detail because it doesn’t seem particularly interesting, we’re already familiar with it.&lt;/p&gt;

&lt;p&gt;What interests me is understanding the risks, probably due to my naturally pessimistic outlook.&lt;/p&gt;

&lt;p&gt;Here’s an example: a professor using LLMs for text analysis. They upload a PDF of a publication, ask the LLM to summarize it, and, if needed, request further insights about the content. How much is being lost by following this process? Maybe text analysis is one of those tasks where LLMs excel, and little to nothing is lost. But if we extend this approach to other areas of professional life, how many mistakes are being made by delegating certain tasks to AI? Mistakes that might go unnoticed at first, leading to incorrect conclusions or even introducing bugs in the world of software development.&lt;/p&gt;

&lt;p&gt;The real risk lies in the trust we place in AI. The greater the trust, the less we review. The less we review, the more errors slip through. That’s why I believe those who will truly benefit from these new tools are the ones who remain the most skeptical.&lt;/p&gt;

&lt;p&gt;Let’s take software development as an example. As I explored in another post, &lt;a href="https://frontpills.com/posts/2024/ai-developers/" rel="noopener noreferrer"&gt;You shouldn’t use AI for programming&lt;/a&gt;, blindly following AI-generated solutions doesn’t just impact the present state of a project—it also shapes long-term habits that affect both the project’s future and the developer’s growth.&lt;/p&gt;

&lt;p&gt;Those who remain skeptical will rely less on AI tools, and when they do use them, they will analyze the proposed solutions more carefully. This approach helps prevent errors and enhances professional development. The tool becomes a means to understand different ways of solving a problem, rather than a crutch. The professional grows, and the tool assists.&lt;/p&gt;

&lt;p&gt;Everything else, in any field, will be replaced. I’m not a fan of predictions, but I truly believe that those who should fear these new tools the most are the ones using them indiscriminately. What unique value do they bring to the process that couldn’t be replaced by someone else? Someone who questions AI a little more, perhaps.&lt;/p&gt;

&lt;p&gt;This replacement isn’t just about professionals. I’ve seen companies embrace technology without asking the right questions, without the deep reflection needed to understand these risks and how to manage them. A day will come when AI no longer makes mistakes, but until then, the real value still comes from humans.&lt;/p&gt;

</description>
      <category>engineering</category>
      <category>ai</category>
      <category>machinelearning</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Tech Leads: To Code or Not to Code? (and other questions)</title>
      <dc:creator>frontpills</dc:creator>
      <pubDate>Mon, 09 Dec 2024 21:46:35 +0000</pubDate>
      <link>https://dev.to/frontpills/tech-leads-to-code-or-not-to-code-and-other-questions-4j8e</link>
      <guid>https://dev.to/frontpills/tech-leads-to-code-or-not-to-code-and-other-questions-4j8e</guid>
      <description>&lt;p&gt;What exactly does a Tech Lead do, and should coding still be part of their role?&lt;/p&gt;

&lt;p&gt;There is no clear definition for the role of a tech lead. Each company establishes its own definition based on the day-to-day needs it faces. This brings us to the first key point: since the responsibilities of a tech lead can vary from one company to another, the required skills extend beyond those needed for a specific position in a single company. This represents a significant challenge in a tech lead's career, as it requires broader and less clearly defined preparation compared to an IC (individual contributor) or developer. Does programming still fall within the responsibilities of a tech lead?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Lead's effectiveness depends on remaining technically engaged, staying familiar with the codebase ensures accurate decision-making, mentoring, and code review.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Below is a simplified list of common responsibilities associated with the role in most companies. Many of these are shared with other positions but are undeniably integral to a tech lead's role.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution Architecture&lt;/strong&gt;. At various stages of a project, technical challenges arise that require analysis and design to implement solutions that align with the project's objectives. For example, at the start of the project, this may involve the conceptualization and initial implementation of the different layers and components used during development, defining processes and workflows for deployment, or establishing style guidelines. It entails making technological decisions throughout the project's lifecycle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical Management&lt;/strong&gt; (planning, estimation, prioritization, task assignment, supervision, etc.). Technical management is another process that varies significantly between companies and teams. It requires the Tech Lead to be involved in task definition at all levels. The Tech Lead should envision the steps and the time required to complete each task. This is not just about knowing the technology but also understanding how the project functions at a low level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mentoring&lt;/strong&gt;. The Tech Lead is the person with the closest contact with developers. As part of a developer's learning and growth process, the Tech Lead must guide the team in best practices, onboarding, explaining how the project operates, and helping professionals reach a place where they can fully develop their potential. Indirectly, the Tech Lead must earn the team's trust by demonstrating their technical leadership skills. Their contributions are critical as a role model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supporting Developers&lt;/strong&gt;. The Tech Lead must know where to direct developers to find answers to their technical questions. They need to have sufficient experience and knowledge of the tools to act as a technological enabler, helping to unblock issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Review&lt;/strong&gt;. Code review, whether through pull requests or periodic code audits, is a key responsibility. Evaluating the implemented solutions is very difficult if the Tech Lead has not encountered similar problems, lacks project context, or is unable to navigate the codebase effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Acting as a Facilitator&lt;/strong&gt;. The Tech Lead is not expected to always have the answer but is always responsible for facilitating processes and tasks. This involves decision-making, delegating tasks to other team members, and effective communication (within the team, between teams, and externally). The ability to communicate technical issues relies heavily on the Tech Lead's capacity to understand the problem and its nuances. The context of each issue can be highly complex and may require deep knowledge of the software's functionality, the implemented mechanisms, and the existing codebase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Quality Assurance&lt;/strong&gt;. Each part of the code can be easily measured in terms of quality when evaluated in isolation or partially, but not in its entirety. Assessing code quality requires proper contextualization. Absolute evaluation is determined by the business requirements and the project context. The Tech Lead has privileged knowledge of these two aspects, gained through their involvement in project management and their technical expertise.&lt;/p&gt;

&lt;p&gt;Therefore, these skills are developed through hands-on problem-solving while coding. In response to the question posed at the beginning of this post, my answer is a resounding yes. The responsibilities of a Tech Lead require both a general understanding of the languages and tools used for project development and specific expertise in applying these tools within the context of the projects. If this fundamental dimension of a project is removed by the company or overlooked by the professional, it undoubtedly constitutes negligence.&lt;/p&gt;

&lt;p&gt;Software engineering exists in a state of constant and rapid evolution, making it incomparable to other types of engineering. In other fields, experience accumulated over time often allows professionals to distance themselves from the specific details of implementation. This paves the way for career paths where workers take on management roles while their practical knowledge remains relevant for years or even decades.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should be done when programming tasks are reduced or no longer exist?
&lt;/h2&gt;

&lt;p&gt;As a good professional and a capable Tech Lead, it is their duty to avoid this negligence. Out of loyalty to the company that employs them, they should advocate for and educate others on the importance of maintaining technical involvement. As we have seen, the common responsibilities of a Tech Lead demand continuous learning and updates, which will be negatively affected if the professional is not adequately prepared.&lt;/p&gt;

&lt;p&gt;More importantly, this is essential for their own professional development. The skills required for Tech Lead positions often overlap with those of regular Software Engineers in many companies, and this overlap makes sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  What percentage of time should a Tech Lead dedicate to coding?
&lt;/h2&gt;

&lt;p&gt;It is a fundamental and irreplaceable part of the role, but the true value of a Tech Lead comes from their contributions to the team, meaning the majority of their time should be spent on other responsibilities. It is difficult to define an exact percentage, as this will depend on various factors, such as their experience with the technologies and the project itself. However, a healthy balance is typically around 20%.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should a Tech Lead never stop coding?
&lt;/h2&gt;

&lt;p&gt;The role of a Tech Lead is inherently tied to coding. For some, it is a career destination; for others, a transitional phase. As I see it, it is the crossroads where developers either transition into Engineering Managers, stepping away from the daily hands-on coding, or reaffirm their commitment to the technical path and continue advancing in technical roles (e.g., Staff Engineer, Principal Engineer, etc.). Ultimately, it is a deeply personal choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  How skilled and up-to-date does a Tech Lead need to be?
&lt;/h2&gt;

&lt;p&gt;A Tech Lead must be highly skilled in the technologies they work with, as their team will look to them for solutions. However, they don't necessarily need to be the most knowledgeable about every technology. Instead, they should excel at enabling the team to find solutions. This might involve making critical technical decisions, resolving a bug, or connecting a developer with someone who can provide the right solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does one become a Tech Lead?
&lt;/h2&gt;

&lt;p&gt;Throughout this post, we have explored the most important aspects of the role. However, what I believe is fundamental to becoming a good Tech Lead is the ability to bridge technology and business. Many developers are outstanding in their technical skills but fail to adequately consider business requirements. The most critical reality of software is that it is a means to an end, not the end itself. This demands placing greater emphasis on the business side than the technological one.&lt;/p&gt;

&lt;p&gt;A Tech Lead must be capable of developing critical thinking. For example, sometimes it is more important to deliver something basic and functional quickly than something complete but delayed. Ask the right questions and reflect: Is this functionality truly necessary?&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://frontpills.com/" rel="noopener noreferrer"&gt;frontpills.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>software</category>
      <category>engineering</category>
      <category>leadership</category>
      <category>management</category>
    </item>
    <item>
      <title>AI and the Dawn of a Mediocre Era</title>
      <dc:creator>frontpills</dc:creator>
      <pubDate>Tue, 15 Oct 2024 20:30:41 +0000</pubDate>
      <link>https://dev.to/frontpills/ai-and-the-dawn-of-a-mediocre-era-50mk</link>
      <guid>https://dev.to/frontpills/ai-and-the-dawn-of-a-mediocre-era-50mk</guid>
      <description>&lt;p&gt;I can’t help but think about the recent achievements of Elon Musk’s companies.&lt;/p&gt;

&lt;p&gt;In the same week that he presents his new autonomous vehicles and a humanoid robot, SpaceX makes impressive advances in its mission to take humanity to Mars and manages to recover a rocket falling from space using two “chopsticks” with astonishing precision. Although the person himself isn’t particularly admirable to me, there’s no denying that Elon Musk is shaping the future.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1845452580958216247-457" src="https://platform.twitter.com/embed/Tweet.html?id=1845452580958216247"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1845452580958216247-457');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1845452580958216247&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;In recent years, we’ve witnessed another revolution (in which Elon Musk is also involved): generative models in all their forms (LLM, vision, audio, diffusion, etc.), commonly referred to as AI.&lt;/p&gt;

&lt;p&gt;However, humanity is placing too much hope in these tools. Society’s expectations far exceed the capabilities of these systems today. In a previous article, &lt;a href="https://frontpills.com/posts/2024/ai-developers/" rel="noopener noreferrer"&gt;You shouldn’t use AI for programming&lt;/a&gt;, I already discussed the relationship between AI and software development and the quality risks it has. This phenomenon extends to many other fields as well.&lt;/p&gt;

&lt;p&gt;A clear example is online content creation, such as blogs, news media, and similar platforms. AI-generated content is flooding us in many ways. The generation of images by systems like &lt;a href="https://copilot.microsoft.com/" rel="noopener noreferrer"&gt;Copilot&lt;/a&gt; or &lt;a href="https://openai.com/index/dall-e-3/" rel="noopener noreferrer"&gt;DALL-E&lt;/a&gt; is omnipresent in many media, often resulting in low-quality images, which reflects the low value some creators place on these resources. In my opinion, this devalues the content, the image, and the brand. It would be more honest to limit their use.&lt;/p&gt;

&lt;p&gt;Beyond the fact that these systems are not yet developed enough for the applications we are trying to give them, there is an essential and concerning aspect: &lt;strong&gt;we are deliberately removing human involvement from many projects&lt;/strong&gt;, regardless of the outcome. I’m not talking about the economic aspect or the implications of a society with less employment. I’m talking about human capabilities. We are not enhancing people’s skills. We are driving them to do less, achieving worse results. &lt;strong&gt;We are leading humanity down a path of less effort, dedication, discipline, reflection, and imagination. Do you really believe it’s possible to reach Mars while diminishing these human capabilities? No future advancement will be possible with a humanity held back by a lack of encouragement in a mediocre society.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a vicious circle: one of the pillars of the current generative systems paradigm is that they feed on existing content to learn what is expected of a task. However, we’re not producing higher-quality content, on the contrary, we’re making it worse.&lt;/p&gt;

&lt;p&gt;The future of AI is uncertain, with no guarantees, and we don’t really know where we stand or how far we’ll be able to go without new innovations in the field. Significant advances in the current systems could take months or decades.&lt;/p&gt;

&lt;p&gt;Welcome. The age of mediocrity begins here.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://frontpills.com/" rel="noopener noreferrer"&gt;frontpills.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>engineering</category>
      <category>machinelearning</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>You shouldn't use AI for programming</title>
      <dc:creator>frontpills</dc:creator>
      <pubDate>Wed, 09 Oct 2024 22:06:00 +0000</pubDate>
      <link>https://dev.to/frontpills/you-shouldnt-use-ai-for-programming-jgb</link>
      <guid>https://dev.to/frontpills/you-shouldnt-use-ai-for-programming-jgb</guid>
      <description>&lt;p&gt;You shouldn’t use AI for programming.&lt;/p&gt;

&lt;p&gt;Well, not exactly. You shouldn’t use AI for programming in certain situations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not as a fundamental step in your coding process.&lt;/li&gt;
&lt;li&gt;Not if you don’t understand the problem.&lt;/li&gt;
&lt;li&gt;Not if you don’t understand the solution.&lt;/li&gt;
&lt;li&gt;Not while you’re still learning.&lt;/li&gt;
&lt;li&gt;Not right now.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This week, I read this tweet by @housecor:&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1843690071834407169-418" src="https://platform.twitter.com/embed/Tweet.html?id=1843690071834407169"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1843690071834407169-418');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1843690071834407169&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;The main idea really resonated with me. I write and review hundreds of lines of code every week, and I believe I can sense when a piece of code is written with AI. Right now, it’s often easy to detect. Most of the time, the generated code feels a bit “off”, to put it simply. However, it won’t be long before the generated code becomes more natural and is no longer easy to spot.&lt;/p&gt;

&lt;p&gt;That said, I don’t think using AI is inherently negative—no more than using Photoshop to edit a photo or generating an Excel formula. It’s just a tool, and the tool itself isn’t the problem. It’s the lack of training and wrong expectations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You shouldn’t use AI as a fundamental step in your coding process.&lt;/strong&gt; Coding is not a mechanical task. It’s a creative process that involves thought and experience. It’s not just about being effective but about being efficient. You don’t just need any solution, you need the best solution. Typically, a developer can consider several solutions for the same problem and decide which one is the most appropriate in the current context. When using AI to model or solve a problem, the solution it provides will likely influence our decision on which path to take.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You shouldn’t use AI if you don’t understand the problem.&lt;/strong&gt; The most critical part of AI assistance is context. For instance, in the race to increase context in coding assistants, Supermaven is probably the most powerful tool, with a context of 1 million tokens, that makes Supermaven responses more accurate. The quality of the response will depend on the information and detail provided to the assistant. It’s essential to fully understand the problem in order to describe it in the best possible detail to the AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You shouldn’t use AI if you don’t understand the solution.&lt;/strong&gt; This is perhaps the most common cause of buggy code when using AI. It’s necessary to understand the solution that the AI generates, analyze it, comprehend it, and subject it to thorough review and testing. There is no guarantee that the AI will provide a correct solution, so review is a must. Since it’s quite difficult to provide the full context to the AI, the solution requirements may differ from the original requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You shouldn’t use AI while you’re still learning.&lt;/strong&gt; This specifically applies when you’re learning to code. AI should only be used when focusing your learning on specific questions. For example: What is a React hook? What is the observer pattern? How can I animate a button?. Other types of more general questions or complex problems require deeper knowledge and experience. In the context of building applications, as I mentioned in my previous two points, it’s necessary to understand both the problem and the solution. A student doesn’t have enough technical expertise to evaluate the quality and effectiveness of a proposed code solution. It’s much more challenging to progress in learning when answers are given without proper guidance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You shouldn’t use AI for programming right now.&lt;/strong&gt; We haven’t yet reached the point where AIs can take full responsibility for the entire development process, at least in terms of code writing. Although recent years have shown remarkable progress in this field, perfecting current models and outputs will require exponentially more effort.&lt;/p&gt;

&lt;p&gt;AI is here to stay. I'm not completely dismissing this tool, not even at such an early stage like the one we're experiencing now. However, if we truly want to get value from it, we need to acknowledge its current limitations. It's a fantastic aid, and the best way I can describe its role is that of an assistant. It's an assistant for programming, reviewing, or learning. But it's not a programmer, lead, or teacher. Not yet.&lt;/p&gt;

&lt;p&gt;Use your own brain. Use your judgment, and use AI responsibly and professionally.&lt;/p&gt;

&lt;p&gt;P.S.: This post was made possible thanks to the assistance and review of an AI, demonstrating that, when used properly, it can be a valuable ally.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://frontpills.com/" rel="noopener noreferrer"&gt;frontpills.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>engineering</category>
      <category>ai</category>
      <category>machinelearning</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
