<<

MICHAEL D. SHAH, PH.D. CURRICULUM VITAE

http://www.mshah.io Somerville, MA 02145 [email protected]  [email protected]

PERSONAL • Last Updated: September 22, 2021 • Citizenship: U.S.A. • Title of Thesis for Most Advanced Degree (Ph.D.) – Understanding and Tuning the Performance of Synchronized Methods in Java with Program Analysis and Software Visualization Tools • Principal Fields of Interest: – Computer Systems (Concurrency and Performance) – Program Analysis – Software Visualization – Computer Graphics and Gaming (Data Structures)

EDUCATION July 2017 Ph.D. Department of Computer Science Engineering Tufts University May 2013 Department of Computer Science Engineering The June 2011 Bachelors of Science Department of Computer Science Engineering

ACADEMIC APPOINTMENTS/EMPLOYMENT

• 2018-Present, Assistant Teaching Professor1, in Khoury College of Com- puter Sciences • 2017-2018, Lecturer, Northeastern University in College of Computer and Info Sciences • 2017, Lecturer, Tufts University in Computer Science Engineering Department

WORK EXPERIENCE • 2020 Part-time Consultant, Senior 3D Graphics Engineer, 4D Pipeline • 2017 Part-time, Graphics Engineer, Oblong Industries • 2016 Intern, Graphics Software Engineer, Intel Corporation. • 2015 Intern, Compiler Engineer, Sony Computer Entertainment America

1Typical promotion to this rank takes 3 years at lecturer level. • 2014 Intern, Concurrency Engineer, Intel Corporation • 2013 Helpdesk Representative, Tufts University • 2013 Simulation and Modeling Programmer, Medical Center • 2011-2012 Research Assistant, Tufts University • 2011 Intern, Validation Engineer, Intel Corporation • 2010 Research Intern, Health and Sciences University • 2009-2011 Undergraduate Research Assistant, Ohio Supercomputing Center • 2008-2010 Java/C++ Help desk, The Ohio State University • 2008 Intern, Web Developer, StudioCT • 2005-Present Freelance Game Programmer, The Game Creators

PAPERS IN PROCEEDINGS OF REFEREED CONFERENCES 1. R. Toppur, M. D. Shah “Attack at Dawn: Cracking Codes with CUDA ” 2021 eduHPC, Missouri, United States, 2021. 2. Y. Sun, Y. Zhang, A. Mosallaei, M.D. Shah, C. Dunne, D. Kaeli “Daisen: A Framework for Visualizing Detailed GPU Execution” 2021 EuroVis, Zurich, Switzerland, 2021. 3. Z. Casey, M. D. Shah “Combating Run-time Performance Bugs with Performance Claim Annota- tions” 2020 Symposium on Software Performance (SSP), Leipzig, Germany, 2020. 4. M. D. Shah, “Lib Metamorphosis: A Performance Analysis Framework for Exchanging Data Structures in Performance Sensitive Applications” 2019 IEEE International Conference on Soft- ware Maintenance and (ICSME), Cleveland, OH, USA, 2019, pp. 379-381. 5. E.C. Sheffield, M. D. Shah, “Dungeon Digger: Apprenticeship Learning for Procedural Dungeon Building Agents”, Proceedings of the 2018 Annual Symposium on Computer-Human Interaction in Play Companion Extended Abstracts, 2018. 6. M. D. Shah, S. Z. Guyer, “Iceberg: A Dynamic Analysis of Java Synchronized Methods Investi- gating Runtime Performance Variability”, Proceedings of the 7th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis, 2018. 7. M. D. Shah, S. Z. Guyer, “Iceberg: A Tool for Static Analysis of Java Critical Sections”, Proceed- ings of the 5th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis, 2016. 8. M. D. Shah, S. Z. Guyer, “An Interactive Microarray Call-Graph Visualization”, IEEE Working Conference on Software Visualization, 2016. 9. M. D. Shah, S. Z. Guyer, “Critical Section Investigator-Building Story Visualizations with Program Traces”, IEEE Working Conference on Software Visualization, 2016.

