Swizec Teller - a geek with a hatswizec.com
👋 ready to invest in your career? Get the Senior Engineer Mindset book 20% off this week only

Senior Mindset Book

Get promoted, earn a bigger salary, work for top companies

Senior Engineer Mindset cover
Learn more

20% off this week

    Swizec's articles in the "software engineering" category

    I aim to write mindblowing emails with real insight into the career and skills of a modern software engineer. "Raw and honest from the heart!" as one reader described them.

    Below are 24 articles filed under software engineering. Enjoy ❤️

    Avoid spooky action at a distance

    Shared state in programming isn't the enemy, it's unclear dependencies that tangle your code. Keep it clean with explicit state dependencies and strict access guidelines
    August 26th, 2023

    Finding modules in a Big Ball of Mud with ChatGPT

    Detangling a Big Ball of Mud is hard. You have to find domain boundaries where none exist. Looks like AI can help 🤩
    August 16th, 2023

    Followup answers to Forget complicated code, focus on the system

    Why are utility files bad? How do you recognize architectural complexity? What the hell is a transitive dependency?
    August 10th, 2023

    Forget complicated code, focus on the system

    Clean code matters, but it's the architectural complexity that truly impacts your productivity and bug count. Focus on simplifying the system, not just the code.
    August 7th, 2023

    Different worlds

    Different lenses, different worlds. Your perspective is shaped by your experiences. Even in debates, all sides can be right in their own context.
    July 14th, 2023

    You can't stop the business, or why rewrites fail

    Rewriting code isn't a magic fix-all. Consider the opportunity cost, complexity of the old system, and estimation challenges. Instead of stopping all to rewrite or building new while maintaining the old, try incremental improvements and new code adoption.
    July 11th, 2023

    When to throw away your code

    Delete code when it stops providing value 💡 All code is a liability; context matters. Keep what solves problems, toss the rest.
    June 19th, 2023

    What does "solve problems" even mean

    Focus on solving problems, not just doing work or writing code. Think creatively, question existing processes, and prioritize effective outcomes
    June 13th, 2023

    Why taming architectural complexity is paramount

    Unravel the hidden costs of architectural complexity in software engineering and learn practical strategies to tackle it. Boost productivity, reduce defects, and improve staff retention with insights from an MIT PhD thesis.
    June 8th, 2023

    Two types of complexity and their impact

    Complicated code slows down junior devs, while complex systems impact senior devs more. Focus on managing system complexity & dependencies, not just simplifying code.
    May 26th, 2023

    You can't fix the wrong abstraction

    Unlock the secrets to combating architectural complexity in software development and learn to identify and fix the wrong abstraction. Boost productivity, reduce bugs, and retain more staff.
    May 11th, 2023

    DRY vs SoC, a difficult choice

    What is the essential difference between DRY and SoC principles in software engineering and how do you balance the two
    April 11th, 2023

    If it works together, it lives together

    Wherein I use LEGO to talk about organizing your code for ease of use
    September 5th, 2022

    Why others' code is hard to navigate

    Some people like to organize code in files and folders and neat categories. Others love search. When they work together, that's the challenge.
    September 1st, 2022

    Move your business logic into data

    The quickest way to simplify a complex function with lots of logic is to turn it into data. A lesson from production
    August 3rd, 2022

    You don't *have to* build it sloppy to go fast

    My favorite mistake to make when I'm in a hurry is to think that I _have to_ build new features the sloppiest way possible. Find the quick fix and move on. But that's not true.
    July 19th, 2022

    What makes a great software engineer?

    In 2015 a group of researchers asked 59 experienced engineers at Microsoft "What makes a great software engineer?". Here's what they found.
    July 11th, 2022

    Writing software is like kicking a can

    Writing software is a playful process of exploration and discovery. Like a game of kick the can on a Sunday walk.
    May 25th, 2022

    The Italian foods theory of bad software design 🍝

    Spaghetti code – unstructured Ravioli code – too structured Lasagna code – layered wrong Minestrone software – unclear domains
    May 23rd, 2022

    Code Review Practices for Refactoring Changes

    Do you review refactoring pull requests differently than you do others? An empirical study of OpenStack, an open source cloud platform, says that you do and finds 6 common criteria.
    April 20th, 2022

    What I learned from Software Engineering at Google

    When I first picked up Software Engineering at Google I thought it was another one of those FAANG books full of lessons that make no sense at human scale. I was surprised, lessons apply to teams as small as 5.
    July 16th, 2021

    Software Engineering is the 2nd best job

    Ok so I've been doing lots of research into the Software Engineer job market – Some highlights 👇
    May 18th, 2021

    Created by Swizec with ❤️