← Back to Directory

Chicago

Mid-sized

Chicago is ambiguous as a company name and most commonly refers to the major U.S. city in Illinois rather than a specific tech firm. If referring to a business entity, insufficient information is available to describe its industry or offerings with confidence.

3 interview notes · updated Jul 2026

Chicago·Software Engineer·Onsite - Behavioral / Leadership

May 2026
Behavioral round at a Chicago firm for a new-grad SWE role. An engineering manager ran the whole thing and was really zeroed in on internship experience, specifically how you worked with people rather than just what you shipped.
  • Tell me about an internship or project experience where you grew the most. What specifically could you not do at the start, and what could you do by the end?
  • Describe a critical mistake you made. What were the consequences and what did you change so it wouldn't happen again?
  • What was the biggest obstacle you faced during an internship, and walk me through how you actually got through it?

“This one tripped me up because I kept wanting to say 'I learned a lot' and move on.”

View Post

Chicago·Software Engineer·Technical Phone Screen

May 2026
Coding interview for a software engineer role somewhere in Chicago. One problem, iterative dictionary merging, which sounds easy until you actually think through the nested dict case without recursion.
  • Given a list of Python dictionaries, write a function that merges them into one dictionary iteratively (no recursion). Later keys override earlier ones, except when both values are dicts, in which case you merge those too.

“I started confident because 'merge dicts' felt like a one-liner.”

View Post

Chicago·Software Engineer·Technical Phone Screen

May 2026
C++ new-grad interview that was basically a two-part coding gauntlet: implement UniquePtr and SimpleVector from scratch, then field some pretty pointed follow-ups on move semantics and exception safety. The whole thing felt like they wanted to see if you actually understood RAII and ownership, not just whether you'd memorized the STL API.
  • Implement a move-only smart pointer class template that owns a single heap-allocated object, supports get/release/reset/dereference/arrow operators, and correctly handles self-move-assignment without leaking or double-freeing.
  • Implement a dynamic array class template with separate size and capacity tracking, using raw untyped storage so you never default-construct unused slots. Must support push_back, pop_back, reserve, clear, copy, and move operations.
  • Explain the difference between copy semantics and move semantics, and point to specific places in your two implementations where each applies. Why is the smart pointer move-only while the vector supports both?
  • Why does the standard vector require a noexcept move constructor on T to actually use moves during reallocation? What breaks with the strong exception guarantee if moves can throw?
  • How would you add custom deleter support to your smart pointer without paying any runtime overhead for the common case where you just use the default delete?
  • Which operations on your vector implementation invalidate iterators and references, and how does that compare to the behavior of std::vector?

“I got the basic structure down pretty fast but fumbled on the sequencing inside move assignment.”

View Post