The author describes a Microsoft senior-engineering phone screen followed by three virtual-onsite rounds. The screen required a production-quality integer parser supporting arbitrary bases. The applicant advanced despite overlooking negative numbers.
Subsequent sessions covered reconstructing digits from word representations, converting hexadecimal input to an IPv4 address, discussing a dictionary for varied key and value types, and maintaining stable column names across repeated table updates. The naming exercise involved character replacement, case-insensitive uniqueness, and collision handling. A project-complexity question also appeared.
The author reports that one interviewer initially requested C# before allowing Java. Another accepted an explanation of a late-discovered naming edge case even though the attempted fix still had a bug. The process ended in rejection. The author was frustrated that language expectations had not been clarified earlier, while treating the interviews as useful practice.
Discussion
Loading comments…