A recruiter reached out to me and immediately set up a web interview with an Engineering Manager based in Switzerland. He mostly asked questions about my experience and things I've worked on. He dove into some technical details of past projects, but nothing overly technical. The interview went well, so the next day I received an invitation for another web interview; this time, it was meant to be a technical one.
The technical interview was again via web, with two Senior Engineers from the Singapore office. The technical interviews started with about 10-15 minutes of chatting about past and current projects, and personal experience, before moving onto technical questions. The technical questions were not out of the ordinary and were mostly about OOP principles.
The background of the Senior Engineers asking questions was in Scala. Coming from the Java world, I found it a little confusing what exactly they were trying to ask, especially when we started talking about Lambdas and Functional Interfaces in Java or the Stream API. I ended up discussing parallel streaming and the overhead compared to sequential streaming, or the advantages and disadvantages of streams over loops. However, I was under the impression that the interviewers were expecting something else.
I was asked how I would refactor a codebase, so inevitably I had to mention Design Patterns such as Observer, Adapter, Factory, or Facade. Again, I was under the impression that this was not enough.
The team for which they were recruiting in Dublin was supposed to be using Scala and Akka, with no Java development. I was happy to hear that because I have a strong interest in Scala and was really pleased they would offer training to learn something new. They even asked if I had an interest in learning new technologies and if I was open to new stacks. Without hesitation, I said yes, as this is what I always do in my spare time. If at work I use Spring MVC, at home I experiment with Spring Boot with JWT tokens. If at work I use Oracle, at home I explore NoSQL, Cassandra, and other similar technologies.
In the end, I was asked to send over any code I had written myself. Since I work on multiple small projects in my spare time, I was able to email the next day a Spring Boot app which was a RESTful API implementation for a mobile app (Android and iOS). On top of that, I also sent the codebase of a CRUD app which was Spring MVC with AngularJS and Thymeleaf, including Spring Security, caching implementation, JPA and Spring Data for persistence, and HikariCP's implementation for connection pooling.
After two rounds of interviews, as described above, I never heard back from Autodesk, and this is really disappointing. I don't mind being told I failed or that I am not a fit for what they are looking for. As a professional, I expect to be treated as such. At the end of the day, I took time off work to attend two interviews, so I expect at least some feedback in return. This is really annoying, not to mention that I followed up several times and was only told that they had put "the status on hold." I might have believed that (although I am writing this review nearly two months after the interview), but a friend of mine recently interviewed with Autodesk for a similar role in Dublin with the same people from Singapore, making it hard to believe my status is still on hold. A simple "no thanks" would have been enough, to be honest. Again, being told "no thanks" is not the end of the world.
General OOP questions:
Code refactoring
The following metrics were computed from 1 interview experience for the Autodesk Software Engineer role in Dublin, Ireland.
Autodesk's interview process for their Software Engineer roles in Dublin, Ireland is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for Autodesk's Software Engineer interview process in Dublin, Ireland.