A very straightforward takehome task with lots of opportunities to show off your knowledge. Theoretically possible to complete in an hour, but would likely take longer if you want to submit a complete and robust solution.
After completing the takehome satisfactorily, the candidate is invited to a 1-hour video technical interview with a coding employee. If the candidate passed that interview, they are invited to a video interview with the CEO, then 2x30 minute interviews with the rest of the engineering team.
Lots of questions about Python trivia, with some light coding. The stickler is that most of the questions were Googleable and don't seem to be representative of any job. For example, a better method of technical interviewing remotely would be to ask the candidate to add a feature to the technical solution that was submitted, or have the candidate do a code review on code they'd likely encounter at the company. Pair programming with the interviewer would also be a better way to assess fit.
I was unfortunately interviewed by an employee who had only been there since March, so we were unable to meaningfully discuss the company engineering culture or how performance is evaluated.
However, the most worrying part of my interview was when I asked questions about the company engineering culture and got many red flags, which I've marked below. According to the interviewer:
- this company does no code review 🚩
- bugs are not tracked 🚩
- Jira feature tickets are either filed as an afterthought or not at all 🚩
- code quality and lack of tests are (in their opinion) the biggest engineering issues at the company 🚩
- there is no backlog 🚩
- little time is spent on bugfixing, with most employees working on feature addition 🚩
- the number of other candidates for the position was unknown to them (interviewing of candidates was split between employees)
- 30-minute long daily standups 🚩 and 1 hour weekly team priority meetings
- They were unfamiliar with Agile 🚩
- team is still struggling to figure out what their clients need and what product they're building, with many proof-of-concept projects
Some of the good things mentioned were:
- Management (CEO) understands that the development process takes time and pushback is negotiated into a solution.
- work-life split is good – you will not be on call nor contacted during vacation
- office equipment allowances are granted if you ask
- hierarchy is flat and teams are self-organized (although I see this as a weakness more than a good thing)
Overall, it sounds like software development is at best ad-hoc, and at worst cowboy coding. From my point of view, it sounds like Smart Steel Technologies does not need a backend developer or another machine learning engineer (which seems to be the predominant job title there). It is more in need of project/technical managers with a strong understanding of software development methodologies. This might explain why this posting first showed up on their LinkedIn feed in January – most developers would run away from these conditions.
Make sure to ask questions about how projects are managed, if Agile methodology is followed, and if code is reviewed before entering production. The answer to all of these was no when I interviewed in June 2020.