Candidatei-me online. O processo levou 3 semanas. Fui entrevistado pela Voxy (New York, NY) em dez. de 2017
Entrevista
These were the different stages of the interview:
1. Initial screening (Using Google Hangout):
Spoke to an Engineer at Voxy where we discussed my background and experience. This round was to see if I was a culture fit at Voxy.
2. Take home coding challenge:
Gave 48 hours to solve the coding challenge
3. Coding Interview:
Discussed the coding challenge solution with a different Voxy Engineer. Got an opportunity to talk about my thought process when working on the coding challenge. I was asked to add some new functionality. Overall was a very good experience.
4. On-site pair programming interview:
CTO interview - Quizzed about databases, and some technologies I worked on.
-- Lunch --
Pairing interview - Worked with three engineers for about an hour each. One of them was off-site(screen share). Worked on a couple of real stories from their backlog. The first one was very short, so picked up another one. Both stories were javascript based.
I felt the pairing interview was to see if I was a good team fit. It was fun to work with the engineers and they were very helpful when I was stuck.
I got a call from the CTO the very next day with an offer.
Perguntas de entrevista [1]
Pergunta 1
In the pairing interview, I was asked to add a commonly used component to their UI library
Candidatei-me online. O processo levou 3 semanas. Fui entrevistado pela Voxy (New York, NY) em abr. de 2018
Entrevista
Preface: I have been doing solo contract work for most of my career in software engineering. I'm a self-starter. I have been on small and large teams. Most large teams were reverse engineering code which doesn't provide the same environment as an actual software engineering team. I am looking to get on an engineering team and address this gap in my work history. I bring up this fact with every 1-on-1 session just to make it clear what I'm looking for and so I don't waste the companies time. I have had Lead roles before so I do not view myself as inexperienced but I am looking for self improvement and being on an actual engineering team is one area where I can become even better.
The process started with a basic 30 minute introductory phone call. A phone call with the head of engineering. Followed by a coding challenge which involved writing a small Python server and front-end. Afterwards was a review of the coding project (done remotely). Finally an on-site interview. The on-site interview consisted of speaking with two different people, lunch, and code pairing (3 hours with 3 people at the rate of 1 person/hour).
The first person I was supposed to speak with was working from home so I spoke with another product manager who seemed very disinterested and wanted to just move to the end of the session. The next person was the head of engineering whom provided some very nice problems and technical challenges discussion based off of recent technical problems they actually had. I really enjoyed speaking with this person. Then came lunch we went to a nice Middle-Eastern place. The food was wonderful and filling. However the lunch began to run over (luckily I had finished my meal) and headed back with another engineer who was my first code pair.
We made it back to the office and began the code pair 30 minutes late. What wasn't okay is that the code pairing time wasn't adjusted for this lateness. So out of the 3 hours I was given to code pair and submit actual code, I was whittled down to 2.5 hours. The code involved switching a SOAP Client to REST Client with no pressure on completion. However there were no tests for the SOAP Client to change so we spent most of the time writing tests. Each person I worked with had a slightly different grasp on the code base, ranging from little knowledge to medium knowledge (makes progress even slower). That's okay, but it's difficult to grab a handle on a code base when I only have 30 minutes to read the ticket, browse your files, and get comfortable with writing tests in the company style. Each engineer had varying levels of knowledge of the platform.
The company failed to communicate what I should prepare for. They use Django Rest Framework so I spent my time learning common problems with DRF and solutions. When it came time to code pair none of this knowledge was needed. For example, I was asked to debug and the company uses PyCharm. I am not familiar with PyCharm and it's debugging so I asked. Surprise! They don't use it and the code pair person was aggravated that I wasn't aware they used pdb and began asking me how good of a coder I was. I wasn't aware coding required reading minds. Please inform your candidates which tools they will need to know. It shouldn't be quite on-boarding level but things like pdb are definitely used there daily.
After the code pairing I had a debriefing with my recruiting contact. Asked a lot of questions and was sent on my way.
A few days later I was rejected. When I asked for feedback, my contact indicated they didn't have the notes on them and told me that the reason being that I didn't have enough team experience. This is a cop out and very weak explanation especially since I make it clear where my priorities lie. If this is the reason then none of the people I talked to were listening to me. Which is worse? My contact then offered to connect me with other recruiters they knew. I followed up on the offer and my contact wasn't serious apparently because they never responded back. What a way to crash land an experience with your company.
TLDR;
There is a theme through out the above review. It's lack of preparation. From the first one-on-one to the failed request of "What should I prepare for this interview (tools, frameworks, algorithms, other domains, etc)?" Prepare yourselves and others or you'll lose in the end.
Perguntas de entrevista [1]
Pergunta 1
General interview questions. CTO Interview questions involved specific issues with Django, which is the framework they use. The first being an issue with a database and causing large spikes on a query.