Skip to content
Vodcast

Blog: Career Hunting in Tech

07/09/2020

On our June 25th event, Sean "Swyx" Wang shares successful career tips and interviewing advice for developers transitioning from a junior to senior role.

 

 

Vincit Talks is a monthly tech meetup held in Southern California. It’s designed to bring directors down from their towers and developers out from their cubicles. We feature speeches on a variety of topics ranging from marketing and business development to software engineering and design. Talks will be brief, but informative. Check out vincittalks.com for upcoming events.
 
On our June 25th event, Sean "Swyx" Wang shares successful career tips and interviewing advice for developers transitioning from a junior to senior role.
 
Shawn "Swyx" Wang is an Infinite Builder, working on Developer Experience at AWS Amplify. In his free time, he teaches React JS, TypeScript, Storybook JS and Node.js CLI's at [Egghead.io] (https://egghead.io/s/26zf5), and helps run the Svelte Society community of meetups.
 
Sean: So while we don't have any more questions coming in, I'll go ahead and start with our next special guest. We've got Shawn Wang, also known as Swyx. Maybe he can give a little background on that name. Shawn is an infinite builder, working on developer experience at AWS Amplify. In his free time, he teaches React, TypeScript, Storybook, Node.js, CLI's and helps run the Svelte Society community of meetups. So today Shawn is going to talk about career hunting in tech and provide successful career tips from an industry expert. So if there are any questions for Shawn as he speaks, again, please add them to the Zoom chat. And then once he's gone through some of his information, we'll be sure to drill him with a few questions and answers, and go from there. So, Shawn, if you're ready, let's jump in.
 
Shawn: Thanks, Sean. That's a great name by the way. The Swyx moniker is basically just my initials. I have an English and Chinese name, and it happens to be pretty unique. I've had that nickname since I was 13, so pretty much stuck with it, and I got the Twitter handle early, so I'm just kind of leaning into it. Cool, I'll get started, but definitely feel free to sort of jump in at any time, if you want me to spend more time on various topics, but I know we only have like 20-ish minutes. I'll kick off with timer myself. Oh, and I should probably also post this as Postmates slides, because I'm sure... People always ask for slides. So I always want to give that early.
 
Shawn: And I was invited by John Haupenthal. I think that's how you pronounce his name. And generally career hunting is not really the title that I... We didn't really know what to call this, and we were just talking about sort of job advice, junior to senior dev, career advice and that kind of thing. I've kind of settled on coding careers, but career hunting, job hunting. I'm sure that's relevant to a lot of people in the audience, especially in this economy. So, basically I've been working on this book, and it's basically based on my own background, and I can explain a little bit, like I used to have my first career in finance. I spent about six years in investment banking and hedge funds. Then I basically burned out of it, did a boot camp in 2017 and went through Two Sigma, which is a pretty well regarded techie hedge fund in New York, then move on to Netlify.
 
Shawn: I saw the previous speaker had their sample app on Netlify, and it's always nice to see that going on there. And I recently, I think this month, just joined AWS as a senior dev applicant, so I always want to try to pass on whatever I've learnt, but obviously I only speak for my own experience. It's very hard to generalize advice and experience. You already know the rest, because I got that awesome intro. And so, basically I wanted to do a longitudinal study. So basically a lot of advice, a lot of books focus on point values. So like, here's how to crack the coding interview, and then here's how to write clean code, and then here's how to be an engineering manager, or a staff or principal level, and I wanted to do... Focus on the first 48 years from code newbie to senior dev, cover the transition periods.
 
Shawn: There are two major transition periods of job hunting and then going from junior to senior. I found this, there's a hole where no one really knows how to go from junior to senior. At least there's not a lot of books. I don't think there's any books. So essentially, this is my attempt at doing it, having gone through it myself. And I wanted to break it down basically into principles, the stuff that you always have on. Strategy, which is key forks in the road, and then tactics, which the stuff that you just use frequently. So I just try to visualize that as well. And so, I'm just going to kind of walk through it, and then feel free to ask questions. I probably have too much on here. It's quite a lot of content, but I did try to focus in on job hunting.
 
Shawn: And I think the first thing to realize is that we... So kind of how the internet has OSI layers, or tech has OSI layers. We also have humans that kind of correspond to get software from the machines all the way to end users, and we actually all live somewhere in that spectrum. And actually, you can sort them by how far they are from machines and how close they are to users. I generally find that there are more people closer to users and then there are fewer people, for example, working on embedded devices and all that. So I think for people like me, for people like Vincit, we're mostly applications and services, and then if you want to get deeper into cloud and developer productivity, then you sort of go backwards more into the machine, lower level stuff.
 
