First interview: Live coding, flatten an infinitely nested dictionary. Have to handle all edge cases like lists, dictionaries, None types, strs, ints, etc. Pretty simple, just need to code away and those edge cases. Interviewers were engaged. Second interview with engineering manager and tech lead: Mainly behavioral. Lots of questions about what I would do in a management position in a tricky situation (lack of motivation, projects running overdue, crazy internal politics, etc.). Not sure how this was relevant to an IC position but I did well here. Interviewers were very nice and interview was well structured, just not for senior IC positions. Third stage: Live coding 2. This stage was a tougher coding problem, although it was still pretty simple if you know graph algorithms. Interviewer dug into all design decisions (ex. why graph? why bfs? why not do this or that? etc.). Was a fun problem to solve and interviewers were fun to talk to. This also went well. Fourth stage: System design interview. Was asked to design a message queue (like Celery). Design started off with the language API, and then storage backend, and then to the worker management system. Went with a design where there was a controller process and worker processes. On each worker process two threads, one which communicated health checks to the storage backend (to store worker state) and the main thread that ran the work. This allowed for zombie process detection as well (controller could figure out from timestamps in storage backend). Interviewer was really nice and cheerful and was a very nice ping pong system design game that I enjoyed. After all of this however, I was told that the job is not aligned with my expectations from the role. I was pretty adamant about asking about what the role entails, and I felt like my expectations were on point. Feedback seems off but not wasting any more time on this, already signed another contract. Really liked all the people who interviewed me however. I asked about culture at every step, and the answers seemed to indicate: - Lots of internal changes due to leadership shift - Backend is very monolithic (Django + templates, trying to move to React + Vue) - Didn't seem like there was a chance to experiment with new technologies / microservices as much as other big scaleups I've talked to Leaving this warning here for others: super long process, very vague feedback.
Check out your Company Bowl for anonymous work chats.