An external recruiter contacted me about a remote Senior Java Concurrency Engineer role. It looked interesting, so I decided to apply.
The 1st interview was a "pre-screening". This was scheduled to be a 1 hour long call with an engineer. This was interesting talk with some questions and a concurrency related coding problem. But, the interviewer had way too many questions / problems for the 1h time window, so we ended up over time with (!) 45 minutes.
The 2nd interview was "tech interview" with 2 engineers. They came with 3 problems: the 1st was a concurrency related coding exercise, the 2nd was an algorithmic problem involving working very large files, while the 3rd involved designing a distributed protocol for a system. The 2nd and 3rd problems were open ended problems. Given that, I tried and managed to come up with valid solutions for both problems. However, the communication with interviewers felt a bit sluggish, and I had a hard time to get any intermediate feedback with were they wanted to go with the discussion.
After the fact, I realized they had some specific solutions in mind. They were not that open to other perfectly valid solutions, which caused the problem solving process to get a bit sluggish. This was also mostly in line with what they wrote in their rejection feedback.