Shawn: So that's just a way to frame where we are. But then, most of the time... So just kind of going into the job hunting aspect, I think mathematically the number that I want people to hold in their head actually comes from Shahid Qureshi who wrote this awesome blog post, again, it's in the link, it's in the slides. It basically says, that mathematically, because if you have a 4% chance of getting an offer from any application, you just have to do it 50 times to have a pretty good 87% chance, and it's just kind of an accumulative thing. So if you're doing job searches, just keep that in mind. But even then, 50 is kind of this weird number, where does 50 come from? And I find that in practice actually, it varies extremely widely.
 
Shawn: So, there is some people who would go through 200-ish applications, and some people who have to go through 300. I myself only did nine, and it's really how wide, versus how focused you want to be. I prefer the focused approach, and then other people really want to play in the numbers game. I think if you talk to more people to find out what it is you really want, and what it is they actually do, then you can focus it more and you don't have to do so many applications, but it does take more upfront effort instead of dashing off an application and hoping to hear back. I think another advice that I always have is to use social pressure, to have a group of friends that you can report to and be accountable for every week. Because I know when I was job searching, I think the motivation to keep going, especially when you're not seeing any results is very hard, and we're all social creatures, so we do need that kind of social pressure to keep it up.
 
Shawn: There's also a question of, how do you spend your time while you're searching? This is what I did, and I did two, three hours of algorithms, two, three hours of courses and books, and then only in an hour or two, a day of job opportunity hunting. Basically, because again, you're just trying to filter out for the stuff that you really, really want. And then building projects, that's obviously the best way to get generalist skills, fill in your gaps and all that, so that's the rough framework that I have. During the interview, I always try to explain to people how portfolios are actually not so much of a portfolio, especially if you're not so much of a front end designing person, portfolios are very visual.
 
Shawn: So really I don't like that portfolio advice. I like just showing proof of work. Having a blog is proof that you're interested and passionate, and you're working on something interesting. And Mekka Okereke, who's an engineering manager at Google, actually just says you can just pretty much impress most hiring managers with only three contributions, and a good story and a good project. Basically it goes that far, you don't need a super green GitHub or anything. You just need something good, and you can work on that pretty much with intention. Referrals are also a way to go to skip past the hiring funnel. So here's one from George Lee, who is an engineering manager at Uber, and he's writing this book about resumes. So he's sort of putting out what he's writing.
 
Shawn: And basically, if you want us to come in on the front door, then you have to go through a bunch of filters, but if you can get referrals, then you kind of skip a few levels and your chances get a lot higher. And yeah, if you can get in, that's really great. Industry certifications, CompTIA Analytics, the security industry in general seems to have more than in front end and in cloud. But I want to highlight the cloud resume challenge if you want to get started working at a place like AWS, or Azure or whatever, you should definitely pick up Forrest Brazeal cloud resume challenge, because basically he says, "If you do these things, I will volunteer my network and introduce you to all these amazing referrals." We just talked about how effective it is.
 
Shawn: Also know how to pitch yourself in a tweet, and basically here, there's 100 different examples from Veni Kunche. So, in 280 characters pitch yourself. Just what's interesting about you, and what should people know, and a lot of people hire off of Twitter, even for junior roles. I think that's a really interesting skill that doesn't need that much time, it's 280 characters, whatever. For interviews, I collected a bunch of resources. I'm not going to spend a lot of time on this, just because you can just go look up the links, but I really like this approach of, which I got from the bootcamp. If you're being given a technical interview question, repeat the question to make sure you understand, come up with examples to sort of test what they really mean, test your understanding of what you really mean, outline your approach before you tackle a problem. You code it up and then you test your code, and then you optimize. Make it work, make it right and make it fast.
 
Shawn: I actually got a job by reversing. I got an offer by reverse when I did TDD. So I tested before I wrote the code, and people really like that. So if you want to try that twist, definitely try it out. Blind interviewing is on the rise as well, because people understand the systematic bias when people do in person interviews, especially... It's just ridiculous how if you have a black sounding name, you get a lot less callbacks and all that, and it's fairly pervasive. So I think this trend of doing blind interviews is very healthy. So there are three companies here that I recommend checking out for doing that. Oh, one of the things I'm pretty interested in as well, is this idea of reverse interviews. You know how at the end of every interview, pretty much everyone's asked you if you have any questions and it's good to come prepared with some questions beforehand to show that you really care, but then also it helps you decide down the line whether you really want to commit the next few years to the company.
 