POSTERS PRESENTED AT REFEREED CONFERENCES 1. 2017 PLDI - Iceflow A Dynamic and Data Flow Analysis of Critical Sections 2. 2016 IEEE VISSOFT, An Interactive Microarray Call Graph Visualization

AWARDS, SCHOLARSHIPS, AND HONORS

• 2019 Northeastern University Teaching Inquiry Fellow – A year long series of teaching workshops, readings of literature, and development of pedagogy. • 2016 Tufts Ignite Research Talks, 3rd Place Winner – Campus wide research talk presentation awardee • 2016 Tufts Graduate Institute for Teaching Fellowship (GIFT) Awardee – Selective program with an intensive series of teaching workshops, and teaching during the following semester. • 2016 Tufts Outstanding Graduate Student Organization (Founder) – Computer Science League of Learning (CSLOL) was a newly found group for graduate stu- dents. • 2015 Tufts Ignite Research Talk, 3rd Place Winner • 2015 Outstanding Graduate Student Service Award • 2014 Programming Languages Mentoring Workshop Scholarship Awardee • 2011 GEM Ph.D. Graduate Fellowship Awardee • 2010 Choose Ohio First for Scholarship Award Winner

GRANTS AND FELLOWSHIP External Research Grants • XSEDE Empower Grant, June 2020 — Received $4500 – NSF XSEDE funding for one undergraduate students to work on ”A Full Program Cache Profiler for High Performance Applications“. • XSEDE Empower Grant, January 2020 — Received $1500 – NSF XSEDE funding for one undergraduate students to work on program analysis and building performance assertion profiler. • Faculty Research Award, November 2019 — Received $75,000 – Project Title: Intelligent Data Structure Swap • Applied Nov ’19 (not received) Mozilla Research Grants 2019H2 — $40,000 • XSEDE Empower Grant, September 2019 — Received $5700 – NSF XSEDE funding for three undergraduate students to work on semester long research projects on cache-oblivious data structures and program analysis. – NSF XSEDE funding for one undergraduate students to work on program analysis and building performance assertion profiler. • XSEDE Empower Grant, May 2019 — Received $5600 – NSF XSEDE funding for three undergraduate students to work on semester long research projects on cache-oblivious data structures. • XSEDE Empower Grant, January 2019 — Received $1500 – NSF XSEDE funding for two undergraduate students to work on semester long research projects on high performance . • NVIDIA GPU Grant, June 2018 — Received $1299 • Google Cloud Grants, June 2018 — Received $7100 Internal Research Grants • Mathworks Mini-grant (Internal to Northeastern) (Applied - not received) $17,400 • Tufts University Research Competition Awardee, Fall 2016 — $800 • Tufts University Research Competition Awardee, Spring 2016 — $400 Travel Grants • 2017 ACM SIGPLAN PLDI Conference on Programming Language Design and Implementation Travel Grant Awardee • 2017 Boost Foundation Travel Grant Awardee for CPPCON 2017 • 2016 ACM SIGPLAN PLDI Conference on Programming Language Design and Implementation Travel Grant Awardee • 2013 ACM SIGPLAN PLDI Conference on Programming Language Design and Implementation Travel Grant Awardee Misc. Grants • 2021 Northeastern University Full-Time Faculty Professional Development Fund (FFPDF) award – $1800 • 2019 Northeastern University Full-Time Faculty Professional Development Fund (FFPDF) award – $1800

GRANT REVIEWING COMMITTEES • 2021 XSEDE Empower Grants Reviewer 2021 – Reviewed grant applications for undergraduate research for the XSEDE Empower program in collaboration with the Shodor Institute and the NSF.

CONFERENCE ACTIVITY/PARTICIPATION

