#123: Lessons from 100 straight dev job interviews Transcript
00:00 Michael Kennedy: What if you would take the experience and insight from 100 job interviews and use them to find just the right job? You'd be able to weed out the bad places that are not a right fit. You'd see that low ball offer coming a mile away and move right along. But no one could really do 100 consecutive interviews, right? That'd be like a full time job in and of itself. Well this week you'll meet Susan Tan who did just that. This is Talk Python To Me, recorded June 5, 2017. Welcome to talk Python to Me, a weekly podcast on Python, the language, the libraries, the ecosystem, and the personalities. This is your host, Michael Kennedy. Follow me on Twitter, where I'm @Mkennedy, keep up with the show and listen to past episodes at talkpython.fm, and follow the show on Twitter via @talkpython. Susan, welcome to Talk Python.
01:11 Susan Tan: Hi, hi Michael.
01:12 Michael Kennedy: Hi. It's great to have you here.. You had such a fun PyCon talk and I'm looking forward to sharing your story with everyone. Yeah. So before we get into that though maybe introduce yourself really quick and let's talk about your story. How did you get into programming in Python?
01:26 Susan Tan: Yeah sure. My name is Susan. And I moved from New York City, Brooklyn, New York City to San Francisco back in Fall 2012. Specifically for the tech industry. And so I've been here ever since. For the past couple of years. And I really love everything in San Francisco. The weather's amazing and lots of really good people here.
01:49 Michael Kennedy: It's a really special city. But I've heard that New York has a pretty good start up scene and a pretty good tech scene and what not. But you think San Francisco's where it's at, huh?
01:58 Susan Tan: I feel like when I was in New York, the start up scene was like tech industry was just starting so it was still like in its infant stages at the time.
02:05 Michael Kennedy: I see.
02:06 Susan Tan: Like the early 2010's. And so I decided hey like, there's a lot of really cool stuff happening in San Francisco. Might as well explore. And it was like, pretty much like my first thing I did right after college. I wanted to explore and see the other side of the coast.
02:20 Michael Kennedy: Yeah it's definitely a different city. Awesome. So how about programming? Taking a little bit of a step back, like how'd you get into programming in the first place?
02:27 Susan Tan: I was doing an internship. A very large, medical diagnostic company. So I was a little bored with my internship. So during the off hours, like in the evenings, I was exploring this online, massively online class called machine learning taught by professor Andrew Ang from Stanford University. That's when I really got my first introduction to artificial intelligence and machine learning and it's a really great class. He's able to break down complicated concepts in something that's like bite sized and easy to understand. Used Octave, which is a very domain, specific language and it was a really good experience like applying linear algebra into actual programming examples. So that was when I really got hooked into programming. I was like, "Hey. I want to do more of this. How do I get started to do more of this?"
03:14 Michael Kennedy: That's really cool. I want to control the machines, I want to build the machines. It's amazing. And you said octave? Was Python involved in that so far?
03:23 Susan Tan: So that was all in Octave, which is an open source version of Matlab. That's something I use in school so I got my degree in general engineering from a very small liberal arts/engineering school called Harvey Mudd College. It's a very technical school but they also consider themselves a good liberal arts under graduate school as well. And so I come from pretty technical background. It's part of the first semester everyone had to take the introductory programming class. That was like my first real step into programming where they, by requirement, they had everyone, regardless of their major, take their first programming class in the first semester. And everyone was pretty much on the same page in terms of.. even if you're brand new to programming, you would understand what's going on or if you're already advanced, they'll put you in a different class where you'll be with people with more advanced knowledge taking that class. So it was a really good way to get into programming. They got a lot of new CS majors, future doctorate program.
04:21 Michael Kennedy: Oh that's really nice. You said all the people, all the majors take that even if I was like studying literature, I'd have to take a programming course?
04:29 Susan Tan: Yeah pretty much. Just for some context, a lot of the people coming in to this school are pretty much set on doing something with stem where they're like bio majors or chemistry majors.
04:40 Michael Kennedy: It's already kind of an engineering school anyways, so it leans that way. Well that sounds really cool. That first course was in Python, but it was really this experience at your internship you're like, "Okay this is actually what I want to be doing."
04:54 Susan Tan: Right. So it was during that class and in addition to the internship, which was more on the electronics and hardware side. As opposed to the more programming. It was a different side, like I switched over from working with programming with Windows and working with motors and like PCB's to like working with software entirely.
05:15 Michael Kennedy: Alright cool. So given the topic that were going to cover today, which I think is really fun. Like I said, I think its especially interesting to ask what are you doing day to day now?
05:25 Susan Tan: I am a software engineer at a Software As a Service company called Berkeley Electronic Press the short name is BePress. They're located in downtown Berkeley. And they offer a suite of products for a universities so all the customers are universities. So let's say if you are like Harvard and you want to have an academic profile for various faculty members and researchers. You can pretty much use our tools to be able to show off the works of students and faculty.
05:55 Michael Kennedy: That's really cool. I'm always blown away when I go to university websites, to academics websites and researchers websites, how often they're like really bad. Like from 1994 straight out of the web is one year old. The reason it surprises me is these people are really dedicated. They've got like five papers and two research projects and they've dedicated 10 years of their life to this. Like surely it needs a better showcase than what it's getting, right?
06:24 Susan Tan: Yeah. Library Sciences are a pretty big thing. A lot of librarians are university and adminitrators are modernizing their systems. They're pushing ahead the digital agenda like modernizing websites to make it so that it's easy to use for everybody and we get more users to use our platform. So a lot of the librarians who are customers are advocating for this all around campuses. So you see a lot of librarians learning technology skills to be able to handle lots of data pretty quickly. And to be able to have this digital literacy.
06:58 Michael Kennedy: Do you feel like that's kind of the story of all jobs these days? That this thing that used to be pretty low tech in terms of computer skills required is now like almost requires programming to really take it to the next level.
07:12 Susan Tan: Yeah I think so. Especially in this space, there's a lot of opportunity whereas before people weren't thinking about like how do we use technology to make our lives easier. So this is like a space where I found out about it and I thought, "This is such a cool product."
07:34 Michael Kennedy: You can definitely make a big difference in the space. So let's take a step back. How long ago did you start this whole project of looking for, for doing a bunch of interviewing and looking for this job?
07:47 Susan Tan: I left my job at Cisco back in mid late August of 2016. So I left a full time job to do the full time job searching. And that was quite an adventure that I do want to talk more about in depth.
08:02 Michael Kennedy: Yeah absolutely. I think it's worth pointing out that you worked at couple of major San Francisco style companies before this. This is not your first job, your first time looking for a job or anything like that, right? You just said you worked at Cisco and the way you got to Cisco was through an acquisition, sort of acquire hire type thing at, what was that? Piston or what was the name of this place?
08:25 Susan Tan: So I used to work at a small 40 person cloud computing startup called Piston. The product itself is an operating system and it enabled companies that happen to have onsight servers to be able to coordinate the researchers on the servers. So it's pretty much like orchestration and it's for people who are in the Dev Ops business. So I was working primarily on the web application side, so I was usually like one of the only application engineers in a room full of distributive systems engineers.
08:58 Michael Kennedy: A lot of operating system people around, huh?
09:00 Susan Tan: Yeah.
09:02 Michael Kennedy: I'll link to your Python talk, but you had like a pretty amazing stylistic photo taken of the people that work there. Tell me what it was like to be at that place.
09:12 Susan Tan: It's a very chaotic, quirky environment. Lots of energetic people. And what struck me the most was the people around me, I feel like they were not the stereotypical type of like they're wearing hoodies or jeans. These are people from all across various age groups and especially the men in the start up were like very much into like the steam punk style and the golden age of Hollywood, like menswear style. Sometimes you'll see them in three piece suits or amazing bow ties and they kind of want to change things up and do not want to look like something from a stereotype.
09:49 Michael Kennedy: Not all about the hoodies and the ripped jeans or whatever, huh?
09:53 Susan Tan: Yeah they like having an aesthetic style. And I felt like the entire culture is around that as well, like there's a lot of people who love design and marketing and the arts. It's a good group of folks. And I feel that of all the companies I feel like of all the past companies that's my favorite workplace because I felt really comfortable in this sort of environment. Where I'm not afraid to be me and I'm pretty quirky as well and I had a lot of fun with the culture of the company and it's also my first workplace where I was coding in Python. And I got to learn from really great, smart people. I learned how to do unit testing like the right way in Python. It was a really good intro for me.
10:40 Michael Kennedy: Yeah for sure. And the web app you're working on, is that Django?
10:43 Susan Tan: Yeah. It's built in Django so, a lot of the code base is up stream code base from the OpenStack Horizon code base, so a lot of the code is actually from OpenStack and then pretty much the repackage is something that's a lot more manageable to people in terms of the UI and the design.
11:00 Michael Kennedy: Okay cool. And so you went from there to working at Cisco. And Cisco is a slightly larger company than 40 people. I personally have spent 17 years of my career at small companies, and by small I mean 10 people, 30 people, 40 people. Something like that. And I really enjoyed working in those places. You got to have lots of leeway in the technology. You got to be able to make a pretty big impact in the company with what you were doing. And I've also worked at companies that had like 2,000 people and that's a different experience. Did you find that when you went to Cisco that you were kind of like, "I kind of need a change after a while?"
11:40 Susan Tan: Yeah so I think the biggest change when I first joined versus like a year an a half later was that I was on an all remote team. So that was a really different experience because pretty much I, from my previous experience was on all in person team. And also I was on a remote team where like there were seven people and they're from Texas and Canada and Hawaii. So things got.. it wasn't something that I was expecting walking in.
12:05 Michael Kennedy: So eventually for whatever reason, you decided that's it, I'm going to go look for something new. And then, how did you decide that, "I'm going to go and just start interviewing fulltime and like really try to find that perfect fit."
12:21 Susan Tan: I think after a while, I decided I was working at a very small component of a very large system. So after a while I was like, "Okay. Maybe I should really do something different." Like do something where it's completely outside of this machine work. Something that's not DevOps related or not operating system related and I really wanted to go to work on a product where people really need to use that product. A place where they really need software engineers.
12:46 Michael Kennedy: The level of benefit you can bring to helping librarians do more with technology is a much bigger impact than making that one button do its feature slightly better. Whatever that is, right?
12:58 Susan Tan: Yeah that's part of working in a large company. There's a lot of different teams and lots of different people, lots of different projects.
13:04 Michael Kennedy: Lots of different meetings, as well.
13:07 Susan Tan: Yep, that is true.
13:09 Michael Kennedy: So your talk was basically lessons learned from going through 100 interviews. And at one point you showed your calendar and you're like, "Look at this. I have like 20 interviews scheduled or 10 interviews scheduled this week." It's crazy, right? You were really going after it.
13:27 Susan Tan: That was one of the busiest times in my life probably. And going for that many interviews I felt like.. It gave me a good experience of different tech products and really understanding what a recruiters looking for, what ideas they're looking for. It's gave me a look of the industry in particular. I talk a lot about bad, frustrating aspects about interviewing when I talk. There are some shining light in a tunnel in this whole process and that you get to go and look at cool tech offices that normally the public would never see. That's pretty neat. And sometimes you get to see demos of some products that are like beta version or alpha version that haven't been released yet to the public.
14:08 Michael Kennedy: That's cool. And with a chance to maybe be part of that team, right?
14:11 Susan Tan: Yeah.
14:12 Michael Kennedy: Very nice. So when you started, did you think this is going to take me three or four months and 100 interviews? Or did you think it would not be so intense?
14:21 Susan Tan: I thought it would finish pretty quickly when I first really got into interviewing. Like if someone asked me last year if I would do 100 interviews, I would say, "No way." I didn't think I would do this many interviews. Strangely this is how life turned out for me and I just was focused on the next thing and the next company. Kept moving forward.
14:43 Michael Kennedy: So do you feel like you got this really interesting life experience? Like if you could change it, would you just go, "I'd rather just find that good job after the first week?"
14:51 Susan Tan: Its hard for me to answer that because like, I think i felt I've really grown and really learned a lot from this whole process and I've seen the ways that interviews are so broken. I met some really great people along the process and I've seen really kind people, for example there's this one time when I was talking to a third party recruiter and she knew I didn't have a quiet space at home and so she was like, "Hey. Why don't you go to the office and you can use the conference room to take phone calls and interviews there." And that was really kind of her. I did that for a good number of mornings.
15:27 Michael Kennedy: That's really nice. Did you work with one person that was trying to get you a job? Or was it just like randomly reaching out and connecting with the recruiters on the other side?
15:37 Susan Tan: I know a lot of people recommend that the easiest way is to go for a friend. If you know a friend, just have the jar. That's an easy way in. But for me, I knew a lot of people in the tech industry who were working at the larger companies and I was like pretty much set on not working at the larger companies. So I couldn't really ask my friends for connections.
16:01 Michael Kennedy: You would get a job where you didn't want to be.
16:03 Susan Tan: Right, yeah. So it was pretty much me applying like straight code emails and applications to various tech companies that I found that were pretty interesting.
16:11 Michael Kennedy: You must've learned a lot of interesting ways to reach out to people you don't know.
16:15 Susan Tan: Oh yeah. A lot of it is from.. Like 90 percent of the time it's from the normal application process. There's a number of fields and a lot of them look pretty much the same. There's like fill out the resume, fill out the cover letter, and technology makes that easy for applicants to auto fill complete a lot of the different fields.
16:35 Michael Kennedy: So you're coming on the big companies? Maybe that's worth going into your list of no criteria because if you just take any job out there, you probably could've gotten one quicker but like you were saying, you were kind of looking for what you felt would be a really good fit. So you had six rules you're like, "I'm not even going to talk to companies that fit into one of these areas." One or more. Maybe two areas, right?
17:00 Susan Tan: Pretty much. I tried to avoid companies that are any of the above. And there's also, I have another list too where there's like okay these I do want to, the criteria I'm definitely looking for. So I had like two sets of criteria. Like these I'm definitely looking for, a good strong culture, a good culture of code review, and a good testing infrastructure. And other things like that. But at the same time, there's also the no criterias like with something that is definitely a deal breaker for me. Because I didn't want to be in a place where I might get frustrated or maybe the culture would be more toxic then I imagined.
17:33 Michael Kennedy: You had no large companies, no homogenous culture, what does that mean?
17:39 Susan Tan: So one of the things I care about is about diversity in terms of age, gender, race, like all of the things. And it's something I care deeply about and if I see that at a company they may be a few years out in business and they don't have a diverse work force, I'd be like, "Oh that may be a warning sign." and there's certain recruiters who have been really honest about the fact that, if I work there I may be the first female engineer there. And that's kind of scary to me.
18:06 Michael Kennedy: That was not a thrilling concept to you to be the first person to break that ice?
18:11 Susan Tan: It is pretty scary.
18:13 Michael Kennedy: I would think it would be as well. I've talked to other women in tech who are like, "I totally fit in fine and it's no big deal but I just didn't connect in the same way like maybe a bunch of young, white guys who are programmers who just came out of college or whatever. I wasn't interested in lan parties. So there goes a big part of my connecting with my coworkers and what not." Did you find that it was easy enough to find places that were heterogeneous cultures? Or was it really challenging?
18:47 Susan Tan: Oh that's one of the questions I ask recruiters on the first conversation. And I also pretty much ask more or less the same question to the engineering director or the tech lead to see what are the ratio in woman engineers and male engineers in the environment. So that's like one thing amongst many other things I'm looking for.
19:07 Michael Kennedy: You said also no stupid apps. Which kind of ties back to you want to make a difference with what you create, right?
19:15 Susan Tan: I've seen a lot of stupid apps. I've seen apps that like seem pretty implausible and once I think about it it's like, "Wait, why? Why would you do this?"
19:26 Michael Kennedy: I'm a big fan of a lot of stuff happening in San Francisco, but there are certainly some companies just like, the world does not need this, come on. I find one of the more frustrating things, maybe near the top of my list of frustrating things in a job as a programmer is nobody uses the thing that I built. You put your heart and soul into writing software and coming up with something and just it's like a creation of art almost as a team and if you launch that and then just nobody comes, it's just like I find that really frustrating. So I think the stupid apps may also tie back to unused apps.
20:05 Susan Tan: I was also pretty careful about companies that are more about the hype and the marketing and the media and they may not have the product to be able to fulfill that hype. So I'm looking for real companies that have real business value like they have proven business success for the long term.
20:23 Michael Kennedy: Yeah so speaking of proven business success, you said you didn't want to be the first, the single technical co-founder or the first tech person, first engineer at some kind of start up. Somebody's wild dream.
20:38 Susan Tan: Yeah I'm pretty sure that is a dream for a lot of people in the Bay area to be the first founder or CTO of their start up. But I feel like I like working on a team and in a team environment and having all of the advantages to being on team where your tracking people, you're discussing with other engineers. It's really important for growth and, like technical growth, personal growth.
21:02 Michael Kennedy: Yeah I think that is really important for personal growth. I think being the single tech person is probably okay once you're more established. You've already got connections with other people in the industry, you're pretty confident in yourself, you can go to like meet ups and conferences and all that. But when you're pretty new, it's certainly I think it's a really tough place to be 'cause you want that.. I've always at least personally wanted to be the least knowledgeable, experienced person in the room because I felt like that's going to get me in a place where I can just learn more.
21:34 Susan Tan: I agree with that too. So my career company I think I'm more up there, because like mid-level younger engineers, to give some context, the company I'm working at has been in balance since 1999 and they've been profitable since then. And a lot of the employees have been there on average about seven to 10 years. And so to me, that's like wow, that's a long time.
21:57 Michael Kennedy: Yeah, that's a really really good sign actually. It is a long time, especially in San Francisco but it's also a good sign that means like people who work there like to work there. I went to work at like a trading company in New York actually and went there and it was a training gig that I was teaching some stuff for those guys and there was a pretty big team of people. I think it was probably 30 people and this guy came up to me and said, "Look, I'm the most senior person on this team. I've been here for two years." And I'm like, "Woah. There might be something at this company if like you can't keep anyone out of a group of 30 more than two years." It was a pretty intense place to work. So I think the people being there longer is generally a good sign. There's also draw backs but pretty good.
22:44 Susan Tan: So that's something I was looking forward to.
22:47 Michael Kennedy: And then the last one you said you just didn't want to travel too far which makes total sense. This portion of Talk Python To Me is brought to you by: Us. As many of you know, I have a growing set of courses to help you go from Python beginner to the novice Python expert. And there are many more courses in the works. So please consider Talk Python training for you and your teams training needs. If you're just getting started, I've built a course to teach you Python the way professional developers learn. By building applications. Check out my Python jump start by building 10 apps at talkpython.fm/course. Are you looking to start adding services to your app? Try my brand new consuming HTTP services in Python. You'll learn to work with restful HTTP services as well as SOAP, JCON, and XML data formats. Do you want to watch an online business? Well Matt Makai and I built an entrepreneurs playbook with Python for Entrepreneurs. This 16 hour course will teach you everything you need to launch your web based business with Python. And finally there's a couple of new courses announcements coming out really soon. So if you don't already have an account, be sure to create one at training.Python.fm to get notified. And for all of you who have bought my courses, thank you so much. It really, really helps support the show. So that was your no list. And then you went on all of these interviews and you had a number of interesting stories. So maybe we could go through some of your stories.
24:09 Susan Tan: Sure so a lot of my interviews are I had filled out a job application, filled out my forms and click the send button and then I would not hear back from most of the employers for like a couple days or weeks. And if I did hear back from them, it would be just like a very impersonal email reply, like sorry due to the number of candidates, we can't have you move forward. So I felt pretty, mildly disappointed. But at the same time, I knew they can't get back to me like a detailed personal response even if I wanted them to. So that's when it's like okay, time to move on to the next opportunity. So I take it pretty grating at times and a little bit frustrating. But I understood where they were coming from. They're pretty busy people.
24:50 Michael Kennedy: Yeah so you get the serious silent treatment. Yeah but you said one of the things that was kind of funny was like people would pick it up later and like come back to you much later, right?
24:59 Susan Tan: Yeah. That was really unusual. That something I was not expecting. Usually in the Bay area, a lot of people get back to me if they're interested in like a few days or up to a week at most. But to get back to me like months later and literally I once got this email from a company and they were like, "Oh we found your resume several months later and we want to interview you." I've already accepted a job months ago.
25:24 Michael Kennedy: Yeah, yeah. Too late. Yeah it is a little bit weird. I certainly see how people get overwhelmed like I put up ads for jobs and got so many applicants. It's like, "Oh my gosh. I don't know if I can deal with all this." Certainly not detailed responses. So another one was this AI start up that you were talking about. And you said the interview went pretty well but in the end, they decided just hire their friend or something like this, right?
25:51 Susan Tan: Ironic to me was that they were working on like automating human resources like the hiring component. Yeah they decided, "Okay well, we're just going to hire someone we already know." Which is like ironic because what is the purpose of the product that they're making?
26:07 Michael Kennedy: The machine says, "My friend."
26:12 Susan Tan: And again like, if you have a connection a way in, that's great for you and you're very lucky for them. But a lot of times, when I was job searching, I didn't have a way in like a direct friend connection. It's just me and everyone else is pretty much give me an email or the standard application process.
26:31 Michael Kennedy: How much do you think moving out there from New York and not growing up there sort of limits your connections? Like the number of people in these positions maybe?
26:41 Susan Tan: Initially, it was harder for me because I didn't have a network of people already in the Bay area. So I had to reach out to people like connect with other people and that got pretty frustrating sometimes. Especially for the interviewing process because sometimes people are hiring, sometimes they're not. Especially for the meet ups I would go to. So it's really a hit or miss. And one of the questions I got from people after my talk was like to what extent was i going to meetups and doing the networking thing and I didn't really do a whole lot. I personally found them pretty draining especially at the end of a long day of interviews. I kind of didn't want to go to like a meetup. That was my personal.. maybe some people are really into all the networking and meeting all the possible people but I guess to an introvert, I guess it's a bit more draining to put myself out there.
27:29 Michael Kennedy: Yeah it can be pretty hard to do that as well. It's definitely challenging. Especially if it's kind of hard to walk in completely by yourself into a room and start just randomly talking to strangers. I find it's little easier in the tech space for me because I can just talk about tech, which is a pretty good common thing to talk about but general networking is still pretty challenging. So what about Jelly?
27:57 Susan Tan: Initially I was pretty excited about Jelly and when I found out about Jelly I was one of the more avid users. So Jelly to back up is a Q&A app. You ask questions and then you can get answers.
28:09 Michael Kennedy: A little like Quora?
28:10 Susan Tan: Yeah it's very much like Quora. Their focus is about providing quality answers. So they're pretty selective about who gets to answer the questions or trying to find the best people for that. And it's all crowd sourced. So it's up to a team of volunteers who are in a community of experts who are answering a lot of these questions and they have a Twitter integration where you can put a hashtag ask Jelly. Sometimes I would ask questions in 140 characters and get a response back.
28:40 Michael Kennedy: Okay. And you had an interview with Biz Stone, the co-founder of Twitter, who asked you just one question, right?
28:48 Susan Tan: Yes.
28:49 Michael Kennedy: What was the question?
28:51 Susan Tan: So he asked me what do you hope to accomplish in your life, Susan? And I was a little bit thrown back from this question because I wasn't sure how to answer it. This was not one of the questions I was prepared for. So I was really ready for other questions like, "How does that Django work?" or like, "How does the internet work?" And I was ready for some webbed up related questions but this was a really broad question to me.
29:16 Michael Kennedy: What's the advantage of using a Q in such and such situation or something, right? Like that's not the same as what you're going to accomplish in your life.
29:24 Susan Tan: Yeah so I was really taken back and so I had to come up with something really quickly on the spot and I talked about my passion for Jelly, like it seems like a really, like has a lot of potential and I want to work on the features and get more users to use this product. So it was a pretty standard response to something that's pretty generic I think. I think he liked the answer. He also gave me his answer which seemed a little bit hippy dippy. He said how he wants to connect the world and make everyone part of this community of like-minded internet.. It's very hippy dippy. If I remember.
30:05 Michael Kennedy: Yeah. Sounds a little bit like Twitter or Jelly. And you said you had this very awkward experience around "Hey we know you don't really know Ruby that well but why don't you implement a full stack solution in Ruby anyway now?" tell us about this one.
30:24 Susan Tan: So basically I walked into the office and the email that I got before the interview was like, "Hey you should brush up on some Ruby and some Ruby on Rails." And so initially when I walked into the office, I thought it was going to be a pair programming with the interviewer on a full stack Ruby application and we'll go for the problem together. But it turned out that he wants me to implement a feature on an existing Ruby application in like 15 minutes. And I was like, "Wait, are you sure you want me to do this in 15 minutes?" and he was like, "Yeah. Yeah sure. Go for it." and since he's like in charge of this whole process, I was following instructions like, "Okay yeah sure. Why not?" And so I try going throuogh the process like I was looking up the documentation like going through the online Ruby tutorials which is really awkward. I'm trying to learn Ruby at the same time. Trying to create something that would be professional. And so that's also like my shortest interview. 15 minutes and then a few minutes later, he saw I was not at all sufficient with Ruby. I told them that a few minutes ago and he stopped me saying, "Okay Susan you don't seem to know Ruby very well so let's just hold off on this until you've gained some experience in Ruby and we can reconsider."
31:35 Michael Kennedy: Yeah and you didn't follow up a few months later after you had done boot camp in Ruby.
31:40 Susan Tan: I kind of understood where he was coming from. Maybe he did actually want people who are experienced in Ruby. Maybe he wasn't looking at beginners to teach newbies.
31:52 Michael Kennedy: Yeah and that's totally reasonable to say like, "I want somebody who already knows this technology who can just come in on the first day and start being productive." But that should be like clear before hand, right? That should be more obvious. That's kind of awkward I'm sure.
32:06 Susan Tan: Right. Yeah so there's a pattern a lot of interviewers may not know what they're looking for and so they ask a lot of the questions that may or may not be relevant or they give you code challenges that may not match the job description.
32:19 Michael Kennedy: Sure. So let's actually talk about code challenges since you brought that up a little bit. That seemed to be one of your really biggest pet peeves of the whole experience.
32:28 Susan Tan: So code challenges to give an intro, sometimes you make get code challenges that can take anywhere from 30 minute, 60 minutes and sometimes it can be timed where you answer a number of questions and it's either the right answer or wrong answer depending on what they're looking for. Or sometimes they're open ended questions where you have to build an application from scratch or you have to create the models and the views and controllers, the whole thing. If you're an web application developer, it's hard on the open ended code challenges in particular 'cause there's no time restraints or sometimes when you've got time restraint or new feature restraints so you don't have an idea if this will take an hour or if it's like a whole weekend project.
33:10 Michael Kennedy: Give us an example.
33:12 Susan Tan: So an example is build a full stack application that uses a Twitter API in some way. And so this is open because you can use Twitter API in any number of ways. This in particular is challenging because you're not sure what exactly they're looking for. Are they looking for a design? Are they looking for how well I can write the test for this feature? So it's really hard to tell especially if that code challenge doesn't come with clear and specific guide lines like what is the input? What is the output?
33:39 Michael Kennedy: Yeah so certainly you mentioned design that's obviously one of them. But even just the programming side. You could go to either end of a spectrum. You could say, "Look. I want to see the most properly designed, layered design pattern type of testable architecture." And that's what you could be graded on. Or you could be graded on , "I want to see the most complete full implementation of a cool app." in which case you should throw that out the window and just write crap as fast as you can. 'Cause it's not going to have to work really other than just to prove the concept, right?
34:14 Susan Tan: Yeah.
34:15 Michael Kennedy: So which should you do? Right? You don't know.
34:16 Susan Tan: And sometimes when I would go and spend time in the open ended code challenges, one of the things I fell into was that okay, the feedback I got was like maybe I didn't write unit tests or maybe I didn't use the right libary they expected me to. It's really hard to know what they're expecting because you're not given those instructions up front.
34:35 Michael Kennedy: You can spend days on it and maybe not even get anything out of it, right?
34:40 Susan Tan: Right.
34:40 Michael Kennedy: I suspect the most frustrating part is the ambiguity. I don't know what criteria I'm being evaluated on so I just kind of like go implement some brand new app from scratch and it's part of my exam, right? So the last story you had was about this genetic biochemistry company that uses a crisper algorithm. What's the story there?
35:03 Susan Tan: So on paper it sounds really great. There a very mission oriented company and the website has all these information, the papers they've published, and the team looks like really solid like lots of experienced people. So this is like the biotech space and there's a lot of chemistry people and the chemical engineers, electrical engineers, and software engineers all working in a lab environment.
35:26 Michael Kennedy: Yeah it sounds really fun.
35:27 Susan Tan: Yeah. And so I got to explore and take a tour of the lab and that was pretty neat. And in that interview process, I did a live coding challenge where I made a Django app, that went pretty well. And I answered a lot of questions and asked a lot of questions to a lot of the engineers there. And including the two co-founders who also happened to be brothers. So that was pretty interesting. So at the end, I really enjoyed the process and everything seemed like really swell and good and I got the job offer. It was like the number and that I pretty disappointed. And I talked to the CEO and the co-founder well this is like way too low salary for what a software engineer of my level should be making.
36:11 Michael Kennedy: I should know, I went on 50 interviews.
36:16 Susan Tan: And his response was very, he was very stubborn and he didn't want to negotiate. Like I can tell that he was being very defensive on the other end of the phone. To me, that didn't seem like, everything on my visit in person seemed good. But then the company wasn't able to pay competitive salary to their engineers.
36:35 Michael Kennedy: And there's one thing if this company's kind of just going to get started they're looking for VC money and they're thinking this is going to blow up and they say, "We'll just take care of you when everything starts to take off and it's going to be amazing for everyone. We just all got to kind of come together to help launch this idea." That's one thing. But they had like $40 million in VC funding already, right?
36:56 Susan Tan: Yeah. And they're already in their fifth or fourth year. So they're not like a baby start up, just getting started. So they have a lot of money and that was an automatic no to me. Like I'm not willing to compromise.
37:09 Michael Kennedy: You know what I thinks interesting is there are two, well there are more than two types. There are two categories of companies that come to mind really and I don't know is this is the situation here. Tell me your thoughts. On one hand, there's companies, this could be in San Francisco in tech companies or it could be in Kansas City in like a cable company. It doesn't really matter. But where the companies see their software team and their software people, they're technology people as a sword that they can wield in business, right? Like something that's super powerful and should be respected. And then there's other companies that just see it as like an expense like that just drags on the business. And so maybe these guys, they had that mindset where it's like these developers, they're necessary evil, we have to pay them.
37:55 Susan Tan: It's hard to tell.
37:56 Michael Kennedy: I'm sure you didn't go into the philosophy too much with the guy. I've definitely been in some companies where they don't seem to realize, like "Hey we have this amazing software team. What could we do if we really inspired them?" And they just seem to not put a lot of credit in what they say or do or whatever. And that's not amazing.
38:13 Susan Tan: And that also comes from, say like if the founders aren't technical themselves, they may not understand, "Oh why do we have to have an DevOps team? Why do we even have to have people working on the front end."
38:23 Michael Kennedy: I can even see if you were like a super high end scientist theoretically you might go, "Well the science is what's important. Not the programming." that's a dime a dozen, right? Let's suspect that's less common but it still could be the case. So you gave us the talk, you gave some numbers about how long it took you to find your first job, your second job, and this last job and maybe some takeaways. Can you run that down for us?
38:50 Susan Tan: Overall it was a pretty frustrating experience because I talked to a lot of different companies. Sometimes I expected more positive responses and a lot of them turned out to be more frustrating experiences than I expected. So I've gone through and talked to a lot of different engineers and learned a lot about different products. I feel like the whole process was like a crap shoot, like you have no idea. It's so unpredictable. You don't know how long the interview process may take and what kind of questions you might get. And it can get pretty frustrating at times because getting a lot of no's, you can lose your self confidence when you're going through this process but to me the way I got through is I tried to take step back and the next day after taking breaks in between and then the next day there's always a new opportunity for me and there's always a new door and lots of new people to talk to. So everyday was like a blank slate. Start fresh.
39:45 Michael Kennedy: Yeah that probably takes putting yourself in the right mindset somewhat. 'Cause you got to show up with a good attitude. You can't just show up looking warn out and dejected. No one's going to hire you then.
39:59 Susan Tan: You have to take some breaks and if you need to take the afternoon off just to clear your head. I did that. There's lots of places where I would walk to just to take some walks. It's very therapeutic. I also drink a lot of tea as well. It kind of like keeps me calm.
40:17 Michael Kennedy: That's really cool. Nice okay. Do people ask about.. What do they ask about your prior work? Like did they check out your GitHub profile? Do they talk about open source? What you did at other companies? What do they seem to focus on? The reason I'm asking is because people who are out there looking for a job, like where should they spend their energy?
40:37 Susan Tan: I think having a good project you can focus on so a lot of questions that I've gotten are about previous, like favorite projects. What's been your favorite project? What's been the most challenging project? So these are going to be questions that are going to be pretty common if you go to an outside interview. So it's good to be prepared and be able to show off your strengths and be able to talk about different decisions that you've made or challenges that you faced and how you overcome them.
41:05 Michael Kennedy: Did anybody ever ask you what your favorite open source project was? Or was it always focused on what you have done personally?
41:11 Susan Tan: I don't think I've ever gotten that question. It was primarily focused on previous work. So sometimes I would get questions where I need to diagram or whiteboard what the architecture was for this past project. So that's pretty typical.
41:26 Michael Kennedy: Okay. Well this is very, very interesting. Let me ask you two more questions before I let you go and then I will do a quick wrap up. So if you're going to write some Python code, what editor do you open up?
41:40 Susan Tan: It depends. I switch between Sublime Text and Vim. So the past two years I've been working on Vim. Using Vim primarily because I had to ssh into a Linux enviroment. So I learned how to use a lot of Vim packages like C text like the common Vim packages installed. But whats most frustrating about boom personally is that sometimes when I destroy my environment accidentally, I have to setup all the packages again and reinstall all those packages and that gets a little bit annoying.
42:12 Michael Kennedy: How do I get this thing working again? I saw a picture, it was some kind of meme. It was picture of a bus and it had Vim written like in huge letters on the side and there were people in it and the meme was how do I get off this bus? How do I quit this bus basically? It was really funny. So favorite PYPI package or most notable one that you've come across that maybe people haven't heard of?
42:34 Susan Tan: In Django, I really like django-shell-plus. You can use django-shell-plus to load pretty much the database models into the shell. So that's been really useful for debugging. Everything already preloaded for you when you open up the Django shell.
42:49 Michael Kennedy: Yeah. Nice. Very cool. That's a good one. So last thing. Final call to action. You've gone through this whole experience of all these interviews. You even were fairly retrospective or introspective about the process because you did this PyCon talk which I'll link to in the show notes. So with all that, can you give people out there who may be looking for a job like a couple pieces of advice? What can you tell them to make it a little bit easier? Given what you've gone through.
43:17 Susan Tan: Don't be afraid to say no when you think that things may not be working out during any part of the interview process. And I know I have a long list of no criteria. If you can be selective and feel free to do that. And also you don't have to go through like 20 interviews in a week. Not a lot of people want to do that. So take your time and take breaks in between. Some people may get their first job at the first onsight or they may take a while so it really depends. So it's really unpredictable so be mentally prepared for this process.
43:50 Michael Kennedy: Yeah so one more question I guess. How did you keep going? How did you just not get really frustrated and go. "Ugh, I'm just going to go work at a big company. I'm going to go do something different or change my plan."
44:00 Susan Tan: I really want to stay in San Francisco so it's a really good place to be in terms of the environment and I really love the city. So that's something I want to keep going and I didn't want to move back to New York City.
44:13 Michael Kennedy: Yeah I guess it sounds like you were really clear about what your priorities were and that kind of helped guide you.
44:18 Susan Tan: Yeah so I had a pretty clear list of certain things I'm looking for and I was pretty excited when I found a new company, a product that I wanted to contact the people behind that product and talk to them about it. So that's something that kept me going because I like reading news articles and new product releases. If there's a new thing that gets me excited. I want to talk to them.
44:39 Michael Kennedy: That's awesome. Thank you so much Susan for sharing your journey and congratulations on finding a place where you're happy after all this work that's excellent.
44:46 Susan Tan: Thanks for having me.
44:48 Michael Kennedy: You're welcome. Bye.
44:49 Susan Tan: Alright. Bye.
44:51 Michael Kennedy: This has been another episode of Talk Python To Me. Our guest this week has been Susan Tan. Are you or a colleague trying to learn Python? Have you tried books and videos that just left you bored by covering topics point by point? Well check out my online course Python jump start by building 10 apps at talkpython.fm/course to experience a more engaging way to learn Python. And if you're looking for something a little more advanced, try my Write Pythonic Code course at talkpython.fm/Pythonic. Be sure to subscribe to the show. Open your favorite podcatcher and search for Python. We should be right at the top. You can also find the iTunes feed at /itunes, Google Play feed at slash Play, and direct RSS feed at /rss on talkpython.fm. Our theme music is Developers Developers Developers by Cory Smith who goes by Smix. Cory just recently started selling his tracks on iTunes so I recommend you check it out at talkpython.fm/music. You can browse his tracks he has for sale on iTunes and listen to the full length version of the theme song. This is your host Michael Kennedy. Thanks so much for listening. I really appreciate it. Smix. Let's get out of here.