Shawn: If you're having trouble getting in the front door, again, sometimes, especially in an economy like this, there's a glut of talent, especially hundreds of people being laid off from top firms. If you can't match up to that right away, that can be pretty challenging for a while. So I always talked about, if you're more junior, you do internships and apprenticeship. If you're more experienced, you might want to work on some opensource that someone uses, and that's a really good way to come back in. Contract jobs are always available as well. For people who are just breaking into the industry, I find it's really important to just try to get in no matter how, and sometimes you might just want to be a support engineer, sales engineer, like tech adjacent, where you're not exactly a developer yet, but there's a path towards being that. Because once you're in, it's always easier to transfer laterally than coming from the outside as a developer.
 
Shawn: And it's better to spend a year employed as a support engineer or whatever, and then switch to full developer, than to spend a year unemployed and looking, and not really having much luck. So I highly recommend that, especially in this economy. For the junior to senior dev transition, I basically surveyed a bunch of advice from everyone, from Danny Vermont to Orta, who I really respect in the TypeScript world and everyone in between. And basically I came up with a bunch of very cute little sort of transition points. Nobody's supposed to match them at all times. I think these are just ideas of where people can improve. So I came up with ideas in code, I try to understand that technical debt sometimes is a necessary evil, and in fact, like everything you write, if it's successful, it will become technical debt, that's how you know it's successful, otherwise it just won't be used.
 
Shawn: And so, these are all very interesting patterns to try to think about. I also want people to be more inquisitive as well. So, seniors asking the right questions sometimes are actually more important than knowing the answer, because, framing the question actually gives you a pathway towards the answer.
 
Shawn: So for example, one thing I preach a lot as well is that seniors should try to seek out... Try to understand what is just good enough for their needs, instead of always seeking for the best, because seeking the best is very inefficient, and very zero somewhere is good enough, is very positive. So I also encouraged a lot of seniors to write more. Obviously I blog a lot, but then also you can do internal writing, or you can just do a code journal for yourself, and that's a way to scale yourself a lot more. Humans are good at creative solutions and abstract thinking, and we should delegate memory and search to our machines. And one way to serialize from brain to machine is to write. That's good enough on a single person level. And then if you apply that to an organization, I think that's a very, very powerful way to scale yourself.
 
Shawn: And lastly, as far as team is concerned, obviously seniors should be mentors within their team. The term I like is force multiplayer. This is not my term. This is from Carrie Yamin, but basically, teaching mentorship, leadership. They should become more independently able to lead. That's basically what I'm trying to get people to do, is essentially as you start out, you learn what there is to learn that's been written down, and then you start getting experience, and then nobody writes it down. They just keep going. So there's a lot of tacit knowledge in our industry, and I just want to encourage people to write down what they know, and that's essentially it.
 
Shawn:: So this is my attempt, this talk, this book, everything I write is an attempt to write down tacit knowledge. But I'm only one person, and I think we could all do a better job of writing stuff down. So the next few parts are just basically sections of the book that I wanted to also talk about, but then I don't want to take up the whole time. This is not an ad. But I think these are... Sure, the immediate tactics of, how do you study for a 10 goal interview is fine, that in tactic. But what are the principles that are going to last you the whole way, right through your career? I think that's more lasting and important to me and important for everyone. And really it's a question of, this is inspired by Ray Dalio who runs Bridgewater capital.
 
Shawn:: And he was like, "You should just write down what you believe in. Everybody should." We think we know what we think, and you don't really know until you sort of write it down, and once you've written it down you can scale it. You can tell yourself these are the pain and the mistakes that I've experienced before, and I don't want to repeat them, or this has worked super well for me and I want to do more of it. If you hold it in your head, it's kind of like fuzzy. It's not really ordered and it's hard to share with other people, but if you've written it down, then that becomes your system, and systems are way more important than goals. So these are my principles. My most important principles to learn in public.
 
Shawn: And essentially it's to basically share as you go along, and that is not so much something that is an act of altruism, it's not like giving back to the community so much as it is simply the fastest way to learn, because if you've written something down for yourself, then you can refer to it later. It helps you organize your own thoughts and sort of remix it, and once you remix something, you learn it better. And then if you get something wrong in public, people will correct you because that's how the internet works. It's Cunningham's law. And once you've been wrong in public, you'll always remember it, and so it's just a faster way to learn, and that's a really, really powerful compounding aspect, because as you build your expertise, you're also building a network.
 
