So you're ready for your first job as a Junior Developer! Now you just have to ace the technical interview, crush a coding challenge, and woo the hiring manager in a culture-fit test. Luckily, we've got Startup Institute founder Shaun Johnson, and technical hiring manager Jake Adams of Branch Metrics joining us for a deep dive into the hiring process. This panel has experience with every facet of landing that first Junior Developer job, and they're ready to share!
This webinar is perfect for potential coding bootcampers, recent bootcamp grads, or anyone looking for a leg up in the interview process.
What we cover in this webinar:
- The soft skills and hard skills you need to know in order to crush a technical interview (plus how to demonstrate those in a job app, take-home coding challenge, and an interview).
- Detailed tips & advice to think through when approaching a coding challenge- think links to newsletters you should be subscribed to,
- Plus, Jake Adams (Web Team Lead at Branch Metrics) & Shaun Johnson (the founder of Startup Institute) answer questions about landing a junior developer job!
Thank you so much for tuning into the Debugging the Technical Interview Webinar. We have quite a few people joining us tonight. My name is Liz Eggleston. I work on Course Report, which is a resource for choosing the coding bootcamp that’s right for you. On Course Report you can find a bootcamp that fits your budget, your time commitments, career goals. We’ve also got application tips, Q&As with alumni and instructors and founders of bootcamps across the world.
As coding bootcamps begin to graduate a substantial number of developers, most bootcampers are looking for that career change. We end up talking a lot about job prep, interviews, and getting that first junior developer job. I am really psyched for our webinar tonight because we have Shaun Johnson, who is a cofounder of Startup Institute, which is a program that gives you the skills, mindset, and network to get a job at a startup. Shaun cofounded Startup Institute and now he is the program director in New York.
We’re also joined by Jake Adams, who is a software engineer and a hiring manager at Branch Metrics. Branch Metrics is based in San Francisco, and they help mobile apps through mobile deep linking, which is a really interesting technology. His perspective is going to be really helpful. He’s hired a lot of developers. Jake also went through Hack Reactor, so he has a really cool perspective.
Since we announced this webinar, we’ve gotten some feedback that you want to know not only how to crack the technical interview, but also how to get that interview in the first place. In this webinar we’re going to try and cover three things: knowing that you’re ready to begin the job search, how to search for the job that you want, and how to be prepared for that technical and cultural interview. Jake is going to give an example of a technical interview question and challenge that he might give to everybody who applies to Branch Metrics.
Let’s get started. Jake and Shaun why don’t you go ahead and introduce yourselves and tell us what you’re doing here.
Intro to Shaun - 3:32
Shaun: Yeah, I’m Shaun. I’m the cofounder of Startup Institute. The reason why end up doing these things is that we want to help as many individuals find their career passion and be able to go into whatever landscape - I think they’re all going to be more technically inclined, but especially the life of a developer, it’s a big jump. Learning these things can be hard, and if we can help you circumvent your journey and get there as fast as possible, we’d do this everyday.
We’re happy to have you. Jake?
Intro to Jake - 4:09
Jake: Hi, I’m Jake. I work at Branch Metrics. I’m the web team lead here. When I started at Branch, I was the first hire on a team of four founders. We’re now at 35 employees and things are going really well, I’ve been learning a lot. It’s been a great experience. I studied information systems at Brigham Young University in Utah. I also, as Liz said, went to Hack Reactor. I was about to start a job in consulting, and decided to continue my work in web development and polish things off there. It’s been a wild ride since. I’m happy to be here. Feel free to ask about coming from an unconventional background to engineering.
About Shaun/Being a Lifelong Learner - 5:30
Shaun: Let’s get into it. I have to talk about myself again. You heard about me. You heard about Startup Institute. I think one thing that I will share with you guys is that I’m a classically trained developer. I went to a 4 year university and studied computer science as my major. I really have a lot of respect for the auto-didacts, the people who take the path of action and being able to teach a lot of what they want to learn themselves. No matter what you learn coming out of a CS program, you’ll learn Java, C++, maybe even some Python, if you’re starting to get into a university, I’m starting to slowly see these newer languages. You might do some Node. You might do some Ruby. The fact of the matter is as soon as you learn whatever it is you’re looking to learn, you can start a clock and it’ll soon be expected. Being able to continue to learn is going to be a very important thing that no matter where you decide to take the leap and start learning skills whether it’s a university or the Startup Institute or a program like Hack Reactor, the thing that I would really encourage you guys to do is get used to being a lifelong learner. It’s really the beauty of being a developer that you can always learn new things and have different challenges come into your world. If you’re thinking that you can just check the box and now you’re set, rude awakening.
Why You’re Here - 7:18
Shaun: So you’re here to get a job as a dev. I think that the market is hot, but there’s room for a lot more technical talent than there is. If you’ve been in New York or San Francisco, you’ve probably seen the war on talent when it comes to being a developer. You’ve probably even seen the type of salaries these types of roles are getting and that’s probably appealing. But the way that we look at careers at Startup Institute, is you’re never here to get just any job. You should be looking for something that fills your life’s mission. Gone are the days where there will be a 9 to 5. You’ll likely spend late nights and weekends either working with the code base that your employer’s paying you to do or continuing to hack on things so you can keep your skillset sharp. If you’re going to invest all these hours, why not be happy doing it? Why not have it build into the opus of your life? That takes a lot of different things: good people, having your needs met, being challenged, feeling like you care about what you’re doing. You could go and scour the internet and just keep clicking away and find any job. I want to give you three quick tips on some of the more cultural side of what you want to be looking for when you’re finding your first job as a developer.
Culture - 8:51
Shaun: The first thing is one that’s overstated, but never overrated. Folks tell you to go for a good culture that fits you. It probably sounds tongue-in-cheek or you’ve probably seen it as that same cyclical trap that recent grads have. “We’ll hire you when you have experience, but you can’t get the experience until we hire you.” You can’t really know a company’s culture until you’re experiencing the company. Culture’s a big topic. It could be its own webinar. I just want to give you a couple of hacks that will help you approximate what good culture might look like.
Mentorship by headcount + expectation
Shaun: A lot of people will go into interviews saying that they’re looking to be mentored. It usually is a clear sign based on their headcount. If you’re trying to be dev #1 on a team, you can go and do that if you’re dev #1 on a team. But if you want to have a CTO or a redeveloper or maybe another junior developer to pair with, looking for those things should give you an indication of whether or not there’s going to be that kind of camaraderie or mentorship or leadership as you’re banging your head against Google and Stackoverflow trying to figure out how to build things for production that you’ve never seen before in your life.
Open Source, Meetups, and being a part of more
Shaun: When you look at the company’s mission, you should be motivated by it for sure. But when you think about the role that they play in the grander scheme of things, the internet is a place that’s built off of community. A lot of your favorite tools and things that you use, have been either pioneered or are currently open source projects. It doesn’t come from just anywhere. They’re real people who have learned from open source, who have learned from the community, and then decide to pay it forward. If you think that’s a valiant cause, it’s because it is. Finding those individuals that don’t want to be a part of the 90% of the internet that just sits and consumes and says, “Hey here’s a treasure trove of information, let me just do this.” You don’t want to be a part of the 9% that curates and comments and adds a couple of points on Stackoverflow. You want to be a part of the 1% that’s actually forging what that future is. Find a company that actually contributes to open source. Find a company that leads some of your local RB meetups. It’s going to be that same spirit that’s trying to build more than just profit that might attract you to their culture if that’s what you’re looking for.
Continuous Learning and an investment behind it
Shaun: The last thing I’ll say about culture is that continuous learning is another one of those things that people always say, “I always want to be learning.” Where’s the investment behind it? Is this a company that has a stipend for you to continue learning? Is this a company that will give you 20% time? Is this a company that’s finding any opportunity for you to continue to grow and be more than just a developer that writes code that you already know how to write and finds way to invest in you stretching your ceiling so that you can become more. Sometimes it takes money. Sometimes it takes time. That can be counterintuitive for a company that’s trying to enhance profit and get the most efficiency out of people. If they believe in the long run and the trajectory of your career, you might see this.
Ask those questions. Look for those things and you just may be lucky enough to find the right fit.
What You Should Know - 12:54
Shaun: The second piece I wanted to talk about is just the reality of the situation. I think as humans and in this generation, you’re so used to instant gratification. “I did this thing or I came out of this bootcamp or I read this book. Sandy Metz she knows everything, as soon as I get cover to cover in Practical Object-Oriented Design in Ruby, I’m going to be just as good as her.” Not gonna happen. It is a journey. It’s an amazing path, a stoic journey.
This is hard, and you’ll never know ALL THE THINGS
You can be okay being ignorant. I know that’s very hard to say, but it’s a very wise saying. If you ever find yourself as the smartest person in the room, you’re in the wrong room. If you’re in the world of web development, you always want to feel like you’re not that smartest person in the room. The more comfortable you are being uncomfortable, the better you will be at tackling harder challenges and continuing to grow as a developer.
Imposter Syndrome is real, push thru
The other thing I wanted to talk about is Imposter Syndrome. This syndrome is one where you probably made an app or passed a couple of coding challenges, maybe you get your first job offer and now you’re working as a developer. That feeling in you that, “I just convinced them. I’m not a real developer. Real developers open up their terminal and start cranking stuff out and it always works and they never have to debug. They don’t even know that Stackoverflow is a thing.” That’s not true. Every developer goes through that same cycle of Build, Measure, Learn. Build, Measure, Learn. If you can get wherever you are in your tier, whether or it’s getting that job or building that app, trust in yourself. Know that everyone else has that same feeling of Imposter Syndrome and you’re not the only one with that insecurity. This is a really big thing for me. I’m like, “Yeah, I got a CS major and degree. I got a technical master’s degree. I kind of write code, but I don’t really write code. I’m more of a techie guy, not a dev.” Screw it. It takes a lot in you to actually have the confidence to say that if it came from my hands, I made it. I can do it. You can continue to learn more. If you’re just okay with where that middle ground is. You’re not going to know everything. You also know what you know.
Most are investing in your trajectory, not present
Most of the companies that you’re going to talk to don’t expect you to know all of the things. They don’t expect you to be a perfect individual as a junior web developer. You’re a junior web developer. Operative word is junior. As a junior web developer, it’s about where you’re going to be. It’s about how you ask the right questions. How hard or long or not long you work independently trying to solve your own problems before you say this is Sisyphean. I’m just rolling this rock uphill. I’m going to go and tap my manager and say, “There’s a problem that I have. This is what I think it is. This is what I’ve tried. Let’s troubleshoot.” A lot of that is going to start to plot out the dots of your trajectory. People want to see that. People want to see what you can build and what you can do with the feedback, so they know that you don’t need to be handed step-by-step instructions in order to do this. Find your trajectory. Don’t be afraid to put yourself out there from the gate. It’s going to be about the traction that you have from point A to point B or B to C that matters versus whatever your point D might be.
Stand Out! - 17:20
Shaun: This is my last one. These are some of my favorite people. These are only a few vignettes. The big takeaway from this slide is that like I said there’s a lot of demand for technical talent in the ecosystem right now, but when you think about the levels of expertise that the talent pool has, there’s not a lot of CTOs. There’s not a lot of senior developers. There’s a couple of journeymen and middling developers who still going to figure out if they want to stay at that level or if they’re going to continue ascending to this lead developer CTO-type stage. There’s a lot of junior developers coming into the market. Every single day there’s a ton of organizations that are training people. There’s a ton of people doing it on their own. There’s a ton of people going through Treehouse, Codecademy, and Bento.io, trying to learn the skills to make it happen for themselves. When you look at what that labor market is, it’s going to mean that as much demand as there is, there’s going to be a saturation between the level that you’re at and where you’re trying to get to. You have to find ways to stand out.
How do you stand out? These four folks are examples of what I believe are exactly how you do this for yourself. You can do it and it works and it’s awesome.
The first vignette, look to your top left. Zack was working in finance. Loved the money, hated the job. “Where can I go to get a career reset and get on a path?” Like most people he thought he would just go to law school. He got accepted into law school and before that summer he ended up saying, “Why don’t I spend some time and see if I can do something different. I enjoy coding. I don’t do it regularly, but maybe I could if I invest in it.” He’d went through Startup Institute. While he was there, there’s everything that the program does, but I think what he did was most unique. He ended up finding a founder and CTO who was very close to us and our network. He just latched on and said, “I like you. You like me. Let’s make it official. I want you to be my mentor. I just want to be able to turn my screen around and show you what I’m building and get validation, creative ideas, better feedback.” The more he did that, the better that cyclical loop started to become. He could build something, get some feedback, and learn how to make it better. He skyrocketed through the program and his own career journey to the point that he ended up getting a job. He now works at jet.com, it’s like an Amazon killer, built by the founders of diapers.com and quidsi who sold the company to Amazon. Now he’s an engineer there. It came from that mentorship-backed acceleration versus keeping his nose in a book and thumbing through tutorials and doing that learning in a vacuum.
The next one to the right is Bryce Lin. Bryce is now a developer at Spotify. It’s very competitive to get in at Spotify. Everyone knows them and loves them, so naturally they chuck resumes at them. Bryce didn’t chuck a resume. Instead, what Bryce did, took it a step further than a resume or a GitHub profile, it’s an app. The Rails app that he ended up building was a Spotify player, and instead of flipping through tracks, you could flip through the tracks of his career and understand where he worked and what skills he gained. If you want to see the remix you can go to that. It looked exactly like the same UI that Spotify had. They saw it and it went viral through the company. Mind you, he works in the New York office, and it went as far as Europe to the company headquarters. Naturally, he gets the interview. He gets the job. He’s still working hard to continue growing, but only through that creativity and willingness to not only show what you can do, but at a level that connects with your audience was he able to get that job.
I’ll leave it at those four. There’s different ways to hack your way and stand out. I think the biggest point is to stand out. If any of those stories make sense for you and your career, feel free to steal from them! It’s so rare that actually try to do something that helps them stand out that if you do it, no one will say, “I know where you got that from.” They’ll send it to their European office and hire you immediately.
Liz: How long has Startup Institute been around?
Shaun: We started the company from this awesome startup accelerator called Tech Stars Boston in 2012.
Liz: So you’ve been around pretty much since bootcamps were getting started. How have you noticed that job placement trends have been with your students over the last couple of years? Have you noticed anything new or interesting?
Shaun: I would say there are a couple of jobs that are starting to open up or become higher in demand. The interesting thing is that it’s a bit more niche than trying to come in as a junior web developer. When you think about devops, the process of knowing how to scale your infrastructure so that if you get more traffic or you need to start optimizing what that looks like, you’re responsible for that architecture. That can be a little bit interesting. Some people who have an inclination towards quality assurance can continue growing in that way. We’ve seen people get jobs all across the board from technical marketing to front end web development to back end web development. That’s been pretty consistent. I will say since 2012, there have been a lot more bootcamps and a lot more places for people to come out of. Some have been able to defend amazing reputations and placement stats. Hack Reactor is definitely one of them. Then there are certain ones that haven’t. Do your homework for sure. I don’t think that every coding bootcamp or opportunity to learn web development is created equal. I will say when it comes to us and how we’ve been able to defend our placement rate and keep it high even though there have been so many places that get great talent outside of Startup Institute is our alumni network. Today there’s over 1000 folks running around different parts of the globe from the cities that we’re in in the states like Boston, New York, and Chicago, but also SF and DC and Miami and Austin and Canada and I can name the rest of the globe. The fact that they’re alums for us and we think about them as a longstanding part of our community, means that they continue to give back and mentor and are willing to give that assist if they’re at a startup that you want to work at. I think that intimacy and being a part of a community has helped us help our new graduates still stay ahead of the curve and not be looked upon as a generic web dev.
Liz: Lisa Marie asked, I didn’t completely understand what you meant by mentorship by headcount + expectation, can you quickly explain that formula?
Shaun: We talk about this with some of our students. At Startup Institute, you gain the skillset, this mindset, as well as the network to go and crush it in life. We really hope that you’ll go and try to take a job at a high growth tech company, but when some folks realize that they’re being introduced to rockstar developers and VCs and now know the ins and outs of what an early stage tech company look like, they want to start companies themselves. That’s one way to learn is by jumping in and feeling all the pain. Entrepreneurship is about that, but on the other hand I think being able to learn with a number of people and being shielded from the raw and ugly truth of failure can help you. When I bring it back to that bullet, it’s still somewhat the same formula. If you’re going to your average WeWork and it’s a small cubby of three people at a desk and they need a dev, and you decide to be their dev, you’re in for a lot of pain. You can learn a lot from that pain, but they’re going to want you to be fullstack. “Where’s our front end? Where’s our back end? Our database isn’t charting well, what’s going on with this? We just got into TechCrunch and now our site is down, why is that? We can’t accept strike payments because our SSL Cert came from the wrong place!” You say, “All I know is Rails New and how to get that thing on Heroku.” You will learn a ton, but if you’re looking for that mentorship, you can start to approximate it by that headcount. Ask yourself how many devs are actually on the team.
Jake intro - 33:57
Jake: Nice. Shaun, I really liked the story about the Spotify grad. I’m sure that as his app was going viral, I bet nobody was checking down the resume to see that he had a CS degree.
Shaun: Skipped the line.
Jake: Once you impress somebody, nobody cares where you came from. Engineering is an awesome market right now because what people care about is what you’re able to build. They don’t care about where you came from or where you were at your last job, but what you can do now and that you can hit the ground running and start building stuff and that you’re confident in your ability to go out and figure things out with Google and Stackoverflow. That you’re confident that you can debug.
Anyway, back to me, I guess. I’m Jake Adams, the web team lead here at Branch Metrics. Like I said, I started at Branch as the first hire on a team of four founders. We’ve been able to grow. We now have an engineering team of twelve and the rest being business and sales and marketing. It’s been a lot of fun.
About Branch Metrics - 35:32
Branch Metrics is the best way to connect your app with the world. We host growth-focused, cross channel, cross platform, free, open-source links for thousands of apps everywhere.
Jake: We’re a deep linking company. What it means is that mobile doesn’t work the same way that web does. You can’t just copy and paste URL and send them to friends. They’re very much like walled gardens. I’m sure some of you out there have had a situation where you wanted to copy something and send it to a friend from an app and you end up screenshotting it. Whereas if you’re on the web, you just copy that URL and they actually see what you were looking at. What we do is make the mobile space more like the web. We generate links that link to content instead of applications, so people can see the relevant information that they actually clicked on. Any mobile developers out there looking to create referral programs or share content that’s inside the applications, you should check us out at branch.io.
Liz: Shaun was talking about how great companies host meetups or get involved with the community. Branch is involved, right?
Jake: Yeah. When we first started we realized there wasn’t really anything out there for people trying to grow their app. We created a mobile growth hacker meetup here in San Francisco and it really took off. We have I think 2000 people signed up for the meetup. We partnered with Yahoo!, Pinterest, and a lot of great companies for people that are just trying to find out different hacks to try and grow their app. It works perfectly because that’s what we’re trying to do. We’re trying to give any developer the chance to grow their app. That’s been a great opportunity for us. I asked if we could host a React meetup and they said yes. We want to help all developers grow.
What is a jr. developer @ Branch? - 37:46
Jake: We’re a small startup. What a junior developer at Branch is, is completely different from what a junior developer at Adobe or Chase Bank is. There’s a wide spectrum of how people define different roles. That’s important to note. I labeled this based on what we look for and what we’ve been interviewing junior developers.
NOT an intern. The bar is higher for a jr. developer
Jake: When we interview for interns, we just look for people that are smart and determined and hungry and want to learn. We give them a project that’s not mission critical, the nice to haves that are in our backlog. We have them work on those for three months.
If you’re a junior developer, you’re coming in and working on critical bugs and building up new features. You’re working directly with our eng team to really grow and build out critical things for Branch. The bar is definitely higher for a junior developer, but like Shaun said, we understand that you’re not going to know everything. We want you to know some things. We want you to know how to figure things out. We want you to understand computer science fundamentals and that you can build things from scratch.
CS undergrad with internship or side project experience OR 1-2 years of experience working or building products at scale
Jake: To be realistic, we’ve had a large spectrum of people we’ve interviewed for our junior developer positions. We’ve interviewed fresh grads from CS programs from Harvard and UCSB. We’ve also interviewed people who never went to college and worked as web developers for a few years. It’s a wide spectrum of people we interview. That’s important to know that although I think you guys are qualified and if you really learn the tools and skills you need to find these positions, you’ll get them, but you are competing with people who have CS degrees. It’s important to know that you still need to stand out. I need to know that you know your stuff better than the kid from UCSB with a CS degree. I need to know that you can build things as good or better than he can.
If you can pass all the steps and really impress us and show your passion for engineering, it doesn’t matter that you don’t have a CS degree or that you’ve just been coding for six months. As long as it seems to me that you’ve been coding for one to two years. It’s all about real value versus perceived values. There’s the perceived value of one to two years and then there’s the real value of being able to build cool stuff.
What we look for - hard skills - 42:10
Jake: This is what we look for as far as core technical competency.
Coding: be very comfortable in at least 1 language
Know CS Fundamentals
Algorithm Complexity, Data Structures, OOO
Liz: Anu is a recent bootcamp grad from a social sciences background with very little exposure to algorithm education, so if she gets asked a question about Big O or a similarly math-focused algorithm question, how do you recommend she respond?
Jake: Like I said there are CS kids out there who understand Big O way better than I do. It boils down to a couple of things, mostly through iterations. How many times are you going to iterate through a certain collection? You don’t need to know the exact Big O. Sometimes I’ll talk with advanced developers who don’t even know the Big O implication of their solution. No one’s going to judge you, but try your best. Get familiar. If you’re asking this question, that’s what I suggest, learn roughly how things work. Give it your best guess and talk through how the computer is going to interpret it if you can do that. Work with them to explain that you’re not exactly sure, but this is how you think it’ll work. Become the interpreter. Try to work through your problem with your interviewer and explain where you’re coming from. Be honest that you’re not exactly sure. People are really understanding. I think it’s a minor thing, but people are wanting to know that you have a rough understanding so you can write scalable applications.
Shaun: I think Jake’s answer was spot on, but I’m also going to guess that you’re one level before that. If you go into an interview and you’re hearing things that you’ve never heard of, then you need to think about two poles you want to stay between. One pole is where you’re honest about what you know and don’t know, and then the other is where you’re actually trying to problem solve and work through it. I would advise you to not ever say, “We didn’t learn that.” You want to get into a place where you say you haven’t come across that and you’d like a little definition on what Big O really means. If they’re willing to play ball with you and give you a little bit of bone, keep pushing until you can solve that question for yourself. If you can’t, you can say you can’t and then you go home and you go and do your work. Now you just got exposed to a thing you don’t know, that should be a miracle moment. You figure it out and then you come back and say, “I know I tanked that question in the interview, but I looked over my code and what algorithm complexity is and it is NLogN.” Boom. Then they’re going to look at your ability to learn and maybe you’ll get another shot or maybe you don’t get the job, but you learned a thing.
Understand development landscape
know how the web works
know xcode android studio (eclipse)
Real production experience
Screening - 51:42
Learn more about Branch
Jake: As far as our screening process goes, first we just have our hiring manager and tell you more about Branch and make sure you’re not totally crazy. It’s okay if you’re weird, most engineers are weird, but you have to be a pretty cool person. As far as culture fit, you don’t have to be super animated or charismatic, you just have to be a little bit likable and not a jerk. Don’t worry too much about culture fit. Passion and a growth mindset is much more important than what you like to do on weekends.
The next step we have a coding challenge that we send out for the different domains. For web, we send out a React.js coding challenge. It’s just a collapsible box. Small stuff.
Submit a working version
With that, more importantly, for everybody, make sure what you send in works.
Check all the boxes
Make sure you did all the things that the challenge said. Try to do all the steps to the best of your ability and don’t take shortcuts even if it’s going to save you a bit of time.
Clean up your code (please no log statements!)
Clean up your code. If I see logs in coding challenge submissions, I’m definitely going to discount that. You’re looking for a job. You want to put your best work forward, and you want to make sure that what you’re submitting is production level.
Don’t over engineer
Try not to implement huge libraries and make it more complicated than it really is when it’s just the little toggle box.
Liz: Are those take home challenges?
Jake: Some companies care how long it takes you. We don’t really care. We send it in an email, and you send it back in a couple of hours or a couple of days. That’s how software engineering works. No one is going to tell you that they need something in two hours. As long as it works at the end of the day, that’s what really matters.
Liz: Do you expect that somebody is doing research as they go on a coding challenge?
Jake: Yeah. As far as this goes, yeah you should be going and if you haven’t heard of React, there’s quick tutorials on their website. Be ambitious. Be hungry. Try to figure things out. Do tutorials just to get oriented to figure things out. Even if you’re not familiar with the library or the language, try it out. It’s probably simpler than you think.
On-Site Interviewing - 55:25
3 - 4 technical interviews
(1) 2 hour interview with team lead
pair programming project
(2-3) 45 min interviews with eng team members
Jake: This is how we do things. Here you’ll have three to four technical interviews. One with the team lead where you do some whiteboarding and some pair programming. It’s kind of like the React coding challenge. You try to program another app with React and I’ll work with you. It’s an awesome process to see how quickly people can figure things out. It’s an open book session. You can look at the docs. You can look at Stackoverflow. It’s just like you’re actually developing. You can talk to me as a co-worker. That way, we can get more of an idea of how you build and how you learn and how you would tackle things on your own. Really whiteboarding is a broken process. Technical interviews really suck and you can’t tell that well whether someone is qualified or not. It’s the best of the worst. It’s not as comfortable and it’s not how you actually work. In real life you’re sitting there googling and talking to people and going on IRC and figuring out how things actually work. Don’t sweat the whiteboarding, but it is important to be able to feel confident and being comfortable with a language, knowing all the syntax and how the arguments of a four loop are passed in. It’s feeling comfortable with how to build stuff without having to look up everything.
Liz: Shaun, even though whiteboarding sucks, do you guys still teach it?
Shaun: We have whiteboards at Startup Institute. They’re largely for pseudocode, being able to express the concept of what it is that you’re trying to explain or solve your way through. It’s not as needed that every semicolon be placed exactly where it would be placed. It’s not like I’m putting a gun to your head and saying that I’m going to type it in as soon as you’re done and if it doesn’t compile you’re out of here. That’s silly to us. I think being able to express an idea and take more components features or parameters and alter or build out your ideas in pseudocode is something that we do.
Technical Interviewing Advice - 58:39
Jake: These are kind of what I expect and what a lot of interviewers want to hear from you.
Think out loud
Whatever you’re thinking, just talk, let your mind go through your voice and be very transparent on what you’re thinking. That helps me know where you’re at. Interviewers are not evil people. They want you to succeed. I want to hire you because I want to stop doing interviews. I’m like you, I want to keep building and shipping code. People want to help you out, they’re not out to get you. If you’re thinking out loud, they can guide you.
Red, Green, Refactor
Don’t try to create the most clever solution right off the bat. Build something, try to make it work. Red being your first iteration, it’s probably going to fail. Second iteration, something that works. Third iteration, refactor and make it cleaner, more scalable, and faster.
Be patient with yourself
One of the worst things you can do is be anxious and mad at yourself. I don’t know how to talk to you then. I want to be able to work with you and if you’re angry that’s hard. Be patient with yourself, have a chill attitude. If you don’t know things, just be open and try your best to navigate it.
More importantly than solving the problem, is being able to think through it systematically
Try to navigate through without just saying I don’t know this, next question. Ask questions. “What’s the right data structure here?”
What We Look For - Culture Fit - 1:02:22
Jake: This is some of the most important stuff for me.
Passion for engineering (hungry)
Can you geek out with the eng team?
I want to know that you really love engineering and that it’s something that you really like to do. If you go home and you’re not working, you build something else. I find here at Branch, at lunch, we end up talking about stuff we’re working on and different libraries and tools that are available to us. That’s what I love. I love people that are really anxious and hungry to learn and gobble up everything that has to do with web or mobile development. That’s something that anybody can develop. If you’re just starting, you can become passionate and really love it. Even if you don’t know everything you can still show that passion.
Active learner / Growth mindset
Part of that is being an active learner and having a growth mindset. Knowing that you can figure things out is important. One thing that bothers me is if I ask somebody, “How do you stay up to date in XYZ space? How do you find out what’s going on in your domain?” People sometimes don’t have answers to that. They’re still using jQuery. They’re stuck in what they’ve been doing for the last five years and they’re not interested in growing and learning the cool new tools that other people are creating. That’s one thing I would suggest is having a place where you learn new things. I do ask what kind of library or language are you jazzed about using? What would you like to build something with? Also that you’re doing side projects and you’re trying to do stuff on your own outside of the scope of your work or schoolwork.
Read up about company
Read about the company. Have an idea of what they do. You don’t need to know everything, but know that Branch is a deep linking company. Have some idea what the company does.
Do you have any questions for me?
Another huge thing is, I often end by asking if they have questions for me. Some people just say no. That stinks because I can give some really good insight on what it’s like to work at Branch. If you’re really considering it and you really want the job, you’re probably going to have a question. It’s totally fine if it’s the same question, “Do you like working here?” Just try a couple of questions that would be interesting.
Practice, Practice, Practice - 1:05:30
Jake: As far as technical interviews, practice as much as you can. I created a couple of different groups of things you can do to practice technical interviewing. I think the most important one is interviewing and practicing with your friends.
Practice with peers and experienced friends
Frontend interviewing questions
Cracking the Coding Interview
Apply to all the jobs - 1:08:09
Jake: This goes along with practicing. The way you’re going to get the best jobs and get the best at interviewing is just by doing it a lot. That’s why I think you apply everywhere. Try to get as many interviews as you can. That’s probably my biggest advice for job-seeking. I applied to about twenty jobs a day for two weeks.
Liz: Where does Branch post jobs?
Jake: I never went to Monster or Indeed or anything like that. We only have postings on our website, and then we have internal recruiters. We’re still a small company so we don’t have the resources to take in the flow from Monster and Indeed and all that stuff. I don’t really recommend that to the viewers. I think you should look and try for the best jobs and then go down from there to see where you’re finding that fit. If you’re getting pinged back from cool companies than keep applying to different companies and a wide range of companies. It’s just the statistical game. The more jobs you apply to, the more interviews you’re going to get, and the more opportunities and possible job offers you’ll get.
Liz: Eunice has a question. For recent bootcamp graduates, how important do you think building a portfolio is versus their onsite interview performance?
Shaun: It can actually be a chicken and the egg because you don’t know what the company’s workflow will be. There might be some companies that you apply to and then they ask for a code sample or the link to your GitHub or portfolio. Now because you worked on being charismatic and knowing how to whiteboard and everything about Big O that you never got a shot. You can also spend all this time on your portfolio and showing people stuff and it took you so much handholding or group coding that once you get into a solo or live situation that you’re caught off guard and you’re not able to roll with the punches. I guess that’s my sad answer, do both. If I were to put an actual weighted distribution on it, I think that if you do the right things as you’re building out your portfolio, you can almost be cross-training for the interview without even knowing it.
Jake: I’d like to add something. With the side project I was working on is actually how I got my job. I was working on a side project with some friends using React and a lot of tools that we actually use here at Branch. Because I had a working knowledge of those tools and they needed someone who could hit the ground running and so that’s how I got the job. With your side projects you can get very familiar with different tools.
Finding Dupes in an Array (Technical Interview Question) - 1:13:53
How Do You Know You’re Ready? - 1:20:48
Shaun: The first thing is to keep calm, just relax. I know that you feel like you’re never ready and you don’t want to put yourself out there, but the only way that you can do it is if you throw yourself out there. Let the market give you the feedback. You don’t have as much as data as the market. You’re going to feel insecure and like you’re not ready. Get out there and get rejected with feedback so that you can strengthen those things up rather than trying to read a book cover to cover and master every single command.
I’m Coming Out
When you’re ready to put yourself out there, there’s a few things to do.
The first thing that I would do is focus. I know that sounds counterintuitive to the diversity of being able to understand and try different languages. I think trying different languages is perfectly fine. It might help you to understand what some of the principles of object-oriented programming are. If you’re trying to build expertise and you know you need to get to a specific level in order to function adequately as a developer, it’s good to have a home base of a code base.
If you want to be a front end developer and you’re looking at some stuff like Angular or Ember, people are going to want to see the visual manifestation of your code. They’re also going to want to see your code in general. Having a portfolio site as well as your GitHub is going to be good. If people don’t care about that little emerald brick road of your commitment, that’s fine, but I think it’s a great self-motivator. If you think you’re not putting in as much discipline, seeing gaps in the chain can get you to get back on GitHub. Either way, it’s good to keep your code in one place in case you don’t have your Macbook Air, it’s on the internet.
Just do them. Do them. Do them. Do them. Get good at them. Soon the same ones that are melon scratchers you’ll be able to say you know exactly how it’s done. People will be impressed. It’s kind of weird because in some ways I feel like it could be like the SAT because it’s more about memorization, but right now that’s how the game goes. The extent that you can do them, you’ll be better off.
The flexibility that I’m talking about is with the code base. While I mentioned the focus, if you’re wholly committed to Django, you’re a Pythonista, but you’re best opportunity to be a better developer is being something else, think about that. How bad do you want it? Are you committed to being a developer? If you can find mentorship and an opportunity to do it for money, definitely take it. Then you can come back to that thing you’ve got a weird, false affinitiy for.
Hone your story. I love what Jake mentioned. Get geeky and sew your story up. There’s always a way. If you look into your soul, there’s a reason why you do the things you do. They attach to necessity or passion or some guiding hand. Out of all that chaos if you pull up, you start to see the pattern. I’ve had playwrights come through Startup Institute, and they talk about the mechanics of how a story unfolds. There’s 80% of it that you have to do or it’ll be a bad play. There’s 20% you get to be creative with. If you can own the rules as well as the creativity, that’s why he got into playwriting and later code. That story does help understand why are you here? Especially in a hot market when so many people are doing it even though they hate programming, but love money.
If any of you are nerds and you’ve done this in high school or college and you decided to make money by tutoring people and by the way that same time on the clock was you studying and why you got the good grades. It’s the same concept. Putting yourself out there and helping others actually solidifies what it is that you know. Now you have to dumb it down where you’ve been like gisting and you just do it and know it. Now you have to convey knowledge to another human being. It makes you better in interviews and makes you a better leader.
Getting Better - 1:27:00
Take a Class
Shaun: Take a class. Come to Startup Institute. Go to Hack Reactor. Do whatever you need to do. You should always be seeking opportunities to level up.
Because this is a market that’s continuing to rise, you probably can’t throw a rock without finding someone that wants to be more technical whether they want to be more technical or not. Find that person. Build your tribe. Help that group be accountable to themselves, so that you can be accountable to that group. So when you think about working your 9 to 5 that sucks and how bad you want to get a new job and how tired you are from working that job. It’s 7 do I want to go to happy hour or do I want to code and get better? Having the group ask where you are is like having an accountability partner.
- Go to Hackathons
- Give Talks
- Find a Mentor
- Blog (confusing topics)
These are all three things that I’ve already talked about. The blogging though. Blog. Pick something you don’t understand. Write it down. Build your own knowledge. You’d be surprised how much you’re building your own expertise.
- Specialize in Area
- Contribute in Open Source
- Read Hacker News, Reddit, and Subscribe to Newsletters
This is immersion, effectively. There’s going to be new things that happen. There’s new frameworks coming out all the time. You just don’t want to have nerd shame when you’re friends are asking you about new stuff. Stay up. Play with new things. This will make you better.
Hit the SF Scene - 1:29:38
- SF JS meetup
- Mobile Growth Hackers
- React JS Meetup
- Airbnb Nerds - Tech Talks
SF Job Newsletters - 1:30:52
- Who’s hiring? (hacker news)
- Sequoia Capital job board
Jake: I actually found Branch through hired.com. I really liked Hired because I was able to just get my profile down and say this is what I want. I got a lot of opportunities that turned into job offers. AngelList is pretty good. I got two interviews. Y Combinator is an incubator here in SF. The first of the month Hacker News posts something with tons of jobs called Who’s Hiring? Sequoia Capital job board is a good one too. There’s more.
Hit the NY Scene - 1:32:54
- Code Crew
- MEAN Stack NYC
- NY Tech Meetup
- BrooklynJS / ManhattanJS
- NYC Rails
- Hacker Hours
- Ruby Women
- Girl Develop It
Shaun: I want to give props to Code Crew. A lot of the inspiration for a number of these slides from some of our friends here in New York, Code Crew. What they do is provide that same study group community and training for people looking to get their start. MEAN Stack, if you get too deep into the Hacker News or Reddit conversation you’ll hear people beat up on Mongo and MEAN Stack as a result of it, but these guys are great as well. NY Tech Meetup is one of the oldest in New York and one of the biggest. BrooklynJS/ManhattanJS. I mentioned that. NYC.rb is a great Ruby community as well as NYC Rails. Hacker Hours is a community Aidan Feldman, previously of GitHub started. Ruby Women and Girl Develop It, I can name more of these organizations, but we absolutely need more diversity in tech. Let’s try to make sure the representation around the rest of our economy is similarly applied to tech as well. Digital.NYC is a good way to footprint the goings on here in New York.
NYC Jobs Newsletters - 1:35:45
- Gary’s Guide - garysguide.com
- Startup Digest - startupdigest.com
- TechCrunch - techcrunch.com
- Hackernews - hackernewsletter.com
- Charlie O’Donnell - thisisgoingtobebig.com
- Inside Startups - insidestartups.org
- NYTM Newsletter - nytm.org
Shaun: A lot of these you can get in other markets. Gary’s Guide and Charlie O’Donnell, I call out, they’re eponymous newsletters. If you’ve ever been to New York, Gary Sharma wears a red tie to every event. He’s the man. He knows everything that’s happening everyday in New York tech. He curates a list of events. Charlie O’Donnell VC at Brooklyn Bridge Ventures. He’s spent his whole life and career here investing in the tech community. Inside Startups, Aly Nicholas has built an amazing community for people trying to get into startups. NY Tech Meetup newsletter.
Liz: Quick question, for remote jobs, how would you stand out as a good candidate for a distributed team?
Shaun: How you stand out. One, I think you need to look at what makes a remote worker different and be okay with what that is. You need to show that you have enough responsibility and adaptability to be connected as a remote worker. Freelancing as well as remote working is going to be on the rise and continuing to grow. There are still a lot of organizations and structures that isn’t as accommodating for it. If you’re really interested in it, I recommend you read a book by the guys from 37Signals now Basecamp, called Rework, which talks a lot about that as well as Remote, another one of their books that digs more directly into their topic. People don’t trust you! If they can’t see you banging at the computer, how do they know that you’re working? Be active on Slack, use Google Hangout to connect with them on a personal level. If you just picked up the phone it would easily solve. With partial remoteness, if you can travel every now and then to be where the mothership is, do that. It reminds them that you’re not just an amorphous face.
Jake: I’d add it’s totally on you, depending on the environment. We have one remote employee and he’s really good at engaging in conversation. He’s out in Michigan and he sends pictures of the cranes outside of his window. It’s totally on you that you become involved because sometimes people can forget that you’re still there and part of the team.
Resources - 1:40:00
- CC Resources - http://codecrew.co/resources/
- CC Roadmap - http://codecrew.co/curriculum/
- CS50x - http://bit.ly/1s297Bj
- Data Structures & Algo - http://bit.ly/N4JrAN
- JS MDN - http://mzl.la/1lhv2uF
- Project Euler - https://projecteuler.net/
- Coder Byte - http://coderbyte.com/
- Code Wars - http://www.codewars.com/
- Ruby on Rails Tutorial - https://www.railstutorial.org/book
Additional Tips - 1:41:44
- Share your background
- Show why you’re qualified
- Share a few fun facts
- Send thank you emails
- Write a blog or program
- Revamp your online profile
- Dare to be different
Liz: Most companies require years of experience, if somebody has just come out of a coding bootcamp, should they still apply that says you need 2 to 4 years experience or a CS degree?
Shaun: There really ought to be a scale, when we say 2 to 4 years or 10 years of experience, what this means is you better be able to do this. If you’re a fast learner and you’re willing to work harder to get ahead, then you should be able to stand on your ability. Not all jobs are created alike. You might work on one small niche thing or you might work on lots of things.
Jake: Apply to all the jobs. Obviously, make sure that you can back it up. Don’t go applying to senior Java positions if you’ve never touched Java before. I got interviewed for a senior Rails position and I had never touched Rails. Some time people are willing to interview you, so why not throw your resume around. If it says junior, apply. It doesn’t matter what the qualifications are as long as you think it’s a good opportunity for you and you have a good chance of filling the other requisites.