This post was contributed by Hart Neray, a Software Engineer at Talla.
My first software engineering job out of college was the best possible job for my career — and I didn't realize at the time how lucky I was to get it. If I had to do my post-graduation job search over again, I wouldn't pick a different employer, but I'd approach a lot of things differently to make sure I ended up at a place like Talla.
Like many recently graduated software engineers, I had a general sense of what I wanted in a first job: an interesting product, tough engineering problems, an opportunity to learn, and coworkers who cared about their work but also didn’t take themselves too seriously. That's a good starting list, but it turns out it didn't address every issue I should have cared about.
Below, I outline five things every junior software engineer should look for in their first startup job.
#1 - A senior, diversely-skilled engineering team
First, let me say I understand the appeal of wanting to work with other young engineers. After all, Facebook was started by a bunch of developers before they even graduated from Harvard. But (spoiler) most startups don't turn out like Facebook, and there are a lot of advantages to joining a company with experienced engineers already on the team.
I joined Talla as the first junior engineer. At the time, there were three senior engineers, each with a specialty of sorts (broadly: front-end/UI, backend/ops, full-stack + data science). There’s tremendous value in having strong, experienced mentors. Because I was the only junior engineer, I could ask questions (a lot). There’s always someone I can go to. On top of that, our company has been poised to adapt to new technological and product challenges because we have the depth and distribution of skills to change it up. Finally, because we're a small team, there aren't layers of management and compartmentalization between me and my peers. (I could hit most of them with a Nerf dart from my desk if I had to.) So, not only do I have a number of skilled mentors around, but I actually have access to those mentors on a frequent and welcome basis.
Questions I’d ask in a job interview: What’s the ratio of senior engineers to junior engineers? Do the engineers have varied areas of focus and what are they? How available are senior engineers to mentor and assist junior developers?
#2 - Exposure to a new and varied tech stack
Be wary of extremely rigid startups. Are you going to be put in a box, or have the opportunity to explore different languages and technologies? Our stack is Ruby on Rails, Go, and Python. Recently, we’ve also been using React/Redux for our web front-end. If we need to switch to a new tool, we won't make the change lightly, but we aren't wedded to our technical debt, either. I’ve been focused on the Rails side, but had the chance to touch the React/Redux stuff over the last few weeks, too. Don’t spread yourself thin, but, if you’re like me, there’s a good chance that you still don’t know where you’ll want to specialize. Make sure you’ll have the chance to explore!
Questions I’d ask in a job interview: What’s the tech stack? Where do you see me starting, and will I have the opportunity to work in different parts of the codebase?
#3 - Close interaction with the rest of the company (not just engineers!)
Small is good. Having the majority of the team local is also good. I had the original (mis)conception that a bigger company with pre-established avenues for new-hires was what I wanted. I’m sure that has its benefits, but I’ve found that being part of a smaller team has given me direct exposure to product, sales, customer success, data science — all these areas that I might never have touched at a bigger company. Whether it’s an informal conversation next to my desk between the CEO and Chief Data Scientist, or weekly product meetings that I can sit in on and offer my perspective, I’m learning more than just how to code.
Questions I’d ask in a job interview: What percentage of the team is local? Who goes to which meetings? Would I be able to sit in on sales calls, product discussion, etc.?
#4 - Management’s investment in your success
My manager and I have meetings every other week to check in. Within my first couple months, our CEO invited the two other younger members of the team and myself to get our feedback on creating an attractive workplace for millennials — as well as offered us a direct line to give him our thoughts on the company as a whole. We’ve had informal talks for the more technical people on data science and engineering topics like React and TensorFlow. You want to know — do these people care if I succeed?
Questions I’d ask in a job interview: What sorts of practices for mentorship and professional development are in place? What lines of communication are open? Has my manager managed anyone before and how did he/she help them to be successful?
#5 - The right culture, with the right people
Most companies pride themselves on only hiring people that are a good "cultural fit," but that door swings both ways. Make sure the company is a good fit for you. Be yourself in the job interview. I know during other interviews I was sometimes so concerned with impressing the people I was talking to that I did my best to fit into what I thought they’d like in an employee. Try the opposite; if you're the kind of person to regularly crack jokes – go ahead! It’s much better to find out early whether you’re going to enjoy spending eight or nine hours a day alongside these people for the foreseeable future.
Questions I’d ask in a job interview: This is a tough one. Act as you would if you worked there. If they don’t like you, or you don’t like them, then move along; it’s probably not the right fit.
Bottom line, I'm really happy (and really lucky) I got my first job at Talla. I think these five sets of of questions will help you be as fortunate and successful in your first software engineering job search as I was. Maybe you agree with me; maybe you think I could not be farther from the truth. Either way, drop me a line in the comments.