On my flight to Amsterdam I watched The Outfit, a mafia movie set in a Chicago tailor shop.
The whole movie happens inside 2 rooms, yet you get a sense of great depth and story behind every character. Extraordinary storytelling.
Leonard, the master tailor, is the character I want to talk to you about. Sorry, he's not a tailor, he's a cutter. Anyone with 15 minutes and a needle can be a tailor, he trained for years on Savile Row before they'd let him open his own shop.
Making bespoke suits is not an art, it's a craft. An endless pursuit of perfection that cannot be reached. But if you don't aim for perfection, you cannot make anything great.
The movie opens with Leonard explaining the craft of the suit. This deep insight into a mundane item establishes him as the expert.
To the naked eye, a suit appears to consist of two parts, a jacket and trousers. But those two seeming solid parts are composed of four different fabrics. Cotton, silk mohair, and wood.
And those four fabrics are cut into 38 separate pieces. The process of sizing, forming, conjoining those pieces requires no fewer than 228 steps.
Even if that's just movie talk, it reveals that Leonard is a master of his craft. The level of detail he can go into about something jacket and pants tells us he must've spent years, if not decades, studying these items.
The equivalent question in web engineer is "What happens when you click on a link ?. An experienced engineer should have a 5 second answer, a 1 minute answer, and a 10 minute answer. True masters will have a 1 day answer and a full college course answer as well.
You could teach the entirety of software engineering by explaining in great detail what happens when you click on a link.
Leonard isn't just a master of his craft on the technical level. He understands the goal of his craft.
So the first step is measurement. But measurement doesn't mean just reaching for your tap, "So many inches here, so many inchese there". No, no, no.
You cannot make something good until you understand who you're making it for.
So, who is your customer? ANd what are you trying to say about him? A man walks through your door, what about him can you observe?
Is he timid, hunched over like a midday clock? Or does he stand with confidence, spine at six and twelve?
Is this a man of springtime pastel, clamoring to be noticed? Or is this a man of gray and brown, blending into the hurried crowd?
Is this a man comfortable in his station? Or does he pine for grander things? And who would this man like to be? And who is he underneath?
Take your measure, and when you understand who he is, then you're ready to begin.
Software isn't about the perfect code or the most gratifying answer to an interesting puzzle. It's about what the software does.
And I don't mean website or app or shell script. I mean what it does for the user. Are you building a website to drive leads for a consultant, or sharing a menu and open hours for a coffee shop with lots of foot traffic? Is your app meant to build engagement to show ads, or finish a task and get out of the way?
Why does your software exist. That's key.
Once you understand the goal of your project, you can deliver what the client asks for, not how they tell you to do it.
Leonard relays this story (paraphrased):
I once had a gentleman walk into my shop wearing a fine jacket that didn't fit. "The other tailor, he ripped me off, this doesn't fit right can you fix it?", he said.
Yes I can fix your jacket, what's the matter?
"The arms, they're all wrong"
I think it's the shoulders
"No I actually like the shoulders. The arms are wrong"
And we went back and forth like that for a while until the gentleman said "Look I'm the customer and I say the arms are wrong and you're gonna fix the arms!"
I said fine you're the boss, I'll fix the arms. And I took his jacket and fixed the shoulders.
When the gentleman came back, he tried on the jacket and he said "I love how you fixed the arms. This is exactly what I asked for!"
Your client always knows what they want, but any recommendation on the how is likely to be wrong. That's why good PMs focus on writing user stories, not technical implementation details.
Their job is to say "Get us across the water", your job is to build the bridge, if a row boat won't do.
Get promoted, earn a bigger salary, work for top companies
Getting that senior title is easy. Just stick around. Being a true senior takes a new way of thinking. Do you have it?
Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
You'll get insights to apply at your work right away.
Senior Mindset Book
Get promoted, earn a bigger salary, work for top companiesLearn more
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help 👉 swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers 👉 ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️