Shawn: And I mean, those are two of the most important things to developers. I've written down a bunch of other principles. I don't have time to cover them, but basically I want you to think about what principles you believe in as well, and this is the start of a conversation rather than an end. These are mine, I want to know yours. I might change mine, I may add or delete some, but everyone should have some set of principles that they operate by, and if you know them well and you can share them, then you can hire better, you can manage better, and you can manage yourself better, why not? So I really believe in just the general value of principles. I think that's a good idea.
 
Shawn: Then we talk about strategy. I think a lot of developers try to think of their tech as sort of independent of the real world, and it's not the case. So we'll talk about, first of all, we'll talk about learning strategy, what should you learn, and how should you learn, and what technologies do you bet on? So I have this concept of learning gears, their basically the way that you should act when you don't know what you don't know, is very different from when you know things that other people don't know, or when you know what you don't know, and you need to do fundamental deep research, and that's mining. For example, a lot of people also try to talk about whether you should specialize versus generalized. I have a small discussion about the T-shaped employee, and how Valve does their specialization.
 
Shawn: But basically, when in doubt specialize, and you'll be forced to generalize when the need comes, because you just have no choice. I also did this sort of comprehensive study of every public engineering career letter out there, so that's on my Dev2 page. And I think that's, I mean, every company has some sort of ladder and obviously that's a part of your career strategy, to progress up the ladder. And what's important is basically, I think that technical expertise is less than a quarter of all these evaluation criteria. Everything else is sort of organizational, communication, execution, that kind of thing. So even as a developer, you cannot escape the fact that you have to be more than just code. Even if you're not an engineering manager, you're going to have to deal with this if you want to progress.
 
Shawn: Then we also talk about tech strategy. I think this is something, because of my finance background, I'm pretty qualified to talk about. So I just want to introduce people to how money is made with your code. You should have a sense of how money is made and therefore you can position yourself accordingly. So we talk about unbundling versus bundling, the two main ways to make money. So for example, Craigslist is being unbundled into a bunch of different startups. We also talk about business models from agencies advertising to market places. I can talk more in Q and A's about this, because I'm pretty passionate about this. Video games are on a massive tier, if you're in this music industry, it's just kind of there, even if you're in Spotify, but video games are just on a massive tier.
 
Shawn: And I think people should be aware of the general macro economic moves in tech, and where they should focus on a high level. I also like to talk to people about mega trends, how basically population scale movements in adoption of technology is accelerating. This was the telephone adoption, and then now there's... In a few years we have a very sharp adoption of smartphones and tablets and all that. And I think things are accelerating and we need to be able to bet on mega trends rather than individual sort of technologies. I think that's pretty important as well. We also talk a little bit about Wardley mapping. This is more if you're into charting ecosystems and how they're evolving. That's a fairly advanced concept, which I honestly, I don't cover enough.
 
Shawn: And then finally talk about tactics. I think everyone focuses a lot on tactics, but I want to emphasize that these are the smallest things. If you get the other things right, then these will kind of fall into place naturally, or just not matter as much. So I've been collecting, on my GitHub repo, these set of design tips and tools, and I talk a little bit about that. There's a tactic of lamp shading, basically, how do you... People generally tend to regard knowledge as power, but you can actually turn ignorance into power as well. I also help people to start writing. I think everyone basically should write a lot more, and the way to write a lot more is to convert, do a lot of pre-writing up fronts continuously, and serendipitously, passively and just take a lot of notes, and have a lot of multiple pieces going on at once.
 
Shawn: And then when you're writing, you just write, and that split helps you put out high quality work at a high velocity, and I really liked that as well. I have a blog post on this on my blog, if you want to go check it out. I also talk about marketing yourself. I think people understand the value of marketing yourself, but they don't really know how to do it. So I try to come up with a framework for marketing yourself in public and then at work. And I think that's something that I'm happy to chat about more as well, particularly if you're trying to go from junior to senior, you have to market yourself as a senior developer without being one yet. And I think that's a fundamentally core skill, maybe people just kind of wing it mostly. We all figure it out. But if you are a little bit more systematic, you might have better results.
 
Shawn: And finally, I think all of that is not really helpful. Imagine if you had every answer to every question in the world, it's not really helpful if you don't have a system to implement it. So that's everything that we just covered, is the front facing stuff, what others see about you. But then the core daily habits are extremely powerful, because they are things that you do unconsciously that just make yourself fundamentally more effective. So stuff like, how do we... I call this an operating system, because these are the things that just happen under the surface, that directly interface with our body and our brain. So do you have a system for taking care of our health? Do you have a system for saving our knowledge? Do we have a system for triaging everything that comes into our lives, and making sure that we don't drop important tasks?
 
