Adjunct Professor, Masters Program in Computer Science
- Senior Principal Engineer at Amazon
Michael is a Senior Principal Engineer at Amazon in the Development Tools group and a Full Adjunct Professor of Computer Science at the University of Chicago.
Before joining Amazon, Michael was a Fellow, VP at Symantec, the world's largest Cybersecurity firm, where he led the development of a wide array of cybersecurity technologies including a major anti-rootkit technology now protecting over one hundred million computers and Symantec's Authoritative Data Lake, one of the world's largest security data lakes that was use to discover the Russian Dragonfly attack on the US energy grid.
Before joining Symantec, Mike founded Geodesic Systems, a venture-backed self-healing software startup. At Geodesic, he also led the design and implementation of Great Circle, a product that automatically increased the performance and reliability of existing computer programs. Great Circle was both sold directly and OEM'ed by IBM and Sun, later winning Software Development Magazine’s Product of the Year award in the Libraries, Frameworks, and Components category. Geodesic was later purchased by VERITAS where Mike became a Chief Technologist for VERITAS' Application Performance Management division.
Mike has been involved with programming languages since the 1980s when he helped write one of the first commercial C compilers for the original IBM PC and is a long-time member of the ANSI/ISO C++ Standards Committee, where he has contributed over 50 standards proposals, several of which are now important parts of the C++ language. He has spoken frequently in both Academic and Industry settings, including Invited Keynotes at the Shanghai and Beijing C++ Summits, Best Poster award at CPPCon 2017, and many others. He is a member of the board of directors at the Spertus Institute.
MASTERS PROGRAM ENDORSEMENT
“The CSPP provides a solid background in computer science with a focus on the skills necessary for professional success. Most of the engineers I encounter professionally picked up most of their CS and programming knowledge “on the street,” and their lack of theoretical grounding makes it difficult for them to ever become architects. By the same token, many computer scientists lack the practical programming and process skills to shine professionally. In my opinion, the CSPP does a superlative job of developing both a solid grounding in computer science and the practical coding and process skills so necessary for professional success.
Finally, the student body at the CSPP is very diverse, ranging from strong programmers who are already architects to people still developing fundamental programming skills. I design each lecture to be sure that each student finds something that is new and challenging to them as well as something that is accessible and reinforcing."
Michael first worked as a professional programmer in the 1970s and is still advancing in his career today. His class contains close examination of concrete examples of projects that have succeeded and failed to help deduce timeless principles. Many of these are followed up long-term so students can understand how to create software for a changing world.
His goal is to not just provide textbook knowledge about C++, but also to talk about what is seen in the industry, when companies hire engineers, and other upcoming trends.
Michael provided us an example of how he incorporates real world lessons into the classroom. "As just one example, I started teaching C++11 in the C++ sequence starting in 2010. My students could go back to their employers or potential employers as the domain experts in this “whole new language” that all of their engineers will be adopting, with extensive knowledge of the pitfalls and motivation gleaned from our years designing C++11 in standards meetings. New and important skills like this can help MPCS students become critical resources to their professional organizations."
- Boehm, Spertus, Garbage Collection in the Next C++ Standard. ISMM, 2009. http://www.hpl.hp.com/techreports/2009/HPL-2009-360.html
- Over 30 C++ Standards Proposals at http://www.open-std.org/jtc1/sc22/wg21/docs/papers/, including
- Spertus, Use Cases for Compile-Time Reflection, N3403=12-0093, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3403.pdf
- Spertus, Type Traits and Base Classes, N2965=09-0155, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2965.html
- (this proposal was recently added as a g++4.7 extension)
- Spertus, Seymour, Class Member Initializers, N2426-07-0296, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2426.htm
- (This proposal is now part of C++11)
- Schneider, Spertus. A Simple, Fast, and Compact Static Dictionary. ISAAC 2009, Honolulu, Hawaii, 2009. Proceedings. Volume 5878 of Lecture Notes in Computer Science, pages 852-861, Springer, 2009.
- Gustavo Rodriguez-Rivera, Mike Spertus, and Charles Fiterman, "A Non-Fragmenting Non-Moving, Garbage Collector", ISMM98 International Symposium on Memory Management. http://www.cs.purdue.edu/homes/grr/ISMM98-grr-mps-cef.pdf
University of Chicago, B.S./M.S. Mathematics, 1984
Cohen Prize for best overall undergraduate mathematics performance
Meyer Prize for best performance on Masters examination
- Princeton, Stanford, UCSD, Berkeley, Graduate Student and Visiting Scholar in Mathematics