• 2018 Game Developers Conference (GDC) Conference Associate • 2017 ECOOP Summer School on Programming Languages scholarship • 2017 Programming Language Design and Implementation (PLDI) Student Volunteer • 2017 CPPNow Student Volunteer • 2016 Programming Language Design and Implementation (PLDI) Student Volunteer • 2015 Programming Language Design and Implementation (PLDI) Student Volunteer • 2013 Programming Language Design and Implementation (PLDI) Student Volunteer

INVITED TALKS AT REFEREED VENUES • 2021, CPPCON 2021 — The Factory Design Pattern • 2021, CPPCON 2021 — The Necessity of Concurrency • 2021, CPPCON 2021 — The Power of Pointers • 2021, NDC Tech Town 2021 — How I Taught Modern C++ - One Pixel at a Time • 2021, Inaugural Illinois Summer Teaching Workshop — Evolving the Course Website and Lecture for Online Teaching • 2020, CPPCON in Auroroa, Colorado — Back to the Basics: Design Patterns • 2020, EuroLLVM in Paris, France — Implementing Common Compiler Optimizations From Scratch (Accepted–conference cancelled for COVID-19) • 2019, ACCU Autumn in Belfast, UK — Introduction to Cache Oblivious Algorithms • 2018, CPPCON in Bellvue, WA — Let’s Intercept OpenGL Function Calls...for Logging! • 2018, FOSDEM in Brussels, Belgium — Introduction to LLVM • 2013, PLDI(Fun and Interesting Thoughts) in , WA — Hot Streak Cold Streak Program- ming

INVITED TALKS • 2021, May 11, 2021 at Boston Fusion — Game Engines - What problem at you trying to solve? • 2017, February at Institute of Technology — Introduction to LLVM Performance Engineering Course Lecture • 2016, November at Massachusetts Institute of Technology — Profile Guided Optimizations, LLVM Seminar • 2016, October at Massachusetts Institute of Technology — Introduction to LLVM, LLVM Seminar • 2016, May at Pint of Science — How do Computers Compute so Fast in Cambridge, MA

CAMPUS OR DEPARTMENTAL TALKS • July 2019 at Northeastern — Joint Northeastern and MIT Introduction to Program Analysis - LLVM/Systems Seminar Series • June 2019 at Northeastern — Joint Northeastern and MIT Introduction to Clang - LLVM/Systems Seminar Series • June 2019 at Northeastern — Joint Northeastern and MIT Introduction to LLVM - LLVM/Systems Seminar Series • October 2018 at Northeastern — Teaching Seminar Talk on Introduction to Github Classroom • March 2018 at Northeastern — Guest Lecture for Nathaniel Tuck’s Systems Course • November 2015 at Tufts — Guest Lecture Concurrency (Undergraduate), GPGPU programming • April 2015 at Tutfs —Guest Lecture Game Design (Graduate Level), Physics and Unity3D • March 2015 at Tufts — Guest Lecture Game Design (Graduate Level), C# and Unity3D • April 15, 2014 at Tufts — Guest Lecture Computer Graphics (Graduate Level), Programming with Shaders Using OpenGL. • April 22, 2014 at Tufts — Guest Lecture Computer Graphics (Graduate Level), GPU Program- ming with OpenGL and CUDA. • April 2013 at Tufts — Guest Lecture Human Computer Interaction (Graduate Level), Looking into the Future of HCI

