Episode #8 - Emma Bostian talks technical interviews, coding challenges and getting into engineering
Emma talks about her experiences with technical interviews, diversity in tech and how she got into engineering
In this Episode
In episode eight I’m joined by Emma Bostian, a prominent software engineer in the tech Twitter community who works at Spotify. Emma talks to us about the technical interview: the good, the bad, where it can be improved and how it can be useful in hiring the best developers. We also talk about increasing diversity in tech roles and how Emma got into software engineering.
Listen now
Sponsors
Want to sponsor the show? Head on over to the sponsorship page to take advantage of early sponsorship!
Resources
We mention a few different resources in the show and you can find them here:
- Find Emma on Twitter.
- Discover Emma’s articles on Dev.
- Visit her website, to learn more about Emma’s work and upcoming engagements.
- Follow The Ladybug Podcast on Twitter.
- Find out more about her CSS Desctructured book.
- Learn how to ace technical interviews with Emma’s book, Decoding The Interview process.
You can find out more about me, Rob Kendal, on my personal website, or follow me on Twitter.
Transcript
Part 1
Rob 0:00
episode eight of the front end here we are not that many in but still very excited nonetheless. And we are very excited and very honoured to have with us today. Emma. Bostian. Hello, Emma.
Emma 0:10 Hi. Thanks for having me.
Rob 0:11
That’s so no thank you very much for coming on. Now I’m going to apologise up front if I ever pronounce your name as Bostonian because I don’t know what your brain does but mine sometimes reads a word and says this is how it’s pronounced and for some reason when Bostonian and that is now locked away in my brain, so I have to work very hard to get Bostian and also not to do some kind of Good Will Hunting impression like ‘wicked smart’ with the Boston side of things. That’s okay. in her own words is a software engineer blogger speaker teacher and cat mom now i’m not i’m not sure which one of those you would place more importance I’m going to say the cat mom bit
Emma 0:44
Oh evidently yes.
Rob 0:46
Yeah, absolutely. We we unfortunately lost we had two dogs horribly allergic to cat otherwise we probably have would have some, but we lost both our dogs earlier in the year but I would normally identify more as the as a dog Dad, I suppose. We are very, very, very honoured to have you on the show. Thanks for coming on. I’m going to talk a little bit about tech tests and that awful part of the kind of it’s for me the development hiring process where we get to the the dreaded technical interviews that really test your your knowledge and your mettle. But I’d like to ask a little bit about how you got into into development and things. Because I see from your website that you were you were very much No, I’m not interested in development at all, no route I want to go down. And then you ended up being what you are now very successful software developer with a with a CS degree, no less. So how did you how did you kind of go from absolutely being Nope, I don’t know what to do and then kind of going down that pathway right now.
Emma 1:36
Well, I mean, I sucked at the other thing I was doing. So I was a biology major. My whole life. I grew up I wanted to be an OB GYN. I wanted to deliver babies professionally for a living, which is a strange profession for like a five year old to want to have, but that’s what I wanted to do. And I grew up with two parents who worked for IBM. One who still does my mom just retired, but she was a senior UX designer, and my dad was an architect. So his back end developer. And I would always go to like the IBM bring your kid to work days. And I just, it felt very archaic To me, it didn’t seem very exciting or anything like that. So I kind of had this stigma in my mind of, well, my parents are pushing me into this. So therefore, I’m going to do the exact opposite. And I started out biology and I absolutely hated it. I almost failed my first semester of college, I had like a 2.7 GPA because I, I really basically failed chemistry and biology. And so at that point, I was like, well, I like math, I’ll switch into actuarial science and study statistics. And that’s where I take intro to programming. And so that’s kind of my first introduction to it. And I remember really enjoying hex binary and learning about the history of computing and things like that. So at that point, that’s when I switched to computer science.
Rob 2:53
And I like that your dad’s still at IBM. Do you ever get together with him and do a little Bostian hackathons?
Emma 2:58
No, absolutely not. He hates what Development actually takes time anytime he finds a an issue with like a front end forum he’ll like complain about it to me for hours and talk about how much he hates web development and then I should switch back to back in development i mean he’s being cheeky of course but ya know we don’t
Rob 3:16
it’s um it’s nice to go slightly related tangent I have a quite similar situation I have a six year old daughter and he’s always kind of one of those I’d love to go into development because if nothing else was like I could teach you things that would be great but she’s she’s dead set on being what it was a doctor weirdly, but then not not maybe an OB GYN, or gynacologist, as we know them, but she just wants to be a singer dancer.
Emma 3:40
I think that you kind of need to let your this is my personal take, given how I went about life. But for me, you know, when I have kids in the future, I think it’s going to be one of those where you got to kind of let them find their own path and ultimately they’ll end up where they want to be. But I my parents, you know, they always advised me you know, I don’t think there was a point in time in college during my biology issue where I actually applied to a secondary college and got in for music education. I was really convinced I wanted to switch for music. And my dad sat me down he goes, You know, I don’t agree with this. I don’t think it’s going to be the best for your career decision because he was right. I mean, I wasn’t an aficionado when it came to playing trumpet or piano I was decently good but I wasn’t good enough to really make it in a tough industry and but he let me ultimately make my own decisions. He’s You know, he, he told me, I don’t think that this is a viable career path for you, but I support you and at that point, I was like, You know what, he’s right. And I made that decision myself. But yeah, I would say don’t force your child. For me personally, I would not force my children into something that they seemingly don’t want to do it let them kind of figure it out on their own.
Rob 4:39
That’s a good message for any podcast player especially a front end one. Yeah, don’t pressure your kids! My wife and I very much like that. I mean, she absolutely loves she does a drama class which is now doing it online and that’s a bit weird, but it seems to work. But she she loves singing and dancing and drama. Were very much crack on you want to you want to be good at that love. Do it. I mean, I think the only thing we probably have a problem with if you want to be like a career criminal.
Emma 5:01
Yeah, yeah, of course.
Rob 5:03
Maybe, maybe not. There’s other options out there for you. But yeah, you know, but she does quite like the stem stuff, which is something quite keen to encourage because I think that opens up quite a different number like a multitude of paths.
Emma 5:15
Well, it’s cool because there are a lot of fields and tech that you don’t realise you can mesh with other areas in your life. So like if you are really interested in drawing if you want to think about art, well, if you also like technology, why don’t you blend those to become a visual or graphic designer, right? Or if you enjoy logic puzzles, but you don’t want to I don’t know what other things like you don’t want to be a detective. I don’t know. You know, computer science is a really great field for that. And so for me, I loved music, but it wasn’t something I thought I could make a decent living at. But now look at me, I’m going to be joining Spotify. So I’ll get to work on music software as a software engineer and so it’s it’s pretty cool to be able to blend those two passions
Rob 5:55
are you going to you’re going to become a featured artist on Spotify. Do like your own music, and work for the company that hosts that music as well
Emma 6:02
well. Absolutely not no one would buy it. But I did find out that they do have bands there. So they have like a choir that I can join they have. I think they offer guitar lessons like they have plenty of different opportunities for continuing your music.
Rob 6:18
Oh, wow. That’s That’s amazing. Speaking of spotify, a nice segue into you know, the congratulations on the on the new role. So that was that pretty gruelling process to get to get in Spotify?
Emma 6:29
No, I actually really enjoyed the process. Surprisingly, because the tech interview process is not enjoyable. I was going through the interview process with Google at the time. And that was a gruelling process. They’re notorious for having very difficult interviews. And granted I had a very good experience with them. But I got to the point where, you know, COVID-19 kind of became more prevalent and hiring slowly decreased and things are up in the air. And so I kind of reached out to my own content on Spotify, and I said, Hey, are you Hiring. So you know, just to do a couple in tandem. And it ended up being one of the best processes that I’ve gone through for the tech industry. It was a lot of interviews, I would say it was I had like a coding interview. And then after that went well, I had quote, unquote, on site interviews, which would have been in Stockholm, but they were remote. So I had a systems design, data structures and algorithms interview, and then another front end interview, and then one with a man, a hiring manager, but it was really great. I thought the questions were very practical, they had two interviewers, which was nice to help it felt more conversational, it felt less of an interview.
Rob 7:35
It’s nice to hear that you got something out of the process, because again, I think some companies take it as this kind of gauntlet that like we are this mighty company, you want to work for us lowly engineer, you’ve got to prove to us your kind of worth. And really, I think it’s got to be a bit of a at least even if it’s weighed a bit more towards the company. And it’s got to be a two way process because you’re working out whether they’re a fit for you as much as you are for them. So it’s good that they managed to fulfil their side With the technical elements, it enjoyable for you as well.
Emma 8:04
I think that’s what people forget is you’re also interviewing them. And I think a lot of companies forget that as well like your talent and you’ve got something to offer them. They’re spending their time interviewing you, which means they’re decently interested in you. So don’t forget that. It’s a two way conversation,
Rob 8:21
Now, this this episode, you know, we’re going to talk about the kind of tech portion of it, the technical interview portion of the interview process? Now, you’ve had your fair share, I would say probably had your fair share of technical interviews, what, what are your kind of opinions on technical interviews and coding tests?
Emma 8:38
I think they’re a necessary evil, but I think that there’s a proper way to do it and an improper way to do it. So I am personally not a fan of asking direct definition questions of like, define a promise or what’s a closure? I don’t like those types of questions because as someone who struggles with memory Can’t memorise things for the life of me. I mean, I struggle with definite I failed history, I swear to God, like I was just horrible at anything that required any level of memorization. And so when I get put on the spot and ask these definitions, I seize up. But when we’re talking about coding questions, I think it’s very important to be empathetic towards your interviewee because this is a very stressful situation. Many people are not interviewing for the fun of it. They’re interviewing because they’ve been laid off or they have to maybe that their visa is on the line. We forget this. There are a lot of international candidates who need a visa to stay in their country, which is my position currently. So people are interviewing for fun they’re interviewing because they have to, and we need to ask them relevant questions. So don’t ask them to find a broken edge, a binary search tree, if they’re going to be working primarily in web development on you know, a food delivery application. If they have to touch a binary search tree for whatever reason. They’re not going to need to memorise how to code one or the nuances of it. So ask them practical questions. So something Spotify did with me that I thoroughly appreciate it. Every question they asked was relevant, but it also encompassed encompassed multiple facets of web development. So it had a CSS, it had HTML, it had accessibility, it had JavaScript, versus just these JavaScript heavy solutions. So yeah, and one other one other positive interview I remember having was they gave me multiple options for questions. So I actually interviewed with Gatsby and my friend Jason was interviewing me and he gave me three different questions that I was able to answer, which I thoroughly appreciated because some of them I just flat out didn’t know and there’s nothing more traumatising than being asked a direct technical interview question and you flat out don’t know the answer. So being provided with options of questions to pick one from was very, very helpful.
Rob 10:50
Oh that is great. I mean, it’s it’s so nice. It’s so life affirming to hear someone else say I struggle with remembering things because I either had an interview, I just changed or in process of changing jobs and the interview I had with with with four tech leads, which was kind of intimidating enough but they were firing like a lot of definition questions like what acid in terms of database? Yeah, just what what does REST mean and it was around it’s not forgotten what the actual thing stands for because it’s very there’s a lot of pressure and it’s 8 o’clock at night because of the time zones and it was just weird, but, you know, I could explain the kind of maybe the difference between how REST will do something versus something like graph qL so that seemed to appease them but yeah, that was that was tough.
Emma 11:31
Yeah, and my gosh, I had a point I was just going to forget. I’ve also been talking about memorising things so it tells you I can’t remember anything. There’s there’s a good book called ‘Make it Stick’ that we’re reading right now for our Ladybug podcast, book club group. And it’s all about the science of learning. And I want to be very clear that there’s a harsh difference between learning and memorising. If you don’t understand underlying concepts, you’re not going to be as successful in these interviews because you’re going to be just spitting out definitions if you can remember them. This was something I did horribly was I just tried to memorise these things. I didn’t understand what a closure was I tried to memorise the definition, and that really hindered my ability. So I’d recommend that book if you’re struggling to learn a lot of these concepts, maybe understand how we like retain information and build new synapses in our brain and, and all of that, how does our brain actually encode information? It’s a very important subject that I think we all take for granted.
Rob 12:29
Yeah, absolutely. Now you touched a little bit, in one of the last answers about, see I’ve lost my point , we talk about memory, it’s just horrendous. Yeah, you touched a little bit about, you know, useful gauge of someone’s knowledge and things. And I asked around that question, because my experience of technical interviews Now this might be the UK version. And you know, I’ve not applied for any kind of top tier companies that might do it differently. But I think some of them ask a little bit too much of candidates. And like you said, They’re either very, bullet pointy, acronym based questions as if that somehow proves kind of you know, just like you said that determines that you’ve memorised something, a lot of them will have very long coding challenges maybe like 5, 6, 7 hour plus. And for me, I feel that asks a little bit too much of people like for free, especially if they’re in a situation where, with COVID, a lot of people are made redundant, they don’t maybe have the time or the inclination to spend days doing kind of free work, if you like to do the to just prove that they’re good at doing something, so do you think there’s a good balance to be had with with these kind of practical projects.
Emma 13:31
Okay, so you’re talking coding projects, not coding challenges. So I differentiate these because coding challenges to me are either on a website where it’s a time challenge, and you have to come up with a solution or it’s like a one hour video call. So that’s what I would call a coding challenge. The coding project is a whole different situation. I personally like them, I think that they are a better representation of the work that a candidate can do because it simulates the real world. But that being said, we have to scope these projects because I have also been given projects that I’ve spent four days straight working on just to get a rejection, which is absolutely ridiculous. So there was an example with hellofresh, actually in Berlin and I had the worst experience with them, I was so mad about it. And that’s the other thing your candidates are gonna remember if they have a crappy experience with you, and they will not be willing to work with you when you reach back out. So just remember that because I’ve been in that position where I’ve been treated horribly. When I didn’t have a Twitter following. I was a no one. And then suddenly, I have this platform. And now you want to interview me again? Well, guess what? I remember how you treated me. So sorry, that was me being a little bit salty. But anyway, this this code, this take home coding project they gave me was to redesign basically their entire homepage. And I was like, Are you absolutely kidding me right now. They wanted me to redo their app. And that was free, unpaid labour, which is totally messed up. But they also didn’t tell me Hey, we wanted to see you use react or view. So I wrote the whole thing, vanilla JavaScript, and my only feedback was like, Oh, we actually wanted you to use a framework. I’m like, well, you should have actually told me that Because I could have, it was ridiculous. But I’ve also had really good coding projects for the Google process, I was given two options to choose from that tested different skills. They were very scoped. But I personally think that coding projects are a much better representation of my skill set, I do not do well under pressure under live coding challenges. So having the ability to search the web for these API’s that I need or use a UI framework to build out a really nice looking interface. I do much better in those and I do think many candidates do but yeah, to your point, they can be very time consuming. So please just make sure that they’re scoped.
Rob 15:34 Yeah, I agree. That’s mainly my beef with them. I like them as a, like you said as a representation of kind of many how people think because I don’t think, you know, development is one of those such a broad thing, you know, you you can get the right answer a million different ways. And one of the interesting things I read was a guy on YouTube whose name escapes me actually, we’ll put a link to it in the show notes. It was it was a coding challenge that his friend had kind of thought about, which was this fizzbuzz thing. I don’t know if you’ve heard of that.
Emma 15:57
Oh, yeah, yeah,
Rob 15:58
yeah. I really quite like that. seems quite simple I mean, in terms of solution was maybe only 20 lines of code so but it was great to see like look there’s a lot of different ways we can approach it how do you approach it? How do you think you know the quite terse you a bit more expanded in how you write your code and things and Yeah, I do. I agree. I like them but you do need to be very scoped. I’ve had my fair share of those where you know, it’s just a someone give me a PSD, which is difficult enough, because if you don’t have the software to open it, it’s a bit tricky, but they’re just ‘oh Yeah, recreate this!’ and it was similar thing like a shopping cart. And it was just, well, how long do you want to spend what do you want it to do? So I kind of just flat out refused, they ended up offering me a job anyway, but it was one of those that you know, within minutes of setting foot in the door, you’re like, Yeah, I don’t want to work here. This is where I want to spend a large amount of my time.
Emma 16:23
Yeah, and I think I want caution employers. So like, please don’t reuse the most popular coding questions and if you do change them, because if you’re giving candidates fizzbuzz or asking them to do a to do application, yes, those test very vital skills, and they’re decently practical, but that being said, many candidates have memorised the solutions to these problems. So if you’re going to be giving things that test recursion, or I don’t know, whether or not you can use certain array methods or understand big O, like, find the same types of questions that are a little bit different that because otherwise you’re getting candidates who’ve just memorised these. Like recursive Fibonacci, like they’re 1000 solutions on the internet for Fibonacci, so please like change them up, because otherwise you’re just going to get people who’ve simply memorised.
Rob 17:41 Yeah, and with some of the, you know, you mentioned some of the the, the more algorithmic or kind of more CS-based I would say things like the binary search tree and stuff like that. How realistic do you find those kind of questions? Is it like you said, where it completely depends on the application because I’ll be honest with you, if you threw some of those at me, I’ve got a lot of years experience as a developer, but I do not come from a kind of CS background. So there is, and I acknowledge this, a big chunk of my knowledge in terms of core computer science knowledge, like some of the popular algorithms or search trees and things like this, I will be missing. So yeah, suppose some technical interviews will focus on those kind of very algorithmic data tree data structures, things like this. How realistic Do you think they are, in terms of development? Or is it just complete depend on the application?
Emma 18:22
I’m not super sure, like some of these things make sense to test. So having a tree for example, understanding a tree data structure is important because guess what the DOM is a tree. And so it’s important to understand how to traverse that. But I don’t think a lot of these data structures like linked lists, do I need that as a web developer? I’m not sure. On the back end side. Yeah, you might touch that. But I think we forget that a lot of developers these days are not coming from a traditional background, whether they’re self taught whether they’re going through boot camp. They don’t teach data structures and algorithms or computer science concepts in these programmes. And I personally would love to see these things taught as more of an apprenticeship on the job if they’re needed, I don’t see why we need to test them. I’m talking about specific very so like tries, for example. Tries are a great example of a data structure that are very efficient, especially for like word searching. So if you think about when you type letters into Google, it populates a drop down list with different string matches, you can use a try for that a try is essentially a tree where you have different paths that have different letters and possibilities that you kind of traverse looking for matches. It’s a very efficient, well, okay, I guess algorithm, but it’s very efficient data structure. However, a lot of people don’t even know this exists. And if like, you shouldn’t necessarily be testing that in a job interview, how often are you going to be recruiting Google search, like, these are things where if they need on the job, if you hire a good candidate with a desire to learn new skills and good problem solving capabilities, like they’ll be able to pick this stuff up on the job, I would, I would steer away from testing these hardcore data structures and algorithms concepts.
Rob 20:02 I think that’s how I got the job. I’ve just went through being having a lot of moxy. And it kind of can do it kind of attitude because the test I was given was, I didn’t get into anything in depth. It was like, it was more kind of acronyms and things like that they didn’t get into anything in depth data structures, but the test was a to create like an AWS, various AWS functions using serverless framework and all these things were like, this is brand new information to me, but I managed to kind of pull it out of the bag somehow. And I think that’s probably what got me it in the end.
Part 2
Coming soon…