You are the lead SDK engineer at Discord. Your team ships a native C++ library that is consumed by the Windows, macOS and Linux desktop clients. The library is closed-source and distributed only as pre-built shared objects / DLLs. Discord’s client update cadence is weekly, but the SDK must remain binary-compatible with every client that was built against any SDK version released in the last 24 months. You are not allowed to force client recompilation. During the phone screen, walk through the design choices you would make so that the SDK can evolve (add new features, fix bugs, improve performance) without ever breaking ABI compatibility. Be ready to discuss concrete examples: adding a new virtual method to an existing class, changing the size or layout of a public struct, exposing a new template instantiation, removing a previously-inline function, and shipping a brand-new C++17 interface while still supporting clients compiled against the C++14 headers you shipped last year. The interviewer will push you to explain why techniques like the pimpl idiom, stable C interfaces, symbol visibility, and explicit instantiation live in your toolbox, and when you would (or would not) use each one.