TEACHING EXPERIENCE OF MICHAEL D. SHAH • CS 4910 Introduction to Non-interactive Rendering Techniques Summer ’21 – Developed from scratch a course on an introduction to offline rendering (i.e. ray tracing) techniques. • CS 3520 Programming C++ Summer ’21 – Developed from course on teaching modern constructs, features, tooling, and projects in C++. • CS 5008 Data Structures, Algorithms, and Their Applications Within Computer Systems Sp ’21 – (Graduate, ALIGN Program) Introduction to data structures and algorithms within the context of computer systems taught in C. – My specific role in this course has been in leading the development of this new course. • CS 5500 Foundations of Software Engineering, Northeastern University Sp ’20, Fall ’20, Fall ’21 – (Grad) Designed course on building software learning design patterns, Git, Object-Oriented Programming, UML, and implemented in C++. • CS 4955 Teaching Computer Science, Northeastern University Sp ’20 – (Undergrad) Developed first iteration of course on how to teach computer science. • CS 4850/5850 Building Game Engines, Northeastern University Sp ’18,’19, ’21 – (Undergrad/Grad) Designed course on building large-scale game engines from scratch in C++. • CS 5006 Computer Algorithms, Northeastern University Sp ’19, Summer ’19 – (Graduate, ALIGN Program) Introduction to algorithms course in C. • CS 4300/5310 Computer Graphics, Northeastern University Sp ’18, Fall ’19, Summer ’19, Summer ’20, Summer ’21, Fall ’21 – (Undergrad/Grad) Introductory course to traditional rasterized computer graphics and ray tracing. • CSCI E-72 Computer Graphics, Harvard Extension School Fall ’20 – (Undergrad/Grad) Introductory course to traditional rasterized computer graphics and ray tracing. • CS 3650 Computer Systems, Northeastern University Fall ’17,’18,’19 – (Undergrad) Introductory course on systems programming concepts: C, assembly, operating systems, memory management, threads. • CS 5600 Computer Systems, Northeastern University Summer ’18 – (Grad) Advanced systems programming course covering operating systems, memory man- agement, and multiprocessing culminating in a final research project. • CS 5007 Computer Systems, Northeastern University Summer ’18,’19 – (Graduate, ALIGN Program) Introductory course on systems programming concepts: C, assembly, operating systems, memory management, threads. • CS 1802 Discrete Mathematics Seminar, Northeastern University Fall ’17 – (Undergrad) Introduction to number systems, logic, probability, modular arithmetic, sorting, graph theory, induction, and cryptography. • CS 5340 Human-Computer Interaction, Northeastern University Fall ’17 – (Grad) Introduction to designing software for humans, designing user studies, culminating in a final research project. • Comp 11 Introduction to Computer Science, Tufts University, Lecturer Summer ’17 – (Undergrad) Introduction to programming using C++. Additional Teaching • Fall 2016 Concurrency (Undergrad), Teaching Fellow and Curriculum Developer, Tufts University • Spring 2015 Game Design (Graduate and Undergrad), Co-Teacher and Lab Instructor, Tufts University • Summer 2013 Data Structures (Undergraduate), Lab Instructor and Head TA, Tufts University

TEACHING ASSISTANT EXPERIENCE OF MICHAEL D. SHAH • Spring 2017 Human-Computer Interaction, Teaching Assistant, Tufts University • Spring 2016 Computer Graphics (Graduate and Undergrad), Teaching Assistant, Tufts University • Fall 2015 Concurrency (Undergrad), Teaching Assistant and Curriculum Developer, Tufts Uni- versity • Fall 2014 Concurrency (Undergrad), Teaching Assistant and Curriculum Developer, Tufts Uni- versity • Spring 2014 Computer Graphics (Graduate and Undergrad), Teaching Assistant, Tufts University • Fall 2013 Head Teaching Assistant of Comp 15 Data Structures (Supervised 20 undergraduate and graduate TAs), Tufts University • Spring 2013 Human-Computer Interaction, Teaching Assistant, Tufts University • Fall 2012 Algorithms (Grad and Undergrad), Teaching Assistant, Tufts University • Fall 2012 Operating Systems (Grad and Undergrad), Teaching Assistant, Tufts University • Spring 2012 Data Structures (Undergraduate), Teaching Assistant, Tufts University • Winter 2011 Data Visualization (Grad only), Teaching Assistant, The Ohio State University • Summer 2010 Programming Languages (Grad and Undergrad), The Ohio State University

PROFESSIONAL ORGANIZATION MEMBERSHIP • Association of Computing Machinery Professional Member (2008 - Present) • ISOCPP SG20 (2019) – Study group regarding best practices for teaching C++ to new, intermediate, and advanced, learners.

CONFERENCE ORGANIZATION • CPPCON 2021 Software Design Co-Chair – 2021, Co-created the initial organization of a new Software Design Track for the conference. Shared responsibilities as co-chair.

