On this episode, Jeremy and Rebecca chat with Swizec Teller about how to approach serverless as a frontend engineer, why if you can JavaScript you can backend, why tech tutorials are turning you into a mediocre engineer, and so much more.
Talking points
- If you can JavaScript, you can back end
- The future belongs to full stack front end engineers
- Modern backend is a JavaScript function
- JavaScript is a great language and anyone who can code JavaScript can pick up any other language
- A lot of what used to make JavaScript really ugly was interacting with the Dom
- Front end is more like a full fledged app
- GraphQL is kind of an escape for backend engineers
- How should a full stack or how should a front end engineer approach serverless?
- Database and Variable Naming Conventions: Snake Case vs Camel Case
- Serverless Handbook for Front End Engineers
- Architecture principles and how to create good serverless developer experience
- Your average tutorial can make you a mediocre engineer, how to break out of that cycle
Quotable Quotes
"I never want to touch an Apache config ever again" - Swizec Teller
"There was this JAMstack revolution that happened over the last couple of years" - Swizec Teller
"we've now had react for almost 10 years and everyone's still happy with react, which is honestly a huge accomplishment for the JavaScript ecosystem" - Swizec Teller
"one of the coolest things about JavaScript programmers is that I feel like JavaScript is relatively easy to get started with, especially since we have ESX and modern JavaScript, is surprisingly, it's actually a very reasonable language" - Swizec Teller
"JavaScript is kind of a lot like in the English language where it mugs programming languages in dark alleys and picks off all of the best stuff from their pockets and adds it to JavaScript." - Swizec Teller
"JavaScript is the only language, that I know of at least, where every device on the planet has a JavaScript execution environment." - Swizec Teller
"So you can write code for literally anything, like Android can run JavaScript. iOS can run JavaScript. A lot of people don't know this but your TV set top box is actually a web browser." - Swizec Teller
"JavaScript is a really fast language now." - Swizec Teller
"if you stick to the good parts of JavaScript, It's a really reasonable language. That's fairly easy to use, quick to understand." - Swizec Teller
"I think it's become kind of the lingua franca of the web." - Swizec Teller
"as things have progressed and certainly with node.js coming out, you know, the basic of what you can do with any programming language you can do with JavaScript now." - Jeremy
"But if you're writing something like React or Vue or you're using NextJS or any of those things, you're writing a lot of JavaScript." - Jeremy
"And if you can do that, those skills translate really, really well to node.js." - Jeremy
"We were talking with Tomasz Lakomy and he was saying that he thinks front end development is actually harder than backend development now." - Jeremy
"a lot of what used to make JavaScript really ugly was interacting with the DOM. And now with these modern frameworks, you're literally just writing JavaScript and letting somebody else handle the DOM" - Swizec Teller
"The hardest part, in my opinion, is domain modeling and data management and deciding what to do with state and where it goes and where it doesn't go" - Swizec Teller
"every time I talk to real customers or real world business people, I'm like, wow, this is so much harder and more complicated than anything I've ever seen in a tutorial or a textbook" - Swizec Teller
"The real world is so complicated. And that's the hard part of software engineering" - Swizec Teller
"pure REST and graph ql are very similar in that they give you full direct access to objects on the database" - Rebecca
"With graph QL you've just smooshed that into one request so that it's technically more performant and you get articles and authors together in one request" - Rebecca
"back end engineers are telling front end engineers. 'Dude, you're really asking me for weird stuff here. That's very hard to get. Why don't you get it yourself?' So that's where I think full stack engineers shine because we can, we get to do both parts of that. So we only get to be angry at ourselves." - Rebecca
"the nicest thing about serverless is that it abstracts away a lot of the gnarly parts of the backend" - Swizec Teller
"my ideal Serverless server is basically a JavaScript function written in node.js that accepts some arguments." - Swizec Teller
"some people don't realize this, but your database will work just fine if column names are in camel case." - Swizec Teller
"it feels like, 'Oh, if I add Postgres to my thing, or if I add Mongo, it's suddenly it's slow. It's not actually slow. It's just the connection takes awhile." - Swizec Teller
"personally really liked the serverless framework because it's a really good middle ground /../ it gives you all of the power, but it makes the simple things easy" - Swizec Teller
"Why go base jumping when you can write raw CloudFormation" - Jeremy
"one of the big surprises, if you're coming at this from the front end is just realizing how flaky distributed systems can be." - Swizec Teller
"I wanted to write Serverless Handbook in a way that will stand the test of time as much as possible." - Swizec Teller
"The ideal these days, and that's actually possible is, you can deploy multiple times per day. It's not something anyone even notices it's all behind like feature flags and you just push something out, test it in production, and see if it works." - Swizec Teller
"if you talk to somebody from five years ago, would you test your code in production? Obviously write some unit tests and integration tests to make sure of the baseline, but would you test your code in production?" - Swizec Teller
"that's where like these fast deploys and quick iteration cycles come in, that you can do with modern tooling. You can immediately see if it's the right thing. If it breaks anything and then iterate from there." - Swizec Teller
"essentially you have to test in production cause you're not going to find the edges unless you can observe what's actually happening with the systems and distributed systems tend to work really well when they're small" - Jeremy
"at some point in your career, hopefully as early as possible, you have to go beyond tutorials towards actually understanding what you're doing and understanding the 'why' behind those tutorials" - Swizec Teller
"Like when I started serverless, I would ask someone who's really good with backend systems. And I would ask a stupid question and they were like, that question doesn't even make sense. You don't understand enough of what's going on here to even ask me a question that I can help with." - Swizec Teller
"you have to push in that direction where you can kind of just take bits and pieces of different recipes, put them together and make something new." - Swizec Teller
"with enough practice and with enough trying, you get to the point where somebody can come with a problem that nobody has ever solved before. And that's where I think the really fun software engineering begins." - Swizec Teller
"you find yourself in this position where you're the sole leading expert in the world, in that particular, tiny part of your niche." - Swizec Teller