I applied online. I interviewed at balena in Jun 2017
Interview
Coding test went to two rounds of technical interviewing over video chat. Both interviewers were very nice and helpful. The questions weren't overly difficult, and they helped me out when I got stuck. There were some additional follow up tasks for things I didn't have time to get done in the meetings. They were super responsive when I needed the process sped up for personal reasons.
After my application the first auto responder email hit my inbox with an assignment. The task was to write a web application for a home automation light controlling system with their react component library
Due to traveling and not having my laptop with me I was not able to complete it, which I wrote their HR person. Soon I received another automated email that they went with another candidate, which was fine.
A couple of weeks later I saw that they're still hiring for the same position so I asked if I can still tackle the assignment. Then the HR person wrote manually for the first time that we're probably not a good fit as there're likely some "communication problems"
Interview questions [1]
Question 1
In hindsight I feel lucky to not have gotten to that point
Disclaimer: I respect Resin and the service they provide developers, which I is why I wanted to join in the first place. This is only a review of their interview process and not the company as a whole.
I was invited personally to an online coding test straight away. The instructions encouraged me to fully answer the questions with proper documentation and testing, to show my process. The questions were easy (mapping lists, vanilla JS classes, etc) but the time limit was too short in my opinion to complete everything with proper docs and tests, including edge cases.
Since I didn't have a chance to actually speak with anyone, I tried to follow up with my interviewer about challenges at the company and trends in microservice and client architectures, etc, but what I received in reply was a form rejection letter and no further interaction.
My advice is not to approach these timed tests as an engineer solving real-world problems (designing in advance, documenting and testing as you go...), rather, as a competitive programmer (memorize test problems, hack out code, test after the fact, <insert more bad habits>) . Although I'm not sure what that says about the teams you end up working with.