PROGRAM COMMITTEES • CPPCON 2021, 2020, 2019 Program Committee Member – 2021, 2020 Additional responsibilities reviewing for the Back to Basics Track • SIGCSE 2022,2021,2020 Main Program Committee Paper Reviewer – 2021 Nifty Assignment Program Committee • PLDI 2020 Artifact Evaluation Committee • EuroLLVM 2020 Program Committee Member • ECOOP 2019 Poster Committee Reviewer • SIGCSE 2019 Program Committee Paper Reviewer • VISSOFT 2018 Program Committee Paper Reviewer

SERVICE AND ORGANIZATIONS • Joint Northeastern Univerity and MIT – Summer 19 LLVM Seminar ∗ Co-organized with T.B. Schardl and Daniele Vettorel a series of workshops on LLVM, Systems, and Program Analysis tools. • Northeastern University – 2018-2022 Undergraduate Committee ∗ Responsible for overseeing all undergraduate courses and degree programs offered in the College. The committee approves all new undergraduate course proposals and degree programs, and maintains the curricula for all existing Khoury degree programs. – 2021-2022 Teaching Assistant Committee ∗ Responsible for overseeing policy of how we hire, train, and integrate teaching assistants into courses. Helped develop best practices from ’Khoury Scholars’ program I developed. – 2019-2021 Hodgkinson selection committee ∗ Responsible for selecting the Hodgkinson award for the university with a selection com- mittee. – 2019-2021 Khoury Awards Committee ∗ Responsible for taking part in selecting, voting, and organizing awards primarily for undergraduate students. – 2019-2022 Systems Advisory Committee ∗ 2021-2022 I served as chair of the committee. ∗ Responsible for communicating, discussing, and working with the College’s Systems group to deploy new initiatives. – 2018-2020 Full-time Non-tenure Track Hiring Committee ∗ Responsible for hiring teaching faculty, which includes reviewing materials, attending lectures, and providing hiring recommendations. – 2018-2019 Director of Khoury Teaching Scholars ∗ Role is to develop a new program for training and mentoring undergraduate teaching assistants. • Tufts University – 2016-2017 Tufts Graduate Student Council President – 2016-2017 Tufts University Graduate Student Rep on Planning and Policy Committee – 2016-2016 Volunteered in Roxbury Massachusetts to teach programming to non-programmers in – 2016, National Association of Graduate and Professional Students Northeast Regional Con- ference Attendee – 2016, National Association of Graduate and Professional Students National Conference. Open Panel Discussion – 2014-2016 Tufts University Graduate Student Rep on University IT Committee – 2014-2016 Tufts Graduate Computer Science League of Learning Founder and President – 2014-2015 Tufts Graduate Student Council Academic and Career Development Chair – 2014, National Association of Graduate and Professional Students Northeast Regional Con- ference. Talk presented on Data-Driven Advocacy for Graduate Students. – 2013-2014 Tufts Graduate Student Council Secretary – 2013, National Association of Graduate and Professional Students National Conference. Talk presented on Technologies Role in Graduate Student Organizations. – 2012-2013 Tufts Graduate Student Council Computer Science Department Representative • The Ohio State University – 2010 - 2011, Ohio State Game Creation Club Treasurer – 2007 - 2011, Ohio State Running Club President and webmaster – 2009 - 2011, Media, Marketing, and Communications Scholars ASP.net and Animation As- sistant Teacher.

