Author: Edvaldo Freitas

  • Key metrics to measure technical debt (and how to use them in practice)

    Key metrics to measure technical debt (and how to use them in practice)

    Software development is a complex field that demands constant decision-making to balance innovation, speed, and quality. The concept of technical debt refers to short-term choices made to accelerate delivery, often compromising quality and creating long-term issues. To keep projects sustainable, it’s essential to measure technical debt using effective metrics that help assess its impact and guide…

  • Dealing with legacy code in modern applications

    Dealing with legacy code in modern applications

    A new feature request lands, and you realize it has to touch the old permissions module. The project planning meeting suddenly gets very quiet because everyone knows any change in that part of the legacy code means weeks of careful testing, unpredictable behavior, and a high-stakes deployment. This is the friction point where building new…

  • How to structure technical planning for engineering

    How to structure technical planning for engineering

    In a fast-growing company, the default state of engineering is reactive. The product roadmap is packed, deadlines are tight, and the team is constantly switching context to put out the fire of the moment. This environment makes any kind of intentional technical planning feel like a luxury you can’t afford, so most teams don’t even…

  • KPIs in Software Development: What to Track in 2026

    KPIs in Software Development: What to Track in 2026

    Most engineering teams have some dashboard lying around. Usually it’s full of charts tracking everything from Jira ticket velocity to CI build time. The problem shows up when you ask how those numbers help anyone make a better decision. Most of the time, nobody knows how to answer. This is the common state of KPIs…

  • Code Standards and Best Practices for Growing Teams

    Code Standards and Best Practices for Growing Teams

    When an engineering team is small, informal agreements tend to work just fine. There’s a shared understanding of how things should be built, because any disagreement can be quickly resolved in a Slack thread or a conversation. But as the team grows from five to fifty developers, these unwritten rules start to cause problems. Suddenly,…

  • The challenge of managing multiple projects as a Tech Lead

    The challenge of managing multiple projects as a Tech Lead

    Your scope as a Tech Lead almost never stays confined to a single, clean workstream. As a product grows, you end up responsible for a new feature initiative, a critical infrastructure migration, and a lingering performance issue, all at the same time. This isn’t a promotion; it’s an expansion of responsibility that quietly creeps in…

  • Refactor or Rewrite? Dealing With Code That’s Grown Too Large

    Refactor or Rewrite? Dealing With Code That’s Grown Too Large

    The decision to refactor or rewrite a large codebase usually starts with a feeling of friction. Small changes that should take a day suddenly take a week. Every new feature seems to break an old one, and the team’s bug backlog grows faster than it shrinks. This happens because systems don’t just age, they accumulate…

  • Engineering metrics: using data (DORA and others) to improve the team

    Engineering metrics: using data (DORA and others) to improve the team

    The conversation around engineering metrics often gets stuck on the wrong things. We end up tracking activities like lines of code or number of commits per week, which say almost nothing about the health of our system or the effectiveness of the team. In practice, these metrics are easy to game and create incentives for…

  • How to Improve Software Delivery Speed

    How to Improve Software Delivery Speed

    A lot of engineering teams seem to be doing everything “right”: they run sprints, have a CI/CD pipeline, sometimes even a well-defined microservices architecture. And yet, getting code to production is still slow and painful. Releases slip, large pull requests turn into chaos to review and integrate, and almost every other deployment ends up causing…