Author: Rachit Khare, Full Stack Developer & Project Manager
Greetings future FreshWorkers! My name is Rachit and I’m a developer at FreshWorks Studio working from our offices in Victoria, BC (we actually have three offices now - the others are in Vancouver and Seattle, so sometimes I’m there too). If you’ve never heard of us before, we’re software developers specializing in iOS and Android apps (follow us on Facebook and Twitter!). We’re constantly growing, and always in search of passionate developers to join our team, but sometimes some really amazing people come in for a tech interview and don’t really know what to expect. Since I’ll be the one testing your technical know-how from a developer perspective, I thought I’d share what we’re looking for in candidates, so that when you get the call, you’ll already have an idea about how to wow us.
Ready to learn the inside secrets to how we ‘re making a kick-ass team with some of the best and brightest in the business? Here’s where it starts:
The FreshWorks Hiring Process
Like most companies that want to make sure they’re hiring the right people for the job, FreshWorks has 4 hiring rounds: a pre-screening call, a technical interview, a take home selection test and then a final interview with our HR Manager and one (if not both) of the founders. We take the time to really get to know those who interview with us, and we really try to make sure a potential new member is introduced to a few team members during the interview process because we want you to be as excited about us as we are about you, and we want to make sure both parties feel the fit is right before any contracts get drawn up.
I personally tend to jump in at the technical interview stage to provide feedback and decide if you’re ready to be sent a technical project for a web application.
And since you need to impress me in order to show off your skills on a technical project, I thought I’d share how I, a developer, approach tech interviews along with some tips on how you can really shine during the process:
1. Show That You’re Ready to Become Part of a Team
We’ll be spending a lot of time together on some really cool projects, so I always ask myself this question during interview: are you someone I can work with?
Collaboration is key at FreshWorks, and that starts right in the tech interview. Don’t turn our time together into a Q&A! Rather, ask for clarity on questions, follow up and expand on ideas, and get engaged. Think of the interview as a conversation with lots of back and forth.
Also, show you are malleable and humble. There may come a time when you and your interviewer might disagree (sometimes passionately) on a topic. Different perspectives are always encouraged (in the end, seeing things from different angles end up helping us solve problems and find innovative solutions), but keep an open mind that humility is a core value at FreshWorks.
If you are a technical candidate, don’t forget to put a link to a sample repository on GitHub/Bitbucket on your resume. I will get a copy and I will look for this! I’ll work to validate what you’ve written in the interview and I prefer to do as much pre-research on you as you’ve done on us. It will give me a good idea of where to start and what questions to ask, and you’ll know coming in that your sample repository will be part of the conversation, which will take some pressure off of wondering where the interview will go and what might be covered.
Another core value at FreshWorks is excellence. Whatever you give us, whether it’s a resume or a project, make it easy for us to absorb. If your resume is targeted more towards the pre-screening with HR (as it should be) your Github repo is the chance to make an impression on your tech interviewer. Clear instructions in the README.md and comments on your code will go a long way. In fact, if you just do those 2 things, I’m personally 70% of the way there to recommending you to the next round. Now, how easy was that?
2. Know What Your Role Entails
I’m typically involved in hiring Junior and Intermediate developers. If you come across 2 job postings, one for each of those positions for full stack development, and don’t know where you quite fit in, keep in mind this is what I end up looking for:
I look for enthusiasm in junior programmers. Show me you’re inquisitive. If I bring up a technology you haven’t heard of before, ask me about it. I’d love to tell you more. We’re passionate about tech at FreshWorks and we’re specifically looking for people who are excited about technology and ready to ask questions (and collaborate!) as they learn and grow.
When it comes to intermediate developers I’m looking for both breadth and depth of knowledge. At the intermediate level, I’m looking for you to know your stuff across the software development cycle. I may not be expecting you to know specific technologies or stacks but I will expect you to know which realm they’re in. For example: If you don’t know much about docker, you should at least know about virtual machines. You don’t need to know anything about Laravel and Eloquent but you need to know what an MVC framework or an Object Relational Mapper (ORM) is and you should have used one before. On the front-end side of things, if you haven’t worked with one of React/Angular/VueJS, get ready for an uphill battle.
3. Know How to Answer Questions
Interviews can be stressful, and sometimes interviewees try to hurry through, or don’t take the time to expand on their knowledge to give me insight into how they think or what they know.
I learned something valuable from our HR manager that I think interviewees can really benefit from when stepping into any interview: always answer questions using the STAR approach. STAR stands for Situation, Task, Action and Result. For example, if I ask if you have developed a full MVC application before, you could answer with a simple “Yes”. But a better answer might be: “Yes, I built a blog app using a MEANstack”.
If you really want to impress me, try for a STAR answer:
“Yes. When I was applying for jobs and writing my resume, I took the time out to make a sample project to showcase my abilities and stand out from the competition. I chose a blogging application which captures the basics of what I wanted to demonstrate like CRUD operations, authentication, and authorization. I used a LAMP stack and deployed it on AWS. My MVC Framework was Laravel with VueJS and Bootstrap 4 on the front-end. I began by defining the data model with associations and then incrementally built up the Controllers and Views as I went along. The project includes RESTful API’s along with Unit Tests using PHP Unit. You can view it on Github — the link is there in my resume.”
Now that’s an answer we can have a real conversation about! What I like about this is that it takes care of some of the other questions I would have asked such as “Have you worked with AWS before?” but more importantly now it’s a chance to dig deeper into your experience. A range of opportunities has presented itself for us to carry on from this point. I can talk about unit testing, or thoughts on VueJS. If I were to look at your repo right now I might have an idea of where I’m most likely to find bugs, and so much more.
It may take a bit more time and preparation, but get ready to answer questions in depth, with examples, so we can really dig into your knowledge sets. It will make things much more interesting for both of us.
4. Be Ready to Also Ask Questions. Lots of them.
I always give time at the end for an interviewee to ask me any questions they may have. This is your opportunity to make an impression; and if the interview went badly, to salvage things. But don’t feel you have to hold all of your questions until the end - also feel comfortable enough to ask questions along the way. For me, the best questions are those that are beneficial to the both of us. They also don’t have to be strictly technical in nature. I’ve had many people ask me about “how is it like working there?” or “what do you love most about working at FreshWorks?” These are good questions and I’ll answer them enthusiastically.
I love working at FreshWorks, and I want to continue to grow a team that’s as passionate about putting out the best work in the industry – and that starts with open communication and a readiness to grow and collaborate together in a supportive, fun environment. At the end of the day, it doesn’t matter if you know absolutely everything about every program under the sun, I’ll be assessing if you have what it takes to be a part of our team – and if you’re excited about what we do.
In summary, if you’re reading this as a first step in prepping for your interview, don’t forget to:
Treat our meeting like a conversation,
Understand the role you’re applying for and approach our conversation accordingly,
Use questions as an opportunity to tell stories about your past work, and
Don’t be afraid to ask lots of questions yourself.
Good luck, and I’ll see you soon!