MENTORSHIP AND DIRECTED STUDIES • Fall 2021, Undergraduate Directed Study, Jacqueline Allex, Progressive Meshes • Summer 2021, Graduate Research Mentor Fellowship (Funded), Gail Renee Pinto, Building a Performance Debugger • Spring 2021, Undergraduate Research, Rahul Toppur, CUDA curriculum • Summer 2020, Undergraduate Research, Mason Wu and Xinyi Luo, Concurrency Lock Profiler • Spring, Summer 2020, Undergraduate Research, Zachery Casey, Performance Assertions • Spring 2020, Graduate Research Fellowship, Derek Ching, Concurrency Profiler • Fall 2019, Directed Study, Robert Carney, LLVM Data Structure Profiler • Summer 2019, Xiangxi Guo, Parallel Cache Oblivious Algorithms and Data Structures • Summer 2019, Directed Study, Robert Carney, LLVM Data Structure Profiler • Spring 2019, Directed Study, Trevor Day, Real-time Ray Tracing using OpenCL • Spring 2019, Summer 2019, Fall 2019 Directed Study with Faridat Yusuf on CUDA GPGPU Programming • Summer 2018, Directed Study with Amanda Fode on Volume Visualization using WebGL • Fall 2014-Spring 2015 Undergraduate Research Assistant mentoring of Caleb Helbing • Fall 2014-Spring 2015 Engineering Mentoring Program: Aahlad Gahligni, Cecily Lo, and Stephen Michel Illinois 2021 Summer Teaching Workshop Top Accepted

MASTERS THESES, COMMITTEE MEMBER

• Summer 2020-Spring 2021, Masters Thesis Research, Yuyou Fan, Data Structure Swap with LLVM • Fall 2020, Masters Thesis Reading Member, Shereen Bellamy, Can Mental Workload in EEG Tasks Be Classified Using Machine Learning Algorithms? • Fall 18-Spring 19 Ge Zhu, Masters Computer Science Project, Northeastern University • Spring 18-Fall 18 Evan Sheffield, Masters Computer Science Project, Northeastern University • Fall 17-Spring 18 Suraj Gutti, Masters Computer Science Project, Northeastern University • Fall 17-Spring 18 Shubham Gupta, Masters Computer Science Project, Northeastern University

EXTERNAL CONSULTING • 4D Pipeline, Worked as a Senior 3D Graphics Engineer on state of the art RD projects for undisclosed clients in the field of computer graphics. Delivered two products available on the market for clients. • CUDA Course Development for Shodor Institute for the 2020 BlueWaters PetaScale Institute PROFESSIONAL BIOGRAPHY

Michael D. Shah completed his Ph.D. at Tufts University in the Redline Research Group in 2017. His Ph.D. thesis advisor was Samuel Z. Guyer. Michael finished his Masters degree in Computer Science in 2013 at Tufts University and Bachelors in Computers Science Engineering at The Ohio State University in 2011. Currently Michael is an assistant teaching professor at Northeastern University. Michael discovered computer science at the age of 13 when googling ”how do I make games”. From that google search, Mike has worked as a freelance game developer, worked in industry for Intel, Sony PlaySta- tion, Oblong Industries, and researched at The Ohio Supercomputer Center to name a few. Mike cares about building tools to help programmers monitor and improve the performance of realtime applications– particularly any visual multimedia. Mike believes computer science can be learned by all. In Michael’s spare time he goes for long runs, plays video games while on his exercise bike, learns guitar, and considers himself an amateur pizza and wine maker. REFERENCES • Samuel Guyer – Relationship: Advisor – Title: Associate Professor, Computer Science and Engineering, Tufts University – Contact: [email protected] • Remco Chang – Relationship: Thesis Committee Member and worked under as teaching assistant – Title: Associate Professor, Computer Science and Engineering, Tufts University – Contact: [email protected] • TB Shardl – Relationship: Thesis Committee Member, Collaborated on Summer long Performance En- gineering Seminar – Title: Research Scientist, MIT – Contact: [email protected] • Charles Leiserson – Relationship: Collaborated on LLVM Seminar Series – Title: Professor, Computer Science , MIT – Contact: [email protected] • Mark Sheldon – Relationship: Helped Co-develop and teach a concurrency programming course. – Title: Lecturer, Computer Science and Engineering, Tufts University – Contact: [email protected] • Jason Wiser – Relationship: Helped Co-develop and teach a new game programming course. – Title: Instructor, Computer Science and Engineering, Tufts University – Contact: [email protected]