Shaundai Person joins Jerod & Nick for a fascinating discussion of her transition from a sales position to Senior Software Engineer at Netflix. Along the way, we discuss sales as a superpower, how to build confidence in yourself & even sneak a little TypeScript talk in there because you know who…
Featuring
Sponsors
Vercel – With zero configuration for over 35 frameworks, Vercel’s Frontend Cloud makes it easy for any team to deploy their apps. Today, you can get a 14-day free trial of Vercel Pro, or get a customized Enterprise demo from their team. Visit vercel.com/changelogpod to get started.
Changelog News – A podcast+newsletter combo that’s brief, entertaining & always on-point. Subscribe today.
Fly.io – The home of Changelog.com — Deploy your apps and databases close to your users. In minutes you can run your Ruby, Go, Node, Deno, Python, or Elixir app (and databases!) all over the world. No ops required. Learn more at fly.io/changelog and check out the speedrun in their docs.
Notes & Links
- Holla! React Paris (use
JSPARTYPARIS
for 20% off) - Screen Studio
Chapters
Chapter Number | Chapter Start Time | Chapter Title | Chapter Duration |
1 | 00:00 | It's party time, y'all | 00:39 |
2 | 00:39 | Sponsor: Vercel | 03:27 |
3 | 04:06 | Hello, party animals | 01:23 |
4 | 05:29 | Welcoming Shaundai 👀 | 00:56 |
5 | 06:25 | Holla! React Paris | 04:38 |
6 | 11:03 | From sales to engineering | 13:37 |
7 | 24:41 | Sales as a superpower | 06:05 |
8 | 30:45 | Shaundai's confidence | 04:20 |
9 | 35:05 | Sponsor: Changelog News | 01:04 |
10 | 36:09 | Nick's confidence | 01:17 |
11 | 37:26 | Karaoke & slam poetry | 00:52 |
12 | 38:18 | Endless Love in the dark | 02:30 |
13 | 40:47 | OK fine: TypeScript talk | 03:37 |
14 | 44:24 | An honest TypeScript question | 05:20 |
15 | 49:44 | Test files in TypeScript? | 01:38 |
16 | 51:22 | Wrapping up | 01:47 |
17 | 53:09 | Next up on the pod | 01:25 |
Transcript
Play the audio to listen along while you enjoy the transcript. 🎧
Hello one, hello all of our JS Party animals. We are excited, as always, to throw a party with you this week. I’m joined by my longtime co-host and friend, Nick nisi. What’s up, man?
Hoy-hoy. How’s it going, Jerod?
So good. It’s going so good. I feel like we haven’t seen each other in a minute. What have you been up to?
Yeah, it’s been a good, hot minute. You know, just living the dream. Having fun. Having lots of snow days. Yay.
Now, a little birdie told me that you’re funemployed.
I am funemployed, and very excited to take advantage of that. And I wish the kids were going to school, so I could actually get stuff done…
So you could have some actual fun, no offense kids?
Yeah… Well, I love them, but…
Of course. Do you have any big plans during this time? Are you gonna conquer the world?
Well, I’m speaking at that conference in two weeks, and I need to really work on my talk. So I’ve been doing that, but then my kids are like – literally yesterday they were trying to sit on my shoulders while I was working on that, and I did not get much done.
Welcome to my life, Nick. Welcome to my life. Well, we are not merely here to talk to each other. We have an awesome guest - Shaundai Person from Netflix is here with us. Welcome.
Thanks. Thanks for having me on.
We’re excited to have you. Speaking of that conference - you’re also going to be at that conference, aren’t you?
I am. Keynoting. Yeah.
Oh, wow.
So I’m going to be talking about leveraging transferable skills. So we’ll probably talk a little bit about this, but I’m a career switcher… I switched from a career in sales, to engineering, and I’ll be - this is one of the big initiatives of this year, is to talk more about myself… Because everybody wants to know about me. So this narcissist’s view of life… Yeah, so I’ll be talking about how to leverage those transferable skills to build the career of your dreams.
Love it. Well, we are here for it; we want to definitely hear about you and all of that… But speaking of conferences - it’s been a while. In fact, new JS Party listeners may not even remember this segment of mine, which we will do now for the first time in months… It’s called Holla. Here we go.
Jingle: [06:37]
This segment, of course, is where we holla at various community goings on. And today we want to tell you about React Paris. This is a brand new conference from some folks who have ran conferences before - our good friend Omar - putting on React Paris. So this is a community-run, first time conference, single track, single day, 13 talks. Shaundai is one of them. 300 people - this is like my favorite kind of conference: small, single track, so everyone has a shared experience… And it’s happening March 22nd, 2024. Shaundai, are you also keynoting at this one, or just a speaker?
I’m not keynoting. I don’t even know if they’re having keynotes, but I would love to do it if they did. But I’m really excited to be back with this team. So I think it was 2022 - so this is the Be.js team. They run conferences. They’ve run a conference in Belgium for the past couple of years… And I was invited to speak in Belgium. That was my first conference in Europe, period. And then this one in Paris will be my second. Actually, that was my first international conference, period. So this will be my second conference in Europe.
The first time when I was out there with them in Belgium was just like – Tejas Kumar is a friend of mine, and I think he does probably every conference that they do… But beforehand I was kind of scared, because I was like “This is my first time doing your conference internationally. I’m going to be traveling by myself…” As a woman, there’s just a lot of fears going into that. But just in general, what am I going to say to these – what do I even call them? Are they Belgiumese? What is this?
[laughs]
I know they’re not Belgiumese… [laughs] So he told me, he was like “They are like family.” They are the most friendly people, welcoming people, accommodating people… And when I tell you - they’re great; my luggage ended up getting lost in Canada, in my layover, so I didn’t have luggage for the first couple of days there…
Oh, my.
I was waiting in the lobby, and one of the organizers found me and was like “Hey, are you Shaundai?” I was like “Yeah.” He’s like “Hey, I brought you some beers.” I was like “Oh, this is nice. This is exactly what I needed right now.” They were just there to take care of me. And then like you said, Jerod, with the single track - it’s so great… One thing that I love about single track conferences is that, one, the attendees don’t have to decide between their two favorites, or the two great talks that are going on. We put so much work into these talks as speakers too, so it’s nice to have everybody’s attention, and for people to not have to get up and go to different rooms for different parts of the conference. So I love that. I’m really excited to go to Paris, of course, eat some croissants with my friends… And again, the organizers are just the most thoughtful people. It’s one of the best groups of conference organizers that I’ve met. So… Super-excited. Super-excited for March.
Yes. And of course, Tejas also sung their praises when he was on the pod last year… So if you want to see Shaundai in Paris, if you want to see Tejas Kumar, if you like such names as Josh Comeau, Una Kravets, Anthony Fu, lots of interesting speakers - check out React Paris. The website, react.paris.
[10:18]
Hey, Jerod here in the editing room… One thing I forgot to say while recording, that I’m sure you’d like to know about, is that Omar and the React Paris team have created a discount code for JS Party listeners. Use jspartyparis while registering for 20% off in person and online tickets. Once again, that’s jspartyaris, save a little doe.
Okay, this has been holla, and if you organize or regularly attend a meetup or a conference that you think more people should know about, let us know about it. We’d be happy to give your event a holla on a future episode. [In a matter of seconds we’ll beam your information to one of our skilled field technicians.]
So I would love to hear about your transition. Sales to engineering… Sorry, it’s just more interesting to me than TypeScript… I know Nick’s waiting – he’s got the TypeScript questions, just like a list of them, because he just wants to talk about TypeScript… But to me, this is just fascinating, because - wildly different things, it seems like.
Oh, yeah.
And I’m sure there’s probably challenges, but also advantages you have coming from there. So tell us about just moving from sales to engineering.
Yeah. You guys are getting something hot off the presses too, because – like, I’ve told my story before, but I decided… People on Twitter have hyped me up to talk about the things that I’ve learned from sales, that have helped me to build this engineering career of my dreams… Which I didn’t know it was my dream, so I’ll talk about that, too. But sales is a career built on soft skills. So you don’t have any tools in your tool set, you don’t know how to do anything except for keeping notes… So you’re learning how to – you’re practicing how to have empathy, how to listen, how to negotiate, how to advocate for yourself, how to boost things up and how to anticipate really what people’s problems are, or derive people’s problems from what they’re saying, and translate that into whatever your solution is… And all of those come in handy when you’re interviewing, when you’re having conversations with project managers, when you’re coming to terms with the backend engineers, or – I’m a frontend engineer, so coming to an agreement with the backend engineers about “This is what the scope of the work is going to be, and this is how we’re going to get from point A to point B.”
So a lot of those skills have come in handy, and my talk at that conference is also about just more about at a high level how to leverage those transferable skills and bring that over to a new career, or to build this career of your dreams. But back to the story - so I wrote on Twitter today that I was going to start a video series of things that I’ve learned and ways that I’ve applied my lessons and sales to engineering… So I’ll be starting that; if you want to find out more about that, you can find me on YouTube at Shaundai, or on TikTok now. I’m [unintelligible 00:13:17.01]
You’re branching out, yeah.
Yeah. I’m turning 29 for like probably the – I mean, I’ve been 29 for a couple of years now… But I’m getting down with the TikToks. So you can find me on TikTok at @shaundaip.
So my career switch - I was in sales for 12 years. It was over a decade, and the reason I started in sales was because I was into fashion, and - the story is going all sideways. I wanted to go to school for fashion, but my mom, who was a guidance counselor at the time, was “Absolutely not. I won’t pay for school if you go to school for fashion design.” And so I was like “Well, I want a fashion business. I’m gonna go to school for business.”
Okay.
So I went to school for business, and my undergrad major was entrepreneurship. So I knew that I wanted to start a fashion business. One of my entrepreneurship professors told me that the best way to understand what it’s like to have a business is to start a commission-only sales job. So that started me in sales. I did have a commission-only job, and I learned a lot… I was just thrown into it where I had to practice body language, and listening, and all those good things… And I realized that I was good at it. Not just that, but that I liked it. I liked working with people, I liked conversing with people, and I think that’s probably one of the reasons why I like doing conference talks, and podcasts, and things like that too, is because I like sharing and listening.
So I was in sales, I was really successful at it, but I knew – when I was looking at all the other careers beyond what I was doing, like “Okay, I could be a sales manager, or I could go to sales engagement”, which is like training. “I could be sales operations…” None of those – I could not see myself in that forever. But I didn’t know what I wanted to do. I also had this view of what engineers were, and it was the same stereotypes that you would think…
Sure.
They’re just like these dorky, nerdy people, who just sit in dark rooms, drinking diet coke… [laughs]
Nick, are you taking offense to this right now? Oh, no…! He’s got the – is that Diet Coke. I hope it is.
It’s a Coke Zero… [laughter]
Coke Zero…! She was so close. That’s amazing.
That is so perfect.
They’ve got neck beards, like Nick has… I mean, pretty much –
Right. I’m like calling out everything – they wear a black hoodie…
Yeah. Middle-aged white guys… I mean, Nick is just drilling it.
[15:54] That is so great. [laughter] Yeah. But I was like “I’m not that. I’m a social person.” You know, sales is, I guess – this is what I get with what I like to do. I was very – like I said, I was good at sales, I just didn’t like it, and I never came home and was like “Oh, can’t wait to do more sales stuff in the morning.” But it was a job, and that’s what I expected it to be.
One day I decided to quit the workforce and start my own business, follow my passions for entrepreneurship… I don’t know what I was thinking, but I didn’t have any kids at the time. So I quit the workforce and I started an online business. And it was a business where I sold all-natural things – like anything you would see in Whole Foods, like [unintelligible 00:16:38.24] all that kind of thing. I used Shopify to do that. And I also was like negotiating deals with all of these suppliers, trying to use my sales skills… I was literally knocking on doors to get sales, because I was like “I want bigger customers”, and things like that. But what I found the most fun about the business wasn’t the sales part of it, it was actually building widgets to add to my Shopify site.
Oh, okay…
So like automating the emails, and like banners that go across my page… And then it got to the point – so I was having so much fun with this, and I was trying to learn how to code so I could build an app… And people started to come to my website – I was part of these Facebook groups and things, and people were like “Wow, your site is so good. Could I pay you to build my site for me? Could I pay you to put a widget on my page?” And I’m like “People get paid to do this? I would do this for free, but… Yes, I’ll take your money, of course.”
“But yes, I’ll also do it for money.”
Absolutely. So that sparked the idea that “Oh, maybe I could do this engineering thing.” But shortly after that, I got pregnant with my son, and I was like “I have to go get health insurance, so let me go back into the workforce.” I went back into sales. But then I started kind of coding as a hobby. I was using Dreamweaver… This is 2019. So this is bad. Like, I’m using Dreamweaver… I didn’t know any better, I didn’t know what people used to code… But it got the job done.
We all started on Dreamweaver, it’s fine. [laughter] I did…
Some of us are still there, you know…
It makes me feel so much better… [laughs] That makes me feel a lot better. So then, at some point, when my son was still very small, I was like “What does an engineer even make, if I do this web development–” Oh, you know what happened? I was on maternity leave, and I saw an ad on Facebook for Codecademy. And there were comments underneath it, and it was like “Oh, you don’t have to have a degree to be in web development. You can just be self-taught.” And that was the first time I’d ever heard that. So I was like “Oh, so wait, if I wanted to switch careers, I could just do it?” So that’s when I started to look up, like “Okay, this is the courses I could take”, or “This is how much engineers make.” And I was like “Oh, they make some good money.”
So I signed up for Codecademy, and I gave myself half an hour a day. Because think about it - I’m working a sales job, which isn’t a nine to five. A sales job is – you’re selling whenever people want to buy. If somebody’s texting me at 11 o’clock at night, I’m right there on my computer putting a quote together. So I’m working this demanding sales job, I’m mom to basically an infant child, and then I decided to become a single mom, too. So like, I’m just telling you, there’s a lot going on… So I gave myself half an hour a day to learn to code. I loved it so much that I would stay up three or four hours… I’m up till like one and two in the morning, just coding. And so I’m like “This needs to be my career.”
So I used my sales skills - I’m just alluding to the stuff that you’ll find on my YouTube, but I’m using my sales skills to network and find opportunities to build a community around me… And I was able to – I moved pretty quickly, but I was able to quickly switch careers… And I’m the happiest that I’ve ever been.
[20:02] And now I’m finally in a career – I mean, one, I’m lucky enough to have a career that I love, where I’m also making money, but I can see myself moving up, and I can see myself in this for a long time, which is something that I couldn’t – even though I was good at sales, it was something that I never had experienced. I’ve never experienced that when I was in sales. So it’s just awesome, and I love that I’m able to still have that social aspect of it. I’m not – I’m still drinking diet Coke, and I’m still a dork, but… [laughs]
Coke Zero is preferred…
…I also get to socialize and talk with cool people.
Oh, that’s amazing. I feel like – I mean, Dreamweaver in 2019… It’s only 2024. So five years later, you’re a senior software engineer at Netflix. I mean, that’s pretty impressive. Nick, how long did it take you to get funemployed? [laughs]
12-13 years…
Yeah. When did you start? Did you actually start with Dreamweaver, Nick?
I did. In high school I was playing – they taught us some very basic HTML, and then I found Dreamweaver and I was making these table-based layouts for everything… It was awesome.
Way back in the day.
What the heck is a div? No, I’ve got a table.
Yeah. Who needs divs when you have tables…? So how long have you been at Netflix then?
Two and a half years… Yeah, two and a quarter.
So you went from Dreamweaver to Netflix in like two and a half years. That’s a meteoric rise. Congratulations.
Thanks. Thanks. Yeah, it’s – so people will ask “How did you do it so fast?” or “How can I do what you did?” I don’t recommend it.
“I don’t recommend it…” [laughs] Was it hard mode, or…?
Yeah. I mean, I got there, but I sacrificed to do it. So if you’re willing to – I mean, okay, so I’m gonna get real with you guys. Okay, part of it – one of my advantages I feel like was the fact that I was a single mom. If I’m trying to cultivate a relationship, nurture a relationship, you can’t do that working, studying every night, like I was. You sacrifice friendships to get to that point… Which was something that I was really invested in wanting to do this. So I was willing to sacrifice all of that. But there was a price; there was a price that you have to pay to do it.
Also, I was very lucky to be able to have come from a career in sales, because like I said, I was able to use a lot of that stuff. It’s just stuff that kind of – not came natural to me, but stuff that I had already practiced, which is… You know, one of my goals was to - whenever I walk in a room, I want everybody to know me already, and I want them to have… Like, I want to have a good reputation. That was my goal.
I was working at a tech company called SalesLoft. I’m based out of Atlanta, so this is a company headquartered in Midtown. But it’s a tech company, and they make software for salespeople. I was using that software as a salesperson, and then what I sold them on before I’d even gotten the interview was that “I need to be your next hire, because if you’re looking for frontend engineers, nobody knows your customer better than me, because not only do I know the tech… I can code my ass off. I can code better than – or just as good as any of the other people you’re interviewing… But tell me how much they know about your customer, or tell me how much they know about sales.” And I could have these conversations and I could run conversations even though I didn’t have experience in tech, like professional experience in engineering. I could be a leader in these conversations, because I’m like “I know that you think this is a cool thing to do, but nobody’s going to use that, and it’s going to waste the company money, it’s going to waste your time.” And so I’m willing to – I’m not only willing to speak up, but I’m also looked at as like “Oh, yeah, she knows her *bleep*. She absolutely knows what she’s talking about.”
So a lot of aspects of my story are very unique to me… So what I encourage people to do is like when they say – or when they ask me “How did you do it? How can I duplicate exactly what you did?”, you’re not going to. You’re going to have success, no doubt, but you’re going to have success in your own way, and you’re going to bring your own unique strengths to the table, and you’re going to use those to your advantages, with whatever – you’ll figure out the way that it’s best for you. I can’t write that for you. This is something that you have to figure out, and write for yourself. And don’t break up with your husbands and wives over a career switch… I didn’t break up with him because of that…
[24:24] I was gonna say, was it over the career switch?
No, it wasn’t. And we get along great, so I joke… You know, we get along great as co-parents.
That’s good to hear. Alright, Nick, fire your TypeScript questions at her now. No, I’m just kidding… Anything you’d like to ask?
I think that’s awesome. I think that you definitely – like, the story of coming in with understanding the sales side of things, you sold yourself really well in that. So having that – and I’ve always heard, in non… Like, if you know a little bit of coding in a non-coding career, that’s like a superpower, because you can automate parts of your job away, or you look amazing because you can do things so fast… I think that the opposite of that, like the superpower in an engineering job is the soft skills, and being able to sell yourself, and being able to talk… Because the coding part ends up being the easiest part. So would you say that you feel like you got kind of a leg up having that as the foundation that you built your engineering skills on top of?
I would, I would. And like I said, it’s different for everybody, but one way that I describe it is… So think about it from the perspective of your user, which is what you should always be doing as an engineer; thinking from the user’s perspective. When you’re interviewing for a job, when you’re trying to switch careers, your customer is the recruiter or the hiring manager. And their job – their intentions are to find the best person for the job. It’s not to weed you specifically out, but they’re getting hundreds of resumes, especially in this landscape; hundreds or maybe even thousands of resumes. And for one human to be able to narrow that down to one person - there’s some vetting that they’re going to have to do.
So the thing that makes you a commodity, basically - your coding skills are a commodity, because everybody that puts in their resume, their portfolio, has the React skills, has the GraphQL skills, has all of these skills. What’s going to make you stand out is the soft skills. Because not everybody has that, but even the people who do have it, they’re not talking about it, and they’re not talking about it in the way that you’re talking about it. So you have to be the one that shows how you’re human. And there are a number of ways to do this… I used networking; like I said, making sure that I was in these conversations. I used social media, but I also had a lot of – this was one advantage that I [unintelligible 00:26:54.20] because I was already at the company that I ended up interviewing at for the engineering role… We had the Slack donut thing. So to explain what a Slack donut is… It’s a little bot inside of Slack, and if you’re part of the Slack channel, every two weeks it’ll pair you up with somebody at the company, so that you can have these donut chats or coffee chats together, so you can get to know people who aren’t necessarily in your org, your circle. Anytime I got paired with an engineer, I would set up the meeting. If I got paired with somebody in like marketing, I’d be like “*bleep this, I don’t want to talk to you.” Can I cuss on this? I’m sorry…
No.
Okay, cool. I’ll stop.
Just keep going though, we’ll just bleep it. It’s one of our favorite things to do; we have a great bleep noise.
It’s true.
Awesome. [laughs]
It’s okay, we don’t care. We just bleep it. [laughter]
So if I got paired with somebody in marketing, I wouldn’t do it. If I got paired with somebody in engineering, I would. And that would be my chance to be like “Hey, so tell me about your journey. Tell me about yourself.” I’d learn more about them, and then just be like “Well, if I was thinking about switching into engineering… Let me show you my project, and you tell me what you would add to it”, and stuff like that. So it was like a warm way to get these conversations to happen… And then people started to talk, like “Oh, this salesperson, she’s –” Like, I started to build extensions to our platform, and sell them on why we needed them.
[28:23] I’m like “We need something that – well, salespeople, our customers… We’re focused on account based management. We need a tool for that. So I’m gonna build one.” And so I used our API and I added it to the tool. And so I’m selling everybody. So it gets up to the CTO, and he’s like “What? We’re doing this?” And then the CEO messages and he’s like “This is the most incredible feat that I’ve ever seen.” I was like “Yeah, it is… Yeah, I did that.” But yeah, so… [laughs]
So that was one way that I stood out as human, using video. People aren’t doing that. People are sending – because we’re nerds; we’re scared to talk to people. Working from home was the best thing that happened to our community. We don’t have to go on camera, we don’t have to talk to people. But if you want to be a human, if you want to stand out, that’s what you need to do. You need to send videos, you need to talk to people like they’re human. That was a long-winded way of saying “Yes, I do feel like my sales skills [unintelligible 00:29:17.01]
That’s a very long yes. Well, we prefer long yeses to short yeses… Because if you just said yes and stopped, then me and Nick would be like “Uhh… Now what do we say?” So I love it.
Some TypeScript…
Yeah… [laughter] That’s a big no for me.
There’s a really cool tool… I mean, just kind of like building on what you’re saying about videos and things like that… That is one thing that I absolutely love doing, is making unnecessary videos to walk through some like simple thing… Because it’s so fun, and the videos, you can have fun with them… There’s a tool for Mac, it’s called like Screen Studio, I think… And it just seamlessly allows you to make quick videos and quickly edit them, but it has us a little floating bubble in it… It’s super-fast to make these videos. And I would just like do that, and then – you just have like a drag, then you drag this, drop it in Slack… And there’s a video. And it’s like “Oh, I could show you this bug, or I could send you a screenshot of what’s happening… Let me walk you through it, and have like a video, and a presence in it…” And it definitely – like, I get more results from doing things like that. And it took me not an order of magnitude more effort to actually do that. So yeah, plus one on that.
Exactly. I love that. I love that so much. That’s right in my wheelhouse. I won’t keep talking.
[laughs]
Unless you want me to about [unintelligible 00:30:40.27]
No, you’re here to talk… Well, let me ask you this. So we’ve known each other for a good half hour now… I would say that you seem to ooze confidence. And even in your storytelling, it seems like that was helpful for you. Is that something that you feel – a) is that true? b) If so, was that learned through sales, or have you always been this way? Because a lot of it is just knowing the value that you bring, and telling that to people in a way that’s not hamfisted, or full of - what do you call them, qualifiers? Just being who you are, and being confident, and just saying what value you are, and then people just agree with it. Has that always been the way you are, or did you learn that?
It’s something that’s learned? And inside, I am not as confident as I come on the outside. It’s something that I’ve practiced. You get a lot of practice with this in sales. So I was selling to – I sold to all different personas, but I’ve sold to engineers, literal rocket scientists. I sold a tool called MATLAB and Simulink.
I know MATLAB.
NASA was my customer. Yeah, a lot of engineers do. And this is why I had the sense in my head that engineers are just dorks, because… They’re dorks. You want dorks, like –
[31:59] [laughs] Like literal rocket scientists…
…the dorkiest NASA – yes.
Right? Pocket protectors and everything…
Oh, yeah. Oh, yes. So I’ve sold to them… And I was early 20s when I started doing this, I’ve sold two CSOs, which is Chief Sales officers, CMOs, Chief Marketing Officers, CEOs, and sold those personas - I sold them consulting services. So basically, the consulting services or advisory services was me telling them at age 25 or whatever, telling them how to run their business. And these are businesses that are multi-billion dollar businesses that you know about, that I’m working with. And why would they listen to me, a 20-something-year-old black woman? Why would they listen to me?
So if I came to them and I was acting as shy as I feel on the inside, as insecure as I feel on the inside, there’s absolutely no way that I’m ever going to make a sale. So there are ways to – like, one, practice is the best way to do it. And like really just putting yourself out there. But also just be prepared. And if you know your stuff, then it’s a lot easier to come off as somebody who has things all together.
Do you practice it through just years of sales, or do you actually also practice it to yourself? Do you stand in front of a mirror, is there anything that you did that way? Or is it just literally like just the school of sales, hard knocks.
Yeah, it’s both. And still to this day - so for example with the conferences, I’m a master at talking to myself. I talk to myself when I don’t need to, but…
[laughs]
I’m gonna prepare all of the – like, I put things together, and I’m kind of a recovering perfectionist, so sometimes I over-prepare… But yes, I want to have all of my stuff together, and I also want to anticipate the questions that people will ask, and anticipate the objections that people will have. That’s a sales tactic, or that’s something that I had to learn in sales, is you come on the offense and the defense. You want to come ready with a plan of attack, you’ve qualified your customer as “This is somebody who could be potentially a customer of ours, and we have a solution that fits what their need is.” And so that’s the offense. “I’m going to propose this thing to you.” But then on the defense, you want to anticipate all of the concerns that they could possibly have. So you think through “Okay, they’re probably going to say this. Or if they’re coming in with these intentions, or these goals for the year, they might say this.” Same thing when it comes to any conversation. Even friendships, conversations with friends, I’m like “If I have to give somebody a hard piece of feedback, what could they possibly say to me, and how am I going to get ahead of that?”
Right. You have your responses canned, or at least thought through, so that you’re not surprized.
Thought through. Oh, yeah. Absolutely.
Love it.
Nick, do you talk to yourself when you’re preparing for your – so you may not know this about Nick, Shaundai, because he comes off as quiet and humble, but he’s also a stage performer. You get this guy on stage, and he performs. Yes, very confidently. He’s an MC of TSConf… Is that right?
Former…
Formerly, okay. He’s funemployed now… And he is former MC of Nebraska JavaScript conference, which he always had the highest reviews as a guy who goes on stage and tells puns, and really puts himself out there. So Nick, I’d love to ask you the same question I asked Shaundai… How do you prepare for such things? How do you have the confidence to stand on stage and say something ridiculously stupid, and still be okay with the results?
I just learned to make an ass of myself at a young age, on stage…
[laugh] Okay…
Before I was even 21 I would go to bars with friends - bars that would let us, and I’m talking like Buffalo Wild Wings, or a bowling alley bar where the head karaoke, and they didn’t care that we weren’t gonna buy beer… And I would just go up there and sing the worst songs with my terrible voice, and just make a complete fool of myself. So yeah…
So years of karaoke paid off in your career.
Yeah.
Okay, Shaundai, karaoke. Are you in? Are you out? What’s your take?
I will do karaoke, but little known fact - I used to perform spoken word poetry.
Really?
Yeah, yeah. So I was up there [unintelligible 00:37:36.08]
Oh, performative, too. I love it.
Yeah. Yeah. So I was performing.
That’s awesome. So here’s a pro tip for your TikTok channel, is mix some of that stuff in.
I like that, because I have been looking for something outside of tech… But I have been thinking of like writing poems about tech. But I have been thinking about something like that. So that’s a really good idea. I might do that, and then when I do, I’m going to make sure that you get a shout-out…
Love it.
…when I when I start posting it.
Yeah, I’ll take all shout-outs. I’ll also take –
Nick, did you do karaoke on – would you sing online?
Heck yeah…
So Nick has actually sung on JS Party historically… In fact, one time during a break he sang – was it Endless Love? Or were you singing the time that you got us demonetized on YouTube, because you just – like, somebody had to go to the bathroom, and Nick was left on JS Party, by himself, the only one here, and he started singing… What song was it, Nick? Careless Whisper?
I cannot remember… It might have been.
I think it was –
That’s amazing. [laughs]
I think it was Careless Love. I don’t know what it was, but…
Endless Love, yeah.
Endless Love, sorry. Careless Whisper? What’s the song about whispering? Anyways, Endless Love…
Lots of friends singing this Love in the Dark.
[38:52]
“I thought we were gonna be just friends…”
“What?! Friends listen to Endless Love in the Dark…”
Yeah, lots of friends, exactly. We came back and we finished the show, and then later on I got an email from YouTube saying that your stream has been demonetized, because you’re using copyrighted material. I’m like “How did they recognize that is the song?” He must have been on key, is my point.
[laughs] Because I’m thinking that they were like “Oh, this is so bad, I’m pulling out my sponsorship…” [laughter]
I was like “Oh no, they’re gonna take away that 0.0001 penny that they were gonna give us for the hundred people who watch this stream…” But I think we did take that and do something with it. We do like to use and abuse Nick’s abilities to sing. But we have never actually teed you up for a song, and put some background music, and just let you [unintelligible 00:39:47.19] I feel like that should happen at some point. Don’t you think?
Yeah, for sure.
Okay.
See, he’s in for it.
I’ll go all out.
He would. He would go all out.
Let’s do it at that conference.
Favorite karaoke song, Nick? Was it is it Prince?
Yeah, Kiss by Prince, or… Oh, man… Unbreak My Heart by Toni Braxton.
Oh, man…
Me too…!
She goes high. Oh! Duet!
Oh, my gosh…
[40:12] That conference…
There are so many opportunities…
Right?! You guys need to sing a karaoke duet, Toni Braxton, at that conference. Tape the whole thing, so I can watch it later.
Okay. Yeah, we’re gonna have to split up the verses, or something.
I think we’re at the beginning of a beautiful friendship right here. This is good.
Agreed. 100%. Yeah, I’m super-excited about this. [laughs] I’m so serious.
Me too.
Alright, so our audiences now are like “Was this a tech show? What are they– is this a karaoke podcast?” [laughter]
So allow me to somehow reroute us… Here’s my question - when it comes to sales and engineering, how do you convince the TypeScript compiler to accept your types? How do you sell it on your code? Like “Hey, this code is fine. Just take it, why don’t you?”
That TypeScript compiler does not listen…
Yeah, you can’t persuade it, can you?
Oh, my goodness, no…
Yeah, you can.
That’s the hard thing about tech, is like - I mean, people are difficult, but… Not that I know everything about everybody, but tech is so opinionated. And the TypeScript compiler is sometimes like a toddler. It’s like “I gave you what you asked for, didn’t I?” Or “You get what I was saying.” Or maybe it’s like a toxic relationship, with a toxic boyfriend, and it’s just like “I feel like you’re gaslighting me right now, TypeScript. Like, you totally get what I was saying, and you’re gonna sit here and give me a red squiggly, and act like you don’t know what the heck is going on? But you do.”
So yeah, TypeScript kind of – it makes me mad sometimes. But I was an anti TypeScript person before I learned TypeScript, and I think that’s pretty much everybody’s journey with TypeScript; you hate it until you try it. And then you’re like “Oh, okay. Yeah, I get it, it’s a pain in the butt sometimes, but I love it, and I see why it’s meaningful.” And especially if you’re working with enterprise-level code like I am, you want it to be maintainable, you want it to be scalable, and you want it to be easy to onboard into as a new person to the codebase. TypeScript gives you all of that. It gives you the ability to understand what even you forgot that you coded last week, but people who are new to the code are like “Okay, I can see where she was going with this. I can see what the inputs and the outputs were supposed to be.” And it helps you to write in your code editor, just be able to identify all of these issues that maybe you hadn’t thought of. And I also notice how it changes – it changes the way that I think about coding. Before, when I was just a JavaScript D-person…
[laughs] It sounds like medieval times, you know? “In the old days, when…”
Yeah, like way back, in the Dreamweaver days… [laughter] Because I call JavaScript like the YOLO of languages, because you don’t have to worry about anything.
Exactly.
It’s like “It works right now, so that’s all that matters. Let me just get this out here. I’m gonna merge this code, and it’s fine.” Nobody’s checking for anything, except for - as long as I didn’t break any tests, it’s good. But I’v found that with TypeScript and the squigglies, now I’m starting to think about, okay, once I export this component, I need to make sure that – it needs to be extensible. Like, it needs to work beyond where I’m exporting. This component has to be able to – or this function; I mean [unintelligible 00:43:45.01] but it has to be able to work with all of the downstream components that it’s getting plugged into… So it starts to change the way that you think about code, and you start to structure your code with all of these edge cases in mind, that I didn’t used to think about when I was just using my YOLO JavaScript language.
[44:08] Well, you do only live once, you know… So if you’re gonna just live once, I would use a language that’s more enjoyable myself… But I understand. Enterprise engineers need their enterprise solutions. Here’s an honest question about TypeScript… Because - okay, you don’t understand our dramatic foil, Shaundai, because you’re new here, but Nick is the TS fanboy. He would rename the podcast if he could, to TS Party. But I will not let him.
Who says I can’t? Oh, you do. Okay.
TypeScript won’t accept it. Yeah, I don’t know… And I haven’t really used TypeScript much, because I decided very early on that this could not stand. We need an anti-TypeScript character on our show. And so that’s me. And so I hate it with all my heart, only when on the podcast. But because of that, I haven’t really used it very much. I have used
strongly-typed languages. And for me, it seems like when I’m using dynamic languages, and I’m just like sending data to my own functions, myself, it’s all very normal… I don’t really have problems with the data I was expecting wasn’t the data that I received… But I do have that problem in runtime with third party JSON, or like data coming from a user, or coming from places that I don’t have any control over. Not build time stuff, not while I’m coding, but like later on. Does TypeScript solve that problem for us?
What do you mean by later on?
Later on, like not when my tooling can catch anything. Like, my code is running in production, some user is doing a thing…Maybe it’s coming from an API, I’m sucking in some JSON response from Shopify, maybe it’s coming from GitHub, maybe it’s coming from a person typing into a thing… They didn’t checkbox a thing, or whatever, and here comes a payload into my code now. And my code is expecting one thing, but I’m not sure what I’m gonna get. And TypeScript – can TypeScript help me now, or is it too late for TypeScript?
Yeah, that’s like one of the –
Because that’s like 98% of my data problems, is that. Not while I’m coding.
Yeah, you’re a special case, I think…
Well, thank you.
You just need to work with more people to really appreciate TypeScript.
Nobody likes me though, so… [laughs]
But what you’re touching on is a – you get this payload from your fetch call or whatever, and you have to like forcibly say “This is this type. I’m getting back this type. I know I’m getting back this type.”
But you don’t know.
But the problem is you don’t 100% know.
So in those cases, you’re still up a creek.
Yeah.
Yeah… And I feel like I’ve been in the enterprise level so long that I kind of forget that – I forget how to code outside of it. And I know that if I was going to import a package, I would need to also – that package needs to come with its own types; otherwise, it’s going to cause so much – it’s going to wreak havoc, and I’m gonna get all these red squigglies… And then - yeah, it’s not worth it. So I’m wondering if what you’re asking – I mean, TypeScript would help, but as long as it comes packaged with its own types, then it won’t cause any problems.
Sure.
And the benefits are minimal, I guess, as long as the contract is matching from what’s being imported from the package, and what – or sorry, what’s being imported and exported, as long as it matches…
Sure. I’m more thing about runtime data coming in from a third party, like a fetch call; not from a third party library, but from an API, or from some other microservice or whatever that I’m talking to. And I think I have a contract with that thing, but I don’t actually have a contract with anything. And so I find myself doing lots of application-level type checking on the data coming in, like “Does this happen to be null? Because who knows…? Or is it an empty string, but I was expecting a date?” And if TypeScript could fix that at the - I guess like the barrier, or the boundary of my application from third party data, not from third party code, then I’d be like “Oh, that’s super-rad.” But if it can’t, because it’s not invoked in production, then I guess it just doesn’t solve this other problem that I have, that I’d be like “Oh, it does solve that problem? Now I can have a reason to use it.”
[48:31] Because like Nick said, Shaundai, I don’t work in enterprise teams. I’m mostly a solo dev, and so I just don’t have any of the problems that TypeScript – I have some of the problems, but very few of them that TypeScript solves. And so I’m never super-motivated to try it. Plus the whole “I can’t try it, because I hate it” thing. But if it did this for me, I’d be like “You know what…?”
I think that it gives a medium for solving that problem, but it’s still on like the third party API that you’re consuming to properly solve that. And one way that they might do that is by just – the API that you’re working with is GraphQL, right? GraphQL you’d be able to get at the schema, and from that - you can generate types automatically from that. So the types become this common layer, that you can at least make your code understand what’s coming back… And of course, there can be problems where it’s not 100%, or you have an old version of the schema, but you’re getting new data somehow, or things like that… But it’s better than it used to be, I guess…
Right. There’s more of a formalized contract through them publishing a GraphQL schema, which you can then convert into types on your side.
Yup.
Fair. Here’s a question coming in from the chat… What’s your opinion on writing test files in TypeScript? Maybe Nick can handle this one, because I know you’re a big test writer, Nick. What do you think about that? Do you write your tests in TypeScript? Or should they be more loosey-goosey? That’s verbatim quote from the chat.
[laughs] I definitely do. I guess I don’t notice it, I don’t worry too much about types… It’s definitely looser in there. It’s less strict for me. But it’s still in TypeScript, because I probably want to – I want the autocompletion to know that I’m calling things the right way, and all of that. But I’d love to get your thoughts on it, Shaundai.
Yeah, I don’t have a strong opinion on it, but we do write our tests in TypeScript. It just matches with it. As you said, you get the autocomplete and everything… And then there are certain times where we have a new mocking strategy, so it’s going to be not as relevant in the very near future, but there are times where we might want to mock something and we use types for those mocks. So it just makes it easier to stick with the same conventions. And everybody’s all on board with TypeScript and everything, so it’s not really like any barriers or anything to [unintelligible 00:50:56.06]
You don’t have any Jerods to deal with?
Ha-ha-ha…!
No Jerods…
I’m actually a team player. I think if I joined Netflix and I was like on the engineering team, and it was all set up and working, and I would just do exactly what everybody else was doing.
That’s all.
That’s all I do. I’m not gonna make waves. You don’t need to sell me. You can just dictate. You know, you’re a senior engineer; I would be a noob, so I would just accept it as it is. Alright, we know you have to go… We appreciate you joining us. I feel like we could continue this for a couple more hours if we had the time… But hey, maybe another time. Best way to connect with you, Shaundai, on the interwebs… What is it?
So I am lucky enough to have my first name as a handle for pretty much everything except for TikTok. I don’t know who got my Shaundai…
You do…?!
Yes. But anywhere else, I have a very good googleable name. So just look up Shaundai Person. I’m the only Shaundai Person in the world. So you can find me on Twitter @Shaundai, YouTube @Shaundai, Tiktok @Shaundaip. But yes, I would love to connect with you. LinkedIn as well, come find me and learn more about leveraging transferable skills.
Very cool topic. You’ve had lots of success, so I’m sure there’s plenty of tips and tricks you can give to the rest of us, so we can have some success as well… Fully knowing that your experience is unique, and you bring your own things to the table that I don’t bring… But I also bring my own things as well, and so we can all hopefully learn from each other and thrive in this web dev community.
Well, I really appreciated you joining us today. It’s been an awesome conversation. One more shout-out to our friends at React Paris. Also, that conference… Hey, holla at that conference. Do you want to see Nick and Shaundai teaming up on some Toni Braxton karaoke? If this doesn’t happen, I’m a liar, and you guys don’t want to make me a liar… So let’s make it happen for Nick and Shaundai. I’m Jerod, and this is JS Party, and we’ll talk to you all next week.
Our transcripts are open source on GitHub. Improvements are welcome. 💚