I am deeply saddened to report that this weekend, far too soon, we lost Gor Nishanov: a friend and colleague, an extraordinary software engineer, and a long-serving member of the C++ standards committee.
Gor was always intelligent and witty, but above all he was kind and generously helpful to others. I especially appreciated the times that he quietly took me aside to offer advice when he could see I was making mistakes at work or in the ISO C++ committee we both attended; Gor’s frank advice, delivered with deep kindness, always helped me to do better.
I had the great privilege of working with Gor on the Microsoft Visual C++ team for about a decade, while he built coroutines and other projects. After sustained design and programming success during his years in the Windows division, he came to our C++ team excited to take the “await for C++” work forward, and that he did: For many of you, Gor’s biggest impact on your careers will be that he was the architect of Standard C++ coroutines. Gor did the years-long uphill work of design iteration and consensus-building needed to bring coroutines from his early “resumable functions” papers in 2014 through to their final form added to ISO C++20. Along the way, he implemented them in two different compiler toolchains, Microsoft Visual C++ and Clang/LLVM, which was a ton of work on its own, and the proof that the design was real and shippable.
But here I need to point out a perfect example of how Gor was special: He didn’t just advance his coroutines proposal; he repeatedly spent serious, late-night time helping committee members at other companies improve their coroutine papers that competed against his own. He helped them make their rival designs and implementations the best they could be, so that the committee could choose the best possible one of the available designs, whether it was his or not. That’s a rare level of professional commitment to intellectual honesty, demonstrated through costly personal effort, that should be a model for all of us. And it won hearts; I don’t know anyone, including the authors of the coroutine proposals that ended up not being selected, who had less than the highest respect for Gor’s integrity and his sincere desire to be helpful.
Since C++20 shipped, Gor continued to shape the future of asynchronous programming in C++ and be involved in other projects that helped programmers inside and outside Microsoft write modern async code. In the ISO C++ committee, he was most recently a coauthor of the proposal for adding concurrent queues to the C++ standard library, contributing to revisions 14 through 19 of that proposal in 2025 and, just like Gor, providing a partial implementation.
Gor was an outstanding developer, and an exceptional human being. He will be missed and fondly remembered by all who knew him.
