This week we chat about Paul's new super computer, Sara's epiphany on how to ace code screenings, and Ben's realization that other industries could learn a thing or two from the way software companies screen their candidates.
When it comes to hardware that cranks, Paul is a fan of Micro Center's in-house brand - PowerSpec.
This week we chew through a great post from Jon Chan about how Stack Overflow hires developers. Sara recalls flunking her first few code screenings while applying for jobs. The hard lesson she learned? Sometimes, it pays to skip the collaboration and just show off. Ben wishes that he had known about real-time tests back when he was hiring bloggers.
Last but not least, this week's lifeboat goes to Yigit, who answered the following question:
"In Android Rooms persistence library, how would I write the following SQL statement: SELECT * FROM table WHERE field LIKE %:value% As a @Query? This syntax is invalid, and I can't find anything about it in the docs."
Thanks Yigit for sharing your knowledge and helping the Stack Overflow community to grow and thrive.
Paul Ford In the same way that like a messy used bookstore and an old and a nice electronic store, kind of like the two things I need. I don't, I've never been to a supermarket.[Right] I've never bought any clothes. I'm sitting here in old rags, [Cassidy & Sara laugh] but boy, is my computer fast.
[INTRO MUSIC]
Ben Popper Couchbase is an enterprise class multicloud to edge, noSQL database. Architected on top of an open source foundation. It's unique because it was formed by the collision of two ideas from different original projects. Couchbase combines a memory first design built for high performance where the SQL friendly query language called nickle that access has key values and JSON documents for flexibility. It's easy for developers to use supports mobile development and offers STKs for Java, .net, JavaScript, Go and Python, try out their online nickle query tutorial to see how easy it is to get JSON data back from a select statement. Try the query at couchbase.com/tutorial.
BP Hello everybody and welcome to the Stack Overflow podcast. It is Monday the 6th of July, 2020. This is a place where we chat about software engineering, programming, learning to code, technology, startups, and just what's hap?pening with our lives. So good morning, Paul. And good morning, Sara. How's it going y'all
Sara Chipps Good morning!
PF Morning Sara! Morning Ben!
BP Paul, I heard you're changing things up. New machine, new OS, new you.
PF So this is embarrassing. My work laptop, which I have just been obliterating, like it's, you know, always running a video stream. It's, you know, trying to do things in terminal, webpages, which are apparently as complicated as a super computer used to be and so on. And so my Mac, the battery started to swell and it appears that I have just obliterate. Yeah. I've hurt that machine terribly. It just can't take anymore and much like me when it's under stress, it just starts to swell up and consume too much. [Ben & Sara laugh] And so I went and I bought and I was like, alright, well maybe I'll get an iMac and I should get a desktop because there's a part of me here. I'm probably going to be home for a while. Like I might go into the office, but it feels like we're all going to be at home, probably edging on 2021. And so I'm like, I better make this nice. And it's like, yeah, I just wanted a nice curve screen. And then you hit me, I'll go into these new iMacs. But they were like... a new iMac, tricked out is $5,000.
02:28
SC It's nuts. It's crazy town.
PF Yeah. And then just like, Oh, you know, what else, what else is possible for much less money than that? And because the thing is, is that I did an inventory. The only thing I use specifically the Mac for any more is...
BP Garage Band. [Ben laughs]
PF Garage Band to record this podcast. Literally to make .wav files.
BP Right. The most important thing you do every week. I got it.
SC Oh then you could've just expensed it.
PF Yeah, no, I know. I know. So I, uh, I got a Windows machine, meaning a Linux machine and look, I mean, there's just an eagerness when you one of these, cause you can get a lot of computer now. So it's a 24 core AMD machine with 64 gigs of Ram, which is roughly 1 million times more powerful than my first computer. [yeah] It's so good. It's so ridiculous. And my test is to compile Emacs. That's always my test. It's, it's just like zooooom just all 24, because if you don't know this, when you are in a Unix environment and you are using Make to compile a file and you go dash J lowercase, J dash J eight or 24, in my case, cause I have 24 cores and or 24 threads and 12 cores, God helped me. It'll peg all of those wallets doing the make it'll use all of them to compile your stuff.
SC Wow! Why is that? Do you know?
03:43
PF Well, compiling is parallelizable, right. [yeah] in the same way that like Make, cause Make, if people don't know it make and build systems in general, they try not to do all the work every time. And so it's, they're incremental. And so they, you know, my instinct, I don't know this for sure, but my instinct has always been like they'll split the work up in the same way that they do in their compiling. Except a lot of it like a lot of those files before they get linked together into one big application are independently compilable. And so why not paralyze that? [yup] That's a totally sensible paralyzable problem. Anyway, I have a 30 inch curved LG screen. I was gonna get the 50 inch Samsung and I just kind of played out that conversation with my wife. [Sara laughs] I was like, you know, let's we can have some balance here. And the thing is that the good machines are gaming laptops. [yeah] So they're embarrassing for an adult.
SC Yeaaah. Does it have LEDs?
BP Yeah do you have an alien, like a glowing alien on the side?
PF Yeah, I know. So it has a, it has a system called aura on the ASIS motherboard that you can control the lighting.
SC Yeaaaah!
PF It has at least seven independent lights and they all can...
SC That's all I'm interested in.
PF Oh no, Sara, you would actually, I mean, it's, it's got your aesthetic. Like you can go full rainbow. [Ben chuckles] You can go like you can go slow pulse and you can go solid color. I have because the, my office and my bedroom are utterly combined. I have gone with nothing because I received some feedback about the brightness.
BP Mmmm. That doesn't come with like a soothing lava lamp?
PF Oh it does, but you know, no, just people weren't as engaged with it as I was. And so...
SC How does feedback get delivered in your home? Is it like one on ones or like, do you, is it...
BP Yeah what're the stand-ups like?
PF Actually, early...this is good relationship advice in general, right? Which is when a person is delivering feedback, it tends to come. This works for like code as well. When people are delivering a feedback, it tends to come at an incredibly quick rate. So for instance, you've left, you've left socks on the floor. Oh, that's a, obviously I shouldn't have done that. That breaks the social contract. I should pick them up. But it's never just that. It's like you left the socks on the floor. There's some challenges with the dishwasher, and in general just incredibly unhappy about my life. So the rule is one unit of advice per minute. You can't, once you break that threshold, cause that's fair. That's 60 units of advice per hour, right? Like I should be able to let anyone know what I'm frustrated about within an hour, given 60 units of advice. But what happens is, is that advice sort of backs up and the dam bursts, and then you're getting so much advice and then you get really angry because you just don't want any more advice. So if you can, can't take it one a minute, Sara, like I could tell you something disappointing and frustrating about our relationship. Not that there is anything, but like I could do that once a minute. You wouldn't even notice you'd be like, Oh, that's helpful feedback.
06:37
SC Yeah, as long as you did a sandwich. I'm big on this thing.
PF Are you a sandwich fan?
SC Yeah, man, everyone else hates the sandwich, but I love a good sandwich. A good compliment sandwich.
PF I love a good sandwich too. Explain what that is. Cause I'm sure some people don't know.
SC It's when you're delivering feedback, when someone, or someone's delivering feedback to you and they say something nice about you. And then they say an area you can improve. And then something else nice about you. So it's like, Oh, here's this nice thing. Here's something I noticed that you could be better at, but here's this other nice thing. And I really appreciate that.
BP That's a shit sandwich. Yeah.
PF Aha, no, it's the opposite. Oh no, no. You're right. It is actually okay.
BP It's good bread.
PF It's good bread.
SC It's all branding, it's all branding.
PF Well, the problem with the compliment sandwich that I have observed is that people get really focused on the sandwich meat and really forget about the bread. So it's like, I think you're a great person. You are really nice. However, at work you are a failure, but I like your shirt. [Sara chuckles] And so like when you do that, the person just literally, you feel good because you gave them a compliment sandwich and they're looking at you. Like they hate me, they just lied to me. And so it's the actual bread has to be sustaining and good too.
SC Yeah. I've learned not everyone likes those.
PF Oh no, they're good. It's actually, it is a good technique. You need to do it. It's important.
07:53
[MUSIC]
BP So Sara, we had a blog post written by Jon Chan who is on the community team with you, right?
SC Yeah. Yep, yep.
BP And it's about how Stack Overflow hires engineers. So I thought we'd dive into this a little bit since this is our podcast, but also, you know, y'all have worked at a bunch of different companies, maybe thoughts on how this is the same or different than other places you've been. I guess the one thing that stood out to me was the full team involvement. So, you know, I've done hiring at media companies, at tech companies, at Stack Overflow. And yeah, the thing that really stood out about Stack Overflow was having interviews with people across the whole team and even doing lunch interviews. And if a single person says, no, that's, that's the end of it. Like you have to have full buy-in. Which to me initially, I was like, wow, this is going to be really hard to get to a point of actually hiring somebody. That didn't turn out to be the case. But what do you think about the way we hire what's unique about it? What do you like about it? What don't, what don't you like about it? Be honest.
SC Yeah. So one thing that this process has evolved quite a bit, since I've joined, I've watched. It used to be very algorithmic in the way that one thing that we as engineers are very good at is determining patterns and then solving for those patterns. So there would be, there was a formula for evaluating resumes and there's a formula for each of the, or some of the interviews, if not all of the specific things you need to look for. And one thing that we realized is that sometimes that formula would exclude folks that were super talented and it wasn't the most inclusive thing. And so we've taken a step back, big step back and reevaluated each step of our interview process in a way that I think was pretty thoughtful. I'm excited to see, I'm excited to see how it's been over the past few months as we hire engineers. So it's been really great.
09:53
BP Oh, I was just going to say one thing that stands out to me about like a coding interview, which maybe is true of other sort of like crafts or like, I don't know, like technical skills is that you have the resume, the screening, you know, you're going to have an interview. You're going to have these different sort of like tests. It's interesting because with journalism or writing, you know, usually you say, send me your samples, send me your writing samples right away at the top. And you, you get those first then maybe you would give them a writing test, like, okay, write something new. Just so I know that like this stuff you didn't send me was mostly just edited by somebody else and not really written by you, but in hiring an engineer, there's the code screen and the algorithm interview and that stuff is all done live. Which to me seems so stressful.
PF Well, not always, I mean, it depends on the culture and the goals of the place. Like this, this also gets tricky back towards what Sara was saying about inclusivity, right? Like that's, that's been a challenge for us too. Not like a, Oh my God, we can never do this challenge, but they're like, Oh, we have to be more accountable kind of challenge. And it takes, you know, we've been adapting over time. So take home tests can work. We're a take home test place. And then one of the key things is pay for the take home test.
SC Yeeaah!
PF Because you don't assume that people make sure that people are compensated for their time because that's motivating. And actually once we started paying, we got many more people coming through the pipeline because instead of them going, Oh my God, I have this task that I don't really have time to do. They started to go, Oh, well, you know, couple of hundred bucks or, you know, it was, it's a different gift cards is the way you do it. Cause otherwise it's really complicated.
BP Yeah, I mean, paying people for their time makes total sense.
PF It's a crazy idea in America!
BP I actually kind of wish we had done this in journalism. Now that I'm thinking back on it. Like for Stack, Jon says we do a 30 minute code screen just to sort of make sure you can do it live with a person who you might be working with, man. I wish we'd done that in journalism. We should have been like, all right, we're going to do a newsroom practice run. This news just happened. You have 30 minutes, write the blog post and I'll edit it with you. And then we'll set it live like that. That's actually, I wish we had been doing that. We never thought about doing that. It was always done asynchronously.
11:48
PF Journalism has the myth of the independent contributor and it's not always a myth. Like a journalist goes off, talks to people, comes back, files the story, the editor turns it into a story he gets published. Right. But like that does not exist in engineering in the same way. Engineers kind of collaborate, review, change each other's stuff, stomp all over it. A junior might have feedback for a senior, a senior should have lots of feedback for a junior, et cetera, et cetera. So it just, and then when it goes live, the computer is the person reading it. Like nobody, it doesn't matter. You know? Like it's just a very arbitrary. So think so. It's not... credit is really hard to take.
BP Yeah. It's interesting to think about, cause like in a, in a journalism scenario, even if we were doing something we thought was really important to the site, you would never want more than two or three people to touch it because you would just feel, it would be overcooked too many chefs, too many cooks in the kitchen, too many editors.
PF That's right.
SC Yeah, code isn't the same.
PF But with code, I guess that happens a lot. I mean, we used to do, like, if you were doing live, you would just be you in the copy editor. And that was it. If you were trusted, if you were senior and if you were a junior, you and then an editor, a copy editor, live.
PF Sara, ballpark it, you're not accountable for this answer, but like how many people do you like a real hot path inside of Stack over the years, how many people might touch it?
SC Dozens, dozens, dozens, dozens. If not, if not more. I think one thing I love the take home exam. So I've been in this field for a long time. And when I first started doing code screening interviews, a lot of people look at those, like they're a binary, right? Like you either pass or don't, there's no interpretation, right? Like code screens are great because it's fair. The computer tells you, obviously whether you got something correct or not, and this is a great way to evaluate candidates. And I've, I always love telling this story to folks who say that. Cause I just don't, I don't think that's quite accurate. When I first started doing code screens, I would fail them all the time. And I would be so frustrated because I would get to the answer, right? Like I get the answer and the answer would be working. It would be compiling and it would be the solution people were looking for. And I didn't know what was happening until probably my 10th code screen, where it was recorded. And I got to watch the recording. And when I watched the recording, I realized and I watched myself while I was taking the code screen. I would talk to the interviewer and say things like, I think we should do this. What do you think? Or things like, I think this is a great path. And here's what I'm thinking about it. Do you think that's a good path? And that's the way I pair naturally. Right? Cause he has a guy that we want to be collaborative, but what the code screener was interpreting that as is me asking them for the answer instead of doing it myself. And that is what is the feedback I got often. And when I actually watched the code screen, I started to understand, Oh, you know, like I'm in my mind, I'm being collaborative and their mind, I don't know what I'm doing. And that's when I had to start just kind of being alpha in those interviews and kind of talking over people and telling them what, to, what I was going to do instead of talking to them about it.
14:50
BP Woah. That's so interesting.
PF No, it's real. This is a good point about interviews, right. Which is that collaboration is a very, very hard thing to demonstrate. And so like in general, when you're hiring, you're going to favor the person who might even be like a little rougher around the edges, because you want the energy. You're just like, well, at least I got that energy and I know they'll push things forward. Whereas someone who is really collaborative in that half hour, if you don't, if you're not looking for it, you might interpret them as passive. And this is really... It's a dangerous...
BP But is that the way you do it now? Because in Jon's thing, it says they do it with the, you know, the code screen at Stack. It's like a half an hour with somebody from our team. Like I wonder, is it okay to say like, what do you think about this? Or I'd like to try that you think it's a good idea or right. Are you signaling there? Hey, I'm asking for help because I don't know how to get through this, which is not what you were signaling at all. You were just trying to mimic how you might work with them in real life.
SC Yeah, it's a conversation we've had internally a bunch and we've kind of thrown around different ideas of how we could solve for that. I think at the very least, our interviewers are aware that something to look for. But I think this is why I also like things that Postlight are doing like the take home, because it, it allows for things like that.
PF We also don't have that. Your volume is fantastic. You also run a job board. I mean, there's just like a few things going for Stack.
16:07
BP But it's interesting because there's the code review with another human being. But then as you said, Sara, right? There's like, you know, the interpreter or the compiler, which is like a more objective check of whether or not it will work. In journalism, you don't get that unless you like where to give it to 10 people to read and be like, did this article make sense to you? Did you get confused or lost or stop reading? Right. Like the compilers... It's like the human and the machine have to understand what you did.
PF But you know, what you're seeing there in real terms is like, so journalism is the classic old boys network, right? It's cause you know the people and you trust them. And so you hire them as opposed to the people you don't know and don't trust yet. And boy does that tend to lead to a lot of people who look like me. And so that's a challenge in journalism, but then tech is supposed to be very meritocratic and about the machine, but it actually turns out to be entirely social and enormous amount of interaction and communication and a lot of focus on the team. And so the same patterns emerge. And that's what everybody's wrestling with. You know, one of the things too, when you're talking about universal approval of a hire, what I have found is there's always a lot of like very subtle horsetrading like, there's a lot of like, well, I can see how they might work. And it's kind of like, this one will be on you, right? Like I don't, if this isn't on me, if this isn't exactly my person that I'm going to have to help them find success. And you're really convinced you can find them success, I might say yes, but if you know, so it's, it's more of a conversation than like one person nicking a box and then it's over forever. That's in my experience. I don't know if maybe Stack it is like a little more anonymous.
[MUSIC]
17:43
BP Alright. Y'all, it's that time of the episode, I'm gonna read out a lifeboat and then we're going to say our goodbyes. Today's lifeboat was awarded on June 30th, to [inaudible] and the question is: an Android phones persistence library. How would I write the following SQL statement? And then they want to select from a table where a field has a like value as a query. They say this syntax isn't valid. And I can't find anything about it in the docs, ugh the docs! So thank you to [inaudible] for answering. You can just, concat using SQL light string concatenation. That's so hard for me to say.
SC Concatenation.
BP Concatenation now I've got it. Alright. Thanks to you. Great answer. Great lifeboat spreading the knowledge. Thanks everybody for listening. I'm Ben Popper, director of content here at Stack Overflow. And you can find me on Twitter @BenPopper.
SC And I'm Sarah Chipps and you can find me @SaraJo on GitHub
PF I'm Paul Ford, friend of Stack Overflow, and you can find me at my company postlight.com. We build software.
BP Very cool. And if you want to know about how we hire Stack Overflow, or you're interested to see what jobs we're hiring for, head on over to stackoverflow.blog and check out the article from our Jon Chan. Bye!
PF Bye!
[OUTRO MUSIC]