Best of Technical DebtSeptember 2025

  1. 1
    Article
    Avatar of francofernandoThe Polymathic Engineer·34w

    Before refactoring

    Refactoring code requires careful preparation and the right mindset to avoid common pitfalls. Key considerations include understanding the existing codebase thoroughly, resisting the urge to rewrite everything from scratch, making incremental changes, preserving existing tests, checking your motivations for refactoring, evaluating technology changes carefully, and accepting that refactoring projects can sometimes fail. The difference between successful and failed refactoring often comes down to proper planning and approach rather than technical skill alone.

  2. 2
    Article
    Avatar of medium_jsMedium·36w

    Beyond the Code: Lessons That Make You Senior

    A senior engineer reflects on the non-technical skills that define seniority in software development. Key lessons include prioritizing reasoning over rigid rules, verifying assumptions instead of guessing, questioning unexpected positive results, building mechanisms rather than relying on good intentions, learning to say no to protect team complexity, taking ownership of decisions, mentoring through safe failure rather than protection, favoring simplicity over cleverness, preparing for inevitable system failures, and adapting to technological changes like AI tools. The author emphasizes that seniority is about judgment, humility, and growing others rather than just technical mastery.

  3. 3
    Article
    Avatar of ploehploeh blog·34w

    It's striking so quickly the industry forgets that lines of code isn't a measure of productivity

    Code should be viewed as a liability rather than an asset, with more lines of code creating greater maintenance burden. The software industry repeatedly falls into the trap of equating rapid code production with productivity, despite decades-old wisdom from computer science pioneers like Dijkstra warning against using lines of code as a productivity metric.