What if you could 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 lowball 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 5th, 2017.
Developers, developers, developers, developers.
I'm a developer in many senses of the word because I make these applications, but I also
use these verbs to make this music. I construct it line by line, just like when I'm coding another
software design. In both cases, it's about design patterns. Anyone can get the job done. It's
the execution that matters. I have many interests. Sometimes it can flex.
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 at
mkennedy. Keep up with the show and listen to past episodes at talkpython.fm and follow the
show on Twitter via at Talk Python. Susan, welcome to Talk Python.
Hi. Hi, Michael.
Hi. Yeah, 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.
Cool.
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?
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 to part of 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.
It's a really special city, but I've heard that New York has a pretty good startup scene
and a pretty good tech scene and whatnot. But you think San Francisco is where it's at, huh?
I feel like when I was in New York, the startup scene was like tech industry was just starting.
So it's still like in its input stages at the time.
I see.
Like the early 2010s. And so I said, Hey, like, there's a lot of like really cool stuff
happening in San Francisco as well. Explore. And it was like pretty much like my first thing I did,
like right after college, I wanted to like explore and like see the other side of the coast.
Yeah, that's definitely a different city. Awesome. Okay. So how about programming?
Like take a little bit of a step back. Like how'd you get into programming in the first place?
So I was doing an internship, a very large biomedical diagnostic company. So I was a little bit bored
with my internship. And so like during the off hours, like in the evenings, I was working,
I was exploring this online, massively online class called machine learning taught by professor Andrew
Ng from Stanford University. And that was when I really like, that was my first introduction to
artificial intelligence and machine learning. And it was a really good class. Like he's able to break
down complicated concepts with something that's like bite sized, and easy to understand. So use
Octave, which is a word domain specific language. And it was a really good experience, like applying
linear algebra into like actual programming examples. And so I was like, when I really got hooked into
programming, like, hey, I want to do more of this. Like, how do I get started to do more of this?
That's really cool. Like, I want to, I want to control the machines. I want to build the machines.
It's amazing. And was that you said Octave was Python involved in that so far?
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 slash engineering
school called Harvey Mudd College. It's a very technical school, but they also consider themselves
a good liberal arts undergraduate school as well. And so I come from a pretty technical background.
As part of like the first semester, everyone had to take the introductory programming class. So that was
like my, like even years before 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 like on the same page in terms of like,
and if you're brand new to programming, you would understand like what's going on. Or if you're
already advanced, like, they'll put you in a different class, or you'll be able to more people with more
advanced knowledge, they can go for that class. So it was a really good way to get into programming.
And they got a lot of new, like CS majors, the introductory program.
Oh, that's really nice. You said all the people, all the majors take that even if I was like,
like studying literature, I'd have to take a programming course?
Yeah, pretty much. Well, just for some context, a lot of the people who are coming into the school
are pretty much set on like doing something of STEM, or they're like bio majors or chemistry majors.
It's already kind of an engineering school anyway. So it leans that way. Okay. Yeah, yeah.
Yeah, well, that sounds really cool. So 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.
Right. So I was doing that class in addition to like doing the internship, which is more on the
electronics and hardware side, as opposed to like the, like more programming. So it was a different
side, like I switched over from working with like programming with Arduinos and working with winners
and like PCBs to like working with software entirely. Sure. All right, cool. So given the topic that we're
going to cover today, which I think is really fun, like I said, I think it's especially interesting to
ask, what are you doing day to day now? So I'm a software engineer at a software as a service company
called Berkeley Electronic Press. The short name is VPress. They're located in downtown Berkeley,
and they offer a suite of products for universities. So all of 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.
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 really, like from 1994 straight out of like
the web is one year old, you know, and which the reason it surprises me is these people are really
dedicated. They've got like five papers and two research projects, and they've like dedicated 10 years
of their life to this. Like surely it needs a better showcase than what it's getting, right?
Yeah. Library science is a pretty big thing. A lot of librarians are university administrators are
modernizing their systems. They're pushing ahead, like the digital agenda, like let's like modernize
these websites, like make it so that it's easy to use for everybody. And we get more users to use the
platform. And so a lot of like the librarians who are our customers, they're advocating for this on their own
campuses. Okay. Yeah. So you see a lot of like librarians learning technology skills to be able to
handle lots of data pretty quickly and be able to have this digital literacy.
Yeah. Do you feel like that's kind of the story of like 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
like really take it to the next level? Yeah, I think so. Where, especially in this space,
there's a lot of opportunity where like, whereas before, like people weren't thinking about like,
how, how do we use technology to like better improve, 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 like product,
a suite of products that librarians use. So I just like went into it.
Oh yeah, that's great. Yeah. You can definitely make a big difference in this 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?
So 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 like quite an adventure that I do want to talk more about in
depth. Yeah, absolutely. So I think it's worth pointing out that you worked at a couple of major
San Francisco style companies before this. This is not your, your first job, your first time looking
for a job or anything like that, right? You, so you just said you were at Cisco and the way you got to
Cisco was through a acquisition sort of aqua hire type thing at what was that piston or what was the name
of this place? So I used to work at a small 40 person cloud computing store called piston where, and
the product itself is an operating system and it enabled companies that happen to have on-site
servers to be able to coordinate the resources on those servers. So it's pretty much like orchestration
and like, it's what people, yeah, DevOps, automated DevOps for people who are in the
apps business. And so I was working primarily on the web application side. So I was usually one of
the only applications engineers in a room full of distributed systems engineers.
A lot of auto operating system people around, huh?
Yeah.
So you had a, I'll link to your PyCon talk, but you had like a pretty amazing stylistic photo
taking the people that work there. Tell me about what it was like to be at that place.
Yeah. So it's a very chaotic, quirky environment, lots of like energetic
people. And what really struck me the most was the people around me. I feel like they were not
the stereotypical type of like, oh, like they're wearing hoodies or jeans. Like these are people
like from all across various age groups. And especially the men who in the startup were like
very much into like the steampunk style and like the golden age of Hollywood, like menswear style.
So like sometimes you'll see them in like three piece suits or like amazing bow ties.
And they kind of want to like change things up and they don't want to look like something from
stereotype.
Not all about the hoodies and the ripped jeans or whatever, huh?
Yeah. They, they like having, you know, an aesthetic style that, you know,
and I feel like the entire culture is, is around that as well. Like there's a lot of people
who like love design and marketing and the arts. It's like, it's a good group of folks.
Yeah.
And they're pretty quirky. And I feel that of all the companies, I feel like of all the past
companies, it's my favorite workplace because I felt like really comfortable in this sort of environment
where like, I'm not afraid to just be me. And I'm pretty quirky as well.
And so I had a lot of fun with the culture of the company. And it's just also my first workplace
where I was coding in Python and I got to learn from like really great, smart people.
I learned how to do unit testing, learned how to like write idiomatic Python. So that's a really
good intro for me.
Yeah, for sure. And the web app you're working on, is that Django?
Yeah, it's built in Django. So a lot of the code base is upstream code base from the OpenStack
Horizon code base. So a lot of like the code is actually from, from OpenStack. And then we
pretty much repackage OpenStack into something that's a lot more manageable to people in terms of
like the UI and the design.
Sure. Okay, cool. And so you
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 have, 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
thousand people. And that's a different experience. So did you find when you went to Cisco that you're
kind of like, I kind of need to change after a while?
Yeah. So I think the biggest change, like when I first joined versus like a year and a half later,
was that I was on an all remote team. So that was like a really different experience because
pretty much throughout my career, I was pretty much like an all in person team.
And then all of a sudden I was on like all remote team where like there are seven people and
they're from like Texas and Canada and Hawaii. So things got, it wasn't something I was expecting,
like walking in.
Yeah, sure. Okay. 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 like,
I'm going to go and just start interviewing full time and like really try to find that perfect fit?
I think after a while, like I decided, well, like I was working on 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 industry where 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, where it's a place where they really need software engineers.
Right. The level of benefit you can bring to like helping librarians do more technology is a much
bigger impact than like making that one button do its feature slightly better or whatever that is.
Right?
Yeah. 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.
A lot of different meetings as well.
Yeah. Yeah, that is true. I've seen that.
All right. So, so your talk was basically lessons learned from going through a hundred
interviews. And at one point you showed your calendar and you're like, look at this. I'm
like 20 interviews scheduled or 10 interviews scheduled this week. It's like crazy, right? You
were really going after it.
Yeah. That was like one of the busiest times in my life probably.
Yeah.
And going through that many interviews, I felt like it gave me a good experience of
different tech products and really understanding what are recruiters looking for? What are engineers
looking for? It's gave me a really good overview of the industry in particular. So I think that
in with all like that, I talk a lot about the bad, frustrating aspects about interviewing in my talk,
but there are some like shining light in the tunnel in this whole process and that you get to go
and look at cool like tech offices that normally the public would never see.
Yeah. Yeah. Yeah.
Yeah. That's really neat. And, and sometimes you get to see demos of some products that are in
like beta version or alpha version that haven't been released yet to the public.
So that's cool. And with the chance to maybe be part of that team, right?
Yeah. Yeah. Yeah. Very nice. So when you started, did you think this is going to take me
three or four months and a hundred interviews, or did you think it would not be so intense?
I thought it would finish pretty quickly when I first like really got into the interviewing. And
then like, if someone asked me last year, if I would do like a hundred interviews, like I was like,
no way. Like I did not think I would do as many interviews, but strangely, this is how life turned
out for me. And I just like, you know, was like focused on the next thing, the next company,
kept moving forward.
So do you feel like you got like this really interesting life experience or would you,
like, if you could change it, would just go, I'd rather just have that,
find that good job after the first week.
It's hard for me to answer that because like, wow, like I think I felt, I felt that really grown
and like really learned a lot from this whole process. And like, I've seen ways that interviews
are so broken and, and I've met some really great people along the process. And like, I've seen
really kind people, for example, there's this one time when I was talking to a dirty party recruiter
and she knew I didn't have like a quiet, like space at home. And so she was like, Hey,
like, why don't you go to the office and you can use the conference room to take like phone calls
and interviews there. And that was like really kind of her. And so I did that for a good number
of mornings for a few hours.
Oh yeah. 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 like the recruiters on the other side or?
So I know a lot of people recommend that it's better to like the easiest way is like,
go for a friend. If you know a friend, just have the door. That's an easy way in. But for me, like I,
I knew a lot of people in the tech industry who are working at the larger companies. And I was like,
pretty much like set on like networking at more of the larger companies. I was like, okay, like I,
I should, so I couldn't really ask my friends for connection.
Yeah. You would get a job where you didn't want to be.
Right. Yeah. And so it was pretty much me like applying like straight code,
emails and applications to various tech companies that I found were pretty interesting.
Yeah. You must've learned a lot of interesting ways to reach out to people you don't know.
Oh yeah. A lot of it is from like 90% of the time is from the normal application process. There's like
a number of fields and a lot of them look pretty much the same. There's like,
fill out the resume, fill out like cover letter and technology makes that easy for applicants to
like all fill out complete a lot of different fields.
Yeah. Yeah. For sure. So your comment on the big companies, maybe that's worth going into
your list of no criteria, because if you would just take any job out there, you probably could have
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 things, six rules. You're like, I'm not even going to talk to companies
that fit into one of these areas, one or more of these areas, maybe two areas, right?
Pretty much if they meet, I try to avoid companies that are any of the above.
Okay.
And there's also, I have another list too, where there's like, okay, things I do want to,
criteria is definitely looking for. So I had like two sets of criteria, the no criteria and then like,
okay, things I'm definitely looking for, like a good strong culture, a good like culture of code
review and a good like testing infrastructure and other things like that. But at the same time,
like I was also, you know, the no criteria is like, was something that it was definitely a
do for good for me because I didn't want to be in a place where I might get frustrated or
the top, maybe the culture would be more toxic than I imagined.
Yeah, sure. So you had no large companies, no homogeneous culture. What does that mean?
So one of the things I care about is that it's about like diversity in terms of like age, gender,
race, like all of them, all of the things. And that's something I care deeply about. And I,
and if I see that a company, they may be like a few years out in business and they don't have
a diverse workforce. I feel like that may be a warning sign. And there's certain recruiters
who have been really honest about the fact that I like, if I work there, I may be the first female
engineer there. And that's kind of scary to me.
That was not a thrilling concept to you to be the first person to break that ice.
It is. It is pretty scary.
Yeah, I would think it would be as well. I mean, I've talked to other women in tech who were like,
I totally fit and fine. It's no big deal. But just, you know, I didn't connect in the same way,
like maybe a bunch of young white guys who are programmers who just came out of, you know,
college or whatever. Like I wasn't interested in land parties. So there goes a big part of my,
my connecting with my coworkers and whatnot. So yeah. Did you find that it was easy enough to find
places that were heterogeneous cultures or was it really challenging?
Well, that's one of the questions I asked recruiters on the first conversation. And I also pretty much ask
more or less the same question to the engineering director or like the tech lead to see like,
oh, like what are the ratio, women engineers, male engineers in the environment. So that's like one
thing amongst many other things I'm looking for.
Yeah. Yeah. You said also no stupid apps, which is a kind of cut ties back to like,
you want to make a difference with what you create. Right.
Yeah. I've seen a lot of stupid apps. Oh God.
I mean, I've seen apps that like seem pretty implausible. And like, once I think about it,
I was like, wait, like, why, why would you do this?
Yeah. I'm a big fan of a lot of stuff happening in San Francisco, but there are certainly some
companies just like, well, the world does not need this. Come on. I find one of the
more frustrating things, like 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 like tie back to unused apps.
And I was also pretty careful about companies that are more about like the hype and the marketing and
the media. And you know, it's, they may not have like the product to be able to fulfill that hype.
So, so I'm looking for like real companies that have real business value, like to have like proven business success for the long term.
Yeah. Yeah. So speaking of proven business success, you said you didn't want to be the first,
like the single technical co-founder or the first tech person, first engineer at a,
at some kind of startup, somebody's wild dream.
Oh yeah. I'm pretty sure that is like a dream from a lot of people in the Bay Area to be like the first like founder or CTO of their like first startup.
But I feel like I like working on a team and on a team environment and like having all of the,
the advantages of being on a team where like you're tracking people, you're discussing with other engineers.
It's really important for growth and like technical growth, personal growth.
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 meetups and conferences and all that.
But when you're, when you're pretty new, it's certainly, I think it's, it's a really tough place to be because you want that.
I've always, at least personally wanted to be the least knowledgeable experienced person in the room because I felt like, all right, that,
that is going to get me in a place where I can just like learn more.
I agree with that too.
Yeah. Yeah. I mean,
So my current company, I think I'm like more of the, I guess like mid-level younger engineers to give some context.
Like the company working at has been around since 1999 and they've been profitable since then.
And a lot of people, like a lot of the employees have been there on average of like seven to 10 years.
And so to me, that's like, wow, like that's a, that's a long time.
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.
Right.
I went to work at a, like a trading company in New York, actually.
And went there and it was a training gig that I was doing, teaching some stuff for those guys.
And there's, 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.
I thought, whoa, there might be something wrong in this company.
It's like, you can't keep anyone out of a group of 30 more than two years.
This is, this is like a, it was a pretty intense place to work.
So I think the, the people being there longer is,
generally a good sign.
There's also drawbacks, but pretty good.
So that was something I was looking forward to.
All right.
So great.
And then the last one you said, you just didn't want to travel too far, which makes total sense.
This portion of Talk Pythonry 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 novice to Python expert.
And there are many more courses in the works.
So please consider Talk Python training for you and your team's 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 jumpstart 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, JSON, and XML data formats.
Do you want to launch an online business?
Well, Matt McKay and I built an entrepreneur's 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 course announcements coming really soon.
So if you don't already have an account, be sure to create one at training.talkpython.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.
All right, 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.
Sure.
So a lot of my interviews are I would send out a job application, fill out the online forms, and click the send button.
And then I would not hear back from most of the employers for a couple of days or weeks.
And if I did hear back from them, it would be like this very impersonal email reply.
Oh, sorry, dude, some of our candidates.
We can't have you move forward.
So I felt pretty mildly disappointed.
But at the same time, I knew that they can't get back to me with a detailed personal response, even if I wanted them to.
So that's when I go, okay, it's time to move on to the next opportunity.
So it can get pretty grating at times and a little bit frustrating.
But I understood where they're coming from, that they're pretty busy people.
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?
Oh, yeah.
That was really unusual.
Like, that's 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 like literally, I once got this email from a company and they're like, oh, like we found your resume several months later and we wanted to be you.
But they're like, I've already accepted a job months ago.
Yeah, yeah.
Too late.
Yeah, this is a little bit weird.
I certainly see how people get overwhelmed.
Like I put up ads for jobs and, you know, got to so many applicants.
It's like, oh, my gosh, I don't know if I could deal with all this.
Certainly not like detailed responses.
But yeah.
So another one was this AI startup that you were talking about.
And you said the interview went pretty well.
But in the end, they decided to just hire their friend or something like this, right?
Ironic to me was that they were working on like automating human resources, like the hiring component.
And yet they decided, OK, well, we're just going to hire someone already now, which is like ironic because what is the purpose of the product that they're making?
The machine says my friend.
Oh, and again, like, you know, if you have a connection, a way in, that's great for you.
And we're lucky for them.
But a lot of times, like when I was doing a job search, like I didn't have a way in, like a direct connection or just me.
And everyone else is very much like, you know, they reached out to me via email or the standard application process.
Yeah, sure.
So how much do you think like moving out there from New York and not growing up there sort of limits your connections to like the number of people in these positions maybe?
So initially, it was harder for me because I didn't have like a network of people already in the Bay Area.
So I had to reach out to people, like connect with other people.
And that can get pretty frustrating sometimes, like especially for like the interviewing process, because sometimes people are hiring, sometimes they're not, especially for the meetups I would go to.
So it's really hit or miss for me.
And one of the questions I got from people after my talk was like, to what extent was I going to meetups and doing a networking thing?
And I didn't really do a whole lot.
I personally found that pretty draining, especially at the end of a long day of interviews.
Like I kind of didn't want to go to like a meetup.
And that was my personal.
Maybe some people are really into like all the networking and meeting all the possible people.
But as an introvert, I felt that it's a bit more draining to put myself out there.
Yeah, it can be pretty hard to do that as well.
Sure.
It's definitely challenging, especially if you're, 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 a little easier in the tech space for me because I can just talk about tech, which is a pretty, is a pretty good common thing to talk about.
But general networking is still pretty challenging.
So what about Jelly?
Initially, I was pretty excited about Jelly.
And I was one of like, when I found out about Jelly, I was like one of the more avid users I was asking.
So Jelly to backup is a Q&A app.
You ask questions and then you can get answers that are-
Like Quora?
Yeah, it's pretty much like Quora.
Okay.
And their focus is about like providing quality answers.
So they're pretty selective about like who gets to like answer the questions or trying to find like the best people for that.
And it's all like crowdsourced.
So it's really up to like a team of volunteers who are in the community of experts who are answering a lot of these questions.
And they have like a Twitter integration where you get to put a hashtag, ask Jelly.
So sometimes I would like ask questions in 140 characters and I get a response back.
Okay.
And you had an interview with Biz Stone, co-founder of Twitter, who asked you just one question, right?
Yes.
What was the question?
So he asked me, what do you hope to accomplish in your life, Susan?
And I was a little bit from back from this question because I wasn't sure how to answer it.
Like this was not one of the questions I was prepared for.
So I was totally ready for like other questions.
Like, okay, like how does that jingle work?
Or like how does the internet work?
And I was ready for it.
It was kind of like web-depth related questions.
But this is like a really broad question to me.
So I was a bit in trouble.
What's the advantage of using a Q in such and such situation or something, right?
Like that's not the same as what are you going to accomplish in your life?
Yeah.
So I was like really like taken aback.
And so I basically had to come up with something really quickly on the spot.
And I talked about like my passion for Jelly.
Like it seems like it really has a lot of potential.
And I want to work on the features and get more users to use this product.
So it was like pretty like a standard response to something that's pretty generic, I think.
So I think he liked the answer.
Like, you know, he also gave me his answer, which seemed a little bit hippy-dippy.
He gave like this.
He gave me an answer about how he wants to connect the world and make everyone part of this like community of like-minded internet.
It's very hippy-dippy.
If I remember.
Yeah.
Sounds a little like Twitter Jelly.
Okay.
And you said you had this very awkward experience around like, 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.
Yeah.
So I, 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 like when I walked into the office, I thought I was going to be pair programming with the interviewer on a full stack Ruby application and we'll go through the problem together.
But it turned out that he wants me to implement a feature on an existing Ruby application from in like 15 minutes.
And I was like, wait, like, are you sure you want me to do this in 15 minutes?
And he was like, yeah, yeah, sure.
Go for it.
Since like he's in charge of this whole process.
I was like, and I was following instructions.
Like, okay, yeah, sure.
Why not?
And so I tried like going through the process.
Like I was looking up the documentation, like going through the online Ruby tutorial.
I was like, this is really awkward.
Like I'm trying to like learn Ruby at the same time, trying to create something that would be a profession.
Yeah.
And so 15, there was also like my shortest interview, 15 minutes.
And then like a few minutes later, he, he saw, I was like, not at all proficient with Ruby, which was, I told him that like 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 gain some experience in Ruby.
Then we can reconsider.
Yeah.
And you didn't follow up a few months later after you had done a bootcamp in Ruby.
I kind of understood where he was coming from.
Like, okay, this is like a, he wanted, maybe he did actually want people who are experienced in Ruby.
And not like he, maybe he wasn't willing to look at beginners or teach newbies.
Yeah.
And that's totally reasonable.
Like to say, look, I want somebody who already knows this technology.
You can just come in on the first day, start being productive, but that should be like clear.
Yeah.
Beforehand.
Right.
Like it should just like, that should be more obvious.
So that's kind of awkward.
I'm sure.
Right.
Yeah.
So there's a pattern of like a lot of interviewers may not know what they're looking for.
And so they ask a lot of these questions that may, may not be relevant or they give you code
challenges that may not have pertinence to the job description.
Sure.
So let's actually talk about code challenges since you brought that up a little bit.
Like that seemed to be like one of your really biggest pet peeves of the whole experience.
Yeah.
So code challenges to give an intro, sometimes you may get code challenges and that can take
anywhere from like 60, 30 minutes, 60 minutes, 90 minutes.
And sometimes it can be timed where you answer a number of questions and it's either like a
right answer or a wrong answer, depending on what they're looking for.
Or sometimes there are open-ended questions where you have to build an application from scratch
or you have to like create the models and the views and controllers, the whole thing.
If you're a web application developer, I particularly really harp on like the open-ended
open-ended code challenges in particular, because there's like no time constraints or sometimes
there's no time constraints or like no feature constraints.
So you don't have an idea if this will take like an hour or it's like a whole weekend project.
Yeah.
Give us an example.
So one example is build a full stack application that uses the Twitter API in some way.
And so it's just open-ended because you can use the Twitter API in any number of ways.
This particular is challenging because you're not sure like what exactly are you looking for?
Like, are you looking for design?
Are we looking for how well I can write the test for this feature or how?
So it's really hard to tell, especially if that code challenge doesn't come with really clear
and specific guidelines.
Like what is the input?
What is the output?
Yeah.
So certainly you mentioned design.
That's obviously one of them.
But even on just the programming side, like 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,
because it's not going to have to work really other than just to prove the concept.
Right?
Yeah.
And so what should you do, right?
You don't know.
Yeah.
And sometimes when I would go and spend time on the open-ended code challenges, one of the
things I fell into is that, okay, like one of the feedback I got was like, maybe I didn't
write unit tests or maybe I didn't use the right library that they expected me to.
So it's really hard to know what you're expecting because you're not given those instructions.
Yeah.
And you can spend days on it and maybe not even get anything out of it.
Right?
Right.
Yeah.
I suspect the most frustrating part is the ambiguity.
Like, I don't know what criteria I'm being evaluated on.
So I just got to like, what, 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 the CRISPR algorithm.
Right?
What's the story there?
Yeah.
So on paper, it sounds really great.
Like they're a very mission oriented company and the website has all these information,
like papers they've published and the team looks like really solid, like lots of experienced
people.
Lots of PhDs probably.
Yeah.
So this is like the biotech space.
And there's a lot of chemistry people, mechanical engineers, electrical engineers, and software
engineers all working in a lab environment.
Yeah.
Sounds really fun.
Yeah.
And so I got to explore and did a tour of the lab and that was pretty neat.
And in that interview process, I did a live coding challenge where I was making, 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 with like the number and I was like, and I was pretty disappointed.
And I said, well, and I told the CEO and the co-founder that, well, this is like way
below the average salary for what a software engineer of my level experience should be making.
I said, no, I went on 50 interviews.
Yeah.
And his response was very like, 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.
So to me, like that didn't seem like everything on when I visited in person, it seems good.
But then like the company wasn't really willing to pay competitive salary to their engineers.
Well, and there's one thing is like, if this company is kind of just getting started and
they're, they're looking for VC money and they're thinking that this is going to blow up
and they say, look, 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.
Yeah.
And they're ready and they're like fifth or fourth year.
So it's, they're not like a baby startup just getting started.
Yeah.
So they have a lot of money and that was like an automatic note to me.
Like I'm not willing to compromise.
You know, I think it's interesting is there are two, well, there are more than two types.
There are two categories of companies that come to mind that really, and I don't know if
this is the situation here.
Tell me your thoughts.
Like on one hand, there's companies, this could be in San Francisco and tech companies,
or it could be in Kansas city in, you know, like a cable company.
It doesn't really matter.
But that where the company sees their software team and their software people, their technology
people as like, like a sword that they can wield in business.
Right.
Like something that is super powerful and is like, 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, well, these developers, they're
necessary, evil.
We have to pay them.
It's hard to tell.
Yeah.
I'm sure you didn't go into the philosophy too much with the guy.
Anyway, I definitely been in some companies where they, they don't seem to realize like,
Hey, we have this amazing software team.
Like, what could we do if we really inspired them?
And they just seem to like, you know, not, not put a lot of credit in what they say or
do or whatever.
And that's not amazing.
Yeah.
And this often comes from say, like if the founders aren't technical themselves, they
may not understand like, Oh, why do we have to have an ops team?
Why do we even have to have people working on like the front end?
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?
I suspect that's less common, but it still could be the case.
All right.
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 maybe run that down for us?
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 like, okay,
like more frustrating experiences than I expected.
Yeah, I'm sure.
So I've gone through, talked to a lot of different engineers and learned a lot about different
products.
So it's really, I feel like the whole process is like a crap shoot.
Like you, you have no idea.
It's so unpredictable.
Like you don't know how long the interview process may take and like what kind of questions
you might get.
And it can get pretty frustrating at times because getting a lot of no's can be like,
you can lose your self-confidence when you're going through this process.
But to me, like the way I got through it, like I tried to like take a step back and you know,
the next day after taking breaks in between the next days, there's always like a new opportunity
for me.
And there's always like a new door, lots of new people to talk to.
So like every day it was like a blank slate, like start fresh.
Yeah, that probably takes putting yourself in the right mindset somewhat.
So you're like, because you've got to show up with a good attitude.
You can't just show up like looking worn out and like dejected, right?
No one's going to hire you then.
So yeah, it's good to take some breaks.
And if you need to take like the afternoon off, just to like to clear ahead.
I did that.
Like there's lots of places where I would walk to just to take some walks.
It's very therapeutic.
And yeah, yeah.
And I also drink a lot of tea as well.
It's kind of like keeping calm.
That's really cool.
Nice.
Okay.
So did people ask about like, what did they ask about your prior work?
Like, did they check out your GitHub profile?
Did they talk about open source?
What you did at other companies?
What did they seem to focus on?
So the reason I'm asking is people who are out there looking for a job, like, you know,
where should they spend their energy?
I think having a good project you can focus on.
So a lot of questions that I've gotten are about previous favorite projects.
Like 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 like pretty common if you go to
eventually to the on-site interview.
So it's good to be pretty prepared and be able to show off like your strengths and be able
to talk at length about different decisions that you've made or challenges that you faced
and how you overcome them.
Sure.
Did anybody ever ask you what your favorite open source project was?
Or was it always focused on like what you had done personally?
I don't think I've gotten that question.
It was primarily focused on like previous work.
So sometimes I would get questions where I need to like diagram or like whiteboard what the
architecture was for this past project.
So yeah.
So that's pretty typical.
Yeah, sure.
Okay.
Well, this is very, very interesting.
Let me ask you two more questions before I let you go and then we'll do a quick wrap up.
So if you're going to write some Python code, what editor do you open up?
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,
vagrant SSH into a good Linux environment.
Yeah.
So I learned how to use a lot of Vim packages like c tags, a lot of the common Vim packages installed.
But then what's frustrating about Vim personally is that sometimes when I destroy my environment
accidentally, I have to like reset up all of the packages again and like reinstall those packages.
And that gets a little bit annoying.
How do I get this thing working again?
Yeah.
I saw a picture.
It was some kind of meme.
It was a picture of a bus and it had VIM written like in huge letters on the side.
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.
All right.
So favorite PyPI package or most notable one that you've come across that maybe people haven't
heard of.
In Django, I really like Shell Plus.
You can use Shell Plus to load pretty much the database models into the shell.
So that's been really useful for debugging.
Oh yeah.
That's cool.
Because you have everything already preloaded for you when you open up the Django shell.
Yeah.
Nice.
Okay.
Very cool.
That's a good one.
All right.
So last thing, final call to action.
You've gone through this whole experience of all these interviews.
You even like 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
of pieces of advice?
What can you tell them to make it a little bit easier given what you've gone through?
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 list of no criteria.
If you can be selective and feel free to do that.
And also you don't have to go for like, say, 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 onsite or they may take a while.
So it really depends.
So it's really unpredictable.
So be mentally prepared for this process.
Yeah.
So one more question, I guess.
Like, how did you keep going?
Like, how do you just not get really frustrated and go, ah, I'm just going to go work at a
big company.
I'm going to go do something different or change my plan.
I really want to stay in San Francisco.
So it's just, it's a really good place to be in terms of like 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.
Yeah.
I guess it sounds like you were really clear about what your priorities were and that
kind of helped guide you.
Yeah.
So I have like a pretty clear list of like certain days I'm looking for.
And I was pretty excited when I found like a new company, a new product that I want 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.
So that's something, if there's like a new thing that gets me excited, yeah, that's, I want
to talk to them.
That's awesome.
So 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, that's excellent.
Great.
Thanks for having me.
You're welcome.
Bye.
All right.
Bye.
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 Jumpstart 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 /play and direct
RSS feed at /rss on talkpython.fm.
Our theme music is Developers, Developers, Developers by Corey Smith, who goes by Smix.
Corey 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.
Outro Music.
you