Robby speaks with Swizec Teller, Senior Software Engineer at Tia and author of Serverless for Frontend Engineers. In this conversation, Swizec shares his thoughts on how startups need to learn how to leverage technical debt effectively, an introduction to his book, and the traits of a Senior Engineer Mindset.
Maintainable Podcast – Nov 8, 2021
Talking Points
- Charateristics of well-maintained software
- The role of Technical Leadership
- Swizec's take on technical debt
- Strong software development opinions Swizec changed his mind on
- Industry trends Swizec is skeptical of
- Team Rewrite or Team Refactor?
- Best practises for working with serverless
- Traits of Senior Level Engineers
Quotable Quotes
"A lot of software engineers really like to forget that well-maintained software is not just something that follows some textbook idea of perfection. First and foremost, it does have to solve an actual business problem that real people have" - Swizec Teller
"It would be so much easier to develop software if there were no users. And if there were no businesses who need to pay for it, because then you could just make it perfect and amazing." - Swizec Teller
"The older I get, the more, my idea of maintainable software has shifted towards anything that's easy to change and update later because it's probably not gonna live for that long." - Swizec Teller
"I think you continuously have to kind of go through this process of rewriting and updating your software. So you're kind of always in a rewrite state. That's what I've seen works best, at least on the web. I would not suggest that if you're building control systems for cars" - Swizec Teller
"It's very important, especially in modern product companies to have technical leadership, somebody who actually understands how products are built, but that technical leadership needs to have the battle scars and the experience to know when it's worth going for perfection and when it isn't" - Swizec Teller
"A very interesting example from the space industry, even the Mars Rover usually launch towards Mars without software for landing, because 'hey, it's gonna take seven months to get there. That means we have seven more months to write the software. We don't need it yet.'" - Swizec Teller
"If you're in a startup and you have time to just focus on technical debt, that's usually a bad sign because it means the business has stopped innovating" - Swizec Teller
"You are always looking for ways to improve technical debt while you're working on a feature in a related space" - Swizec Teller
"It's so much easier to fix code that repeated than code that's abstracted in the wrong way." - Swizec Teller
"If you refactor your code base over time to the point where nothing of the original code base remains, were you refactoring or were you rewriting?" - Swizec Teller
"Serverless Handbook itself was quite a departure for me, but the main reason I ended up writing it is because everybody else who talks about serverless is talking about it from the perspective of backend engineers and for backend engineers." - Swizec Teller
"Questions aren't usually stupid. You just can no longer relate to the beginners. It's kind of a rough time when it happens." - Swizec Teller
"A good learning trick is to explain something to others which really helps you learn it and internalize it." - Swizec Teller
"Taking a topic, you kind of understand and explaining it really makes it crystal clear in your mind" - Swizec Teller
"There's people, that pitch conference talks around things that they want to learn about. And then if they get accepted to speak at said conference, then they have that as like a nice time box now of 'well, I guess I better learn how that thing works.'" - Robby Russel
"Most of the time, you never get to any of those engineering tickets. And it turns out that that's fine because if you never get to them, then they weren't that important." - Swizec Teller
"Your job as an engineer is to make yourself unnecessary, figure something out, how it's done the first time, make it better, get it to a good point, but then try to give it away. Try to encourage others to do it so that you can go on to do other bigger, more interesting things." - Swizec Teller
"There's a big difference between someone who has the title of senior engineer and someone who actually has the battle scars and the experience of a senior engineer" - Swizec Teller
"There's this sort of wisdom that boils down to knowing when to make those trade offs between 'this is a mess, but it's self-contained and we can always fix it later' versus 'We cannot make a mess here because this is the checkout system for our entire company.'" - Swizec Teller
"That's what I try to do with my mailing list is kind of keep challenging people and keep pushing their minds, just to think in a new way and change their mindset." - Swizec Teller
"The longer I spend in the industry, the more I realize that code is just a tool and pretty much all code is a liability" - Swizec Teller