I am currently an Assistant Teaching Professor at Northeastern University in the Khoury College of Computer Sciences. My research and teaching interests are in Computer Systems, program analysis, and graphics. I care about all things related to performance engineering.
I completed my Ph.D. at Tufts University in the Redline Research Group in 2017. My Ph.D. thesis advisor was Samuel Z. Guyer. I completed my Masters degree in Computer Science in 2013 at Tufts University, and my Bachelors in Computers Science Engineering at The Ohio State University in 2011.
I am serving on the Cppcon 2020 Program Committee.
I am serving on the PLDI 2020 Artifacts Committee
I will be presenting at EuroLLVM 2020 a tutorial on common compiler optimizations.
I have given a talk on an Introduction to Cache Oblivious Algorithms at ACCU 2019 Belfast.
I will be serving on the EuroLLVM 2020 program committee in Paris, France this year.
My research interest is in analyzing the performance of real time systems. Typically applications where performance matters are in the domains of game engines, computer graphics, and intensive system applications. I perform my research by building static analysis, dynamic analysis, and software visualization tools. [Google Scholar Link]
Current Northeastern students wanting to get involved with my research can browse various Sidequests to see if there are mutually interesting projects.
The following table lists all of the courses I have developed and previously taught.
|(NEU) CS 5006||Algorithms (Align-Grad)||Sp19, Su19|
|(NEU) CS 5007||Computer Systems (Align-Grad)||Su18, Sp19, Su19|
|(NEU) CS 4910/7680||Special Topics in CS - Performance Engineering||Su20|
|(NEU) CS 3650||Computer Systems||F17, F18, F19|
|(NEU) CS 5600||Computer Systems (Grad)||Su18|
|(NEU) CS 4850/5850||Building Game Engines (Ugrad/Grad)||Sp18, Sp19|
|(NEU) CS 4300/5310||Computer Graphics (Ugrad/Grad)||Sp18, F18, Su19, Su20|
|(NEU) CS 4955||Teaching Computer Science||Sp20|
|(NEU) CS 5500||Foundations of Software Engineering||Sp20|
|(NEU) CS 1802||Discrete Mathematics||F17|
|(NEU) CS 5340||Human Computer Interaction (Grad)||F17|
|(Tufts) Comp 11||Introduction to Computer Science||Su17|
|2019 ACCU Autumn||Introduction to Cache Oblivious Algorithms||Slides to be posted|
|2019 Northeastern+MIT LLVM Seminar||Introduction to Program Analysis||[Slides]|
|2019 Northeastern+MIT LLVM Seminar||Introduction to Clang||[Slides]|
|2019 Northeastern+MIT LLVM Seminar||Introduction to LLVM||[Slides] [files]|
|2019 ACM Student Chapter||Introduction to Program Analysis||[Slides]|
|2019 Northeastern Workshop||Building a Game Portfolio||[Slides]|
|2018 NEU Teaching Faculty Seminar||Introduction to Github Classroom||[Slides] [Video]|
|2018 CPPCON||Let's Build an OpenGL Logger||[Slides and Video]|
|2018 Northeastern Workshop||CS1200 Careers Talk||[Slides]|
|2018 Northeastern Workshop||Building a Game Portfolio||[Slides]|
|2018 Northeastern Workshop||(Guest Lecture Nathaniel Tuck) Opearting Systems||[Slides]|
|2018 at FOSDEM||Introduction to LLVM||[Slides and Video]|
|2017 Northeastern Workshop||Getting a job in the game industry||[Slides]|
|2017 MIT||Hands on Introduction to LLVM Lecture at MIT||[Slides]|
|2016 MIT||Profile-Guided Optimization LLVM Lecture at MIT||[Slides]|
|2016 Tufts University||4th Tufts Ignite Talk - (CSI) Critical Section Investigator (3rd Place Talk)||Slides|
|2016 Invited Talk at MIT||Introduction to LLVM||[Slides]|
|2016 Tufts University||Introduction to Parallelism Teaching Fellow talk||[Video]|
|2016 Invited Talk, Cambridge Pint of Science||How do Computers Compute so Fast||[Slides]|
|2016 Tufts University||19th Annual Tufts Graduate Student Research Symposium||N/A|
|2015 Tufts University||3rd Tufts Ignite Talk - Microarray Visualization (3rd Place Talk)||[Slides]|
|2015 PLMW||Programming Language Mentoring Workshop One-Minute Madness Talk||[Slide]|
|2014 Tufts University||18th Annual Tufts Graduate Student Research Symposium|
|2014 Tufts University||(Guest Lecture for Remco Chang) Computer Graphics Shaders|
|2014 Tufts University||1st Annual Tufts Ignite Talk - Code Advisor|
|2013 PLDU||Fun and Interesting Ideas||[Slides] [Paper]|
I have participated in helping create many university organizations, and served in several roles to improve the academic experience of undergraduate and graduate students.