Shawn: And finally, do we have fundamental drive and motivation that will make us passionate about tech for our entire lives? I see a lot of people basically lose their motivations, because they're cogs in a wheel, and they don't really have a bigger purpose or calling. I don't have all the answers to this, but I think these are an important thing. The important things to talk about when it comes to the totality of your coding career, so that's why I talk about them. And that's about it. So if you want to talk more, if you want to read more, I publish a lot of thoughts on these on my blog, swyx.io/writing, but I'm also updating and publishing in this as a book that I'm launching next week. It's not launched yet, but you can also follow up with me on Twitter. And I can take questions now. Thanks.
 
Sean: Perfect. Thank you, Shawn. That was a super insightful. Yeah, we have a couple of questions, so maybe we can churn through those. I know we're right at the top of the hour, so if you need to drop off...
 
Shawn: I got time.
 
Sean: One of the first questions is, how do you know what technologies to bet on? What's your process?
 
Shawn: There we go. So obviously this is a huge topic and I think... So I try to encourage a very self centered way of viewing technologies, know your needs, know your problems that you're trying to solve, and then go look out for the solutions. Instead of, I think a lot of people, they'll look on Twitter, they'll look on newsletters and then be like, "Oh, a new toy of the week. I'll go try it out." And not really have a system for sorting and slotting the new technologies into where they might fit within your existing workflow. I also talk about the... Do you know ThoughtWorks? ThoughtWorks is this agency. They have this technology radar, where they have four different levels of how you should adopt technologies.
 
Shawn: I don't remember the exact levels, but it's something like adopt, trial, assess, and then hold off. So basically have a system for what stages is that, how much of a crap should I give about this? And so, I personally think about a reference counter. I'll pretty much hear about a new technology and I'll be like, "Okay, that's interesting." I roughly know what it does, but I don't have to try it out yet. And then I'll hear more about it, about three, six months down the line and I'll be like, "All right, I'll go through the docs. I'll go through the demo." And then a year from it, I'll be like, "All right, I'll put this into a small project." And then after that, if I really, really like it, then I'll go full hog into it.
 
Shawn: So that pretty much happened to me... I'll give you an example with Svelte. It takes a year for me to adopt something like that, and I think everyone should have some sort of measured pace to this, because otherwise you can burn yourself out. I just heard from Dave Rupert, this great analogy about how it's kind of like surfing, surfers, if you're an amateur surfer, you try to catch every wave and you try to just ride every single wave that come in. But experienced surfers just wait for the good ones, and then they ride those, because they know that their energy is a sparse resource. So I think we should all take a page from surfers.
 
Sean: Great. Yeah, I know we're right at one o'clock so maybe we can encourage... You did share in the comments, the link to your slide deck, which there's a lot of really great information in there, and maybe we can pass along some of the additional questions to you, and possibly answer them through that deck if possible. Want to make sure and just say thank you to all the speakers today and Shawn, you've been great at the advice, and it's exciting to hear the approach that you give our listeners and certainly in the pursuit of their role in the tech industry. So we'll happy to keep sharing your slides. We're going to send an email out and a survey after this webinar, and certainly would love to share the link to your slides there as well, so we can continue sharing that information. I just wanted to remind everybody that we host these monthly talks, because as a company, Vincit strives to support our community, our partners, and our clients, to make sure that the highest quality software development and design solutions are being provided.
 
Sean: So, which also includes engaging with amazing talent of developers, a lot like yourselves that are joining this call and design and business professionals that could benefit from these Vincit talks. So we want to keep them up, and we definitely would love to hear more from you in the future. If you have any suggestions for speaking topics or people you'd like to see we've got great topics. Our next one is going to be on July 23rd, where we'll have Dustin Gyger who's the CEO and founder of the online bicycle retailer, sixthreezero, and he's deeply experienced in e-commerce, and we'll also have Andrew Collin, who's a senior manager of digital marketing communications at Yamaha Motor Corporation. So we're excited to have those speakers as well. And Shawn, we encourage if you're available, join us for that one. But outside of that, be sure to check out vincittalks.com, Meetup and our social channels for more information on our future talks. And thank you everybody for joining us, and hope you have a great day and we'll continue these efforts. Thanks so much.
 
Shawn: Thanks for having me. Bye everyone.