An in-house recruiter from Form3 reached out to me on LinkedIn in early July 2020. I researched the company then submitted my CV and a cover letter online.
Their recruitment team reached out to me and I had a 30 minute phone call with a recruiter a day later. This was mostly them explaining Form3 and its practices, but a little about my experiences and my approximate salary expectations.
I was then invited to undertake a programming exercise which I could complete in my own time, but which was expected to take around 8-12 hours. This required designing and implementing a client in Go which would communicate with an API server (which they provided, including the test environment in a Docker container to run locally). The client had to implement GET, POST, DELETE verbs for a resource, and implement paging for a collection of that resource. Asides from testing libraries, no other external libraries were allowed in the Go code. The instructions were otherwise open-ended, allowing me to make a number of design decisions. I undertook this exercise over 2 weeks; I reckon it took longer than the estimated 12 hours, mostly because I was context-switching over the 2 weeks.
I liked that the take-home exercise was based on an actual, real-world like problem and it meant that there were no 'whiteboard' coding exercises in the interview process. It was more involved and comprehensive an exercise than some other take-home challenges I've done, and does take a longer time. I felt it was worthwhile putting the time into doing this exercise, even if my work didn't lead to the next stage in the interview, as it was good practice with working with a real-world API, and making design decisions about the client.
In the meantime I had a further 30 minute phone call with the recruiter in late July, where they went further into Form3's compensation structure and benefits. We discussed a little bit more about me working as a contractor abroad, rather than a permanent employee. This was because they did not as yet have a legal entity in my country of residence.
After I submitted the take-home exercise, it was reviewed by their engineers the following week. I was then invited to a 1.5 hour remote interview via video call in mid-August. This call was preceded by a 20 minute call a day or two earlier with the recruiter to explain their interview process. The interview consisted of three parts:
- Part 1 (30 minutes): I had to discuss my submitted take-home exercise and parts of the code and my design decisions were challenged.
- Part 2 (30 minutes): I was asked a number of questions about my knowledge of basic networking and API protocols. My experience with working remotely was discussed.
- Part 3 (30 minutes): I was presented a schematic diagram of a backend system, a problem was described (an outage in the system reported by a customer) and I was asked to ask a number of questions with the goal of identifying the root cause and how to resolve it. This part of the interview focused on the fact that on-call duty would be part of the role.
Each part was held with a different interviewer, either a senior engineer or engineering manager/director with Form3. In Part 3 I took the opportunity to ask the interviewer a number of questions about the company. We went into a lot of detail, and went over time - I appreciated the interviewer taking that additional time out of their schedule. I really appreciated the scenario in Part 3; this was based on a real-world scenario the engineer had encountered and allowed me to apply problem solving and systems knowledge.
I received a follow up phone call from the recruiter to get my immediate feedback to the interview and to describe the next steps and timelines. I also had the opportunity to ask a number of further questions about Form3, including their approach to D&I, opportunities for career progression in the future, etc..
I received another call a week later with an offer.