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 ❤️
Software Engineering Lessons from Production
Join Swizec's Newsletter and get insightful emails 💌 on mindsets, tactics, and technical skills for your career. Real lessons from building production software. No bullshit.
"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"
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
Are You an Engineer or a Developer?
September 14th, 2016
Dear tech companies, this is not how you hire engineers
January 20th, 2015
Software Engineering Lessons from Production
Join Swizec's Newsletter and get insightful emails 💌 on mindsets, tactics, and technical skills for your career. Real lessons from building production software. No bullshit.
"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"