1. Initial Contact: The recruiter reached out, and we had a friendly chat discussing my background, experiences, and expectations. This part of the process was smooth and pleasant.
2. Take-Home Assignment: I was tasked with building a fully functioning microservice, complete with Docker setup, tests, and documentation. Completing this assignment took me three full nights of effort—quite challenging to balance alongside a full-time job and personal responsibilities.
3. Technical Interview: The interview was framed as an opportunity to "present and discuss the assignment," but that never really happened.
During the technical interview, there was no recognition or appreciation for the effort required to complete the assignment, which was disheartening. Rather than discussing the challenges, solutions, or the extra effort I put in, the focus was entirely on my approach to structuring the microservice.
The interview quickly devolved into a debate about architectural opinions, and while I understand that architecture preferences can vary, it felt like the interviewers were imposing their perspective as the only valid way to work. There was little acknowledgment that in software development, there is no "right or wrong" and the "optimal" solution depends on the context, scale, and scope of the project.
As the conversation stayed fixated on this single topic, we never got around to discussing key parts of the assignment, and that's really a shame because it undermines the time and effort spent on the assignment. It also missed the opportunity to properly showcase my skills and capabilities in solving real-world problems, which was the primary intent of the exercise