Joannah Nanjekye
Software and Societal Systems Department
School of Computer Science
Carnegie Mellon University
Office: 461 TCS Hall
Contact Information
jnanjeky@cs.cmu.edu
http://www.cs.cmu.edu/~jnanjeky/
+1-506-804-1167 (phone)
ORCID iD 0009-0007-1852-7715
Shipping Address
Joannah Nanjekye
CMU - ISR - TCS Hall 461
4665 Forbes Avenue
Pittsburgh, PA 15213
Research
I do research in programming language (PL) implementation and analysis, specifically exploring language semantics, type systems, and the development of domain-specific languages (DSLs). The techniques in my research ameliorate existing languages, create new ones, and develop tools to make programming more efficient and reliable.
My work advances the design, formalization, and
empirical evaluation of domain-specific languages (DSLs) and programming models tailored to the
unique demands of edge computing (IoT) and reactive systems. These efforts emphasize energy
efficiency, scalability, and expressive power within stringent resource constraints. In parallel,
I develop robust, semantics- and security-preserving refactoring frameworks to enable the automated
evolution of incompatible legacy codebases across language versions.
By unifying language innovation with practical code transformation tooling, this agenda situates my work at the intersection
of programming languages, software engineering, and systems , addressing foundational questions while
delivering tangible impact for modern, resource-constrained computing platforms.
I currently work with Dr Jonathan Aldrich on TTPython,
a Python-based DSL making it easier to write time-sensitive IoT applications. I work on programming
languages engineering and focus on making it easier to program correct
distributed, time-sensitive applications for IoT devices, and in a practical way, using the
approach to facilitate efficient transportation networks and to monitor flooding in waterways
that may become more common as anthropogenic global warming increases.
I was advised by Dr David Bremner during my PhD, and
worked on Memory Management Techniques for Dynamic Languages as part of
the IBM Center for Advanced Studies Lab at the University of New Brunswick.
I am a Python Core Developer with interests on the CAPI and Subinterpreters (formerly PEP 554). Previously a director of the Python Software Foundation.
News
- During Spring 2025, I will be teaching 17-647 Data-intensive and Scalable Systems!
- Nov 2025, Speaker, Distiguished Speaker Series, Carnegie Mellon University, Memory Management Techniques for Dynamic Languages
Advising
Carnegie Mellon University, USA
- Stanley Zheng, Carnegie Mellon’s Research Experiences for Undergraduates in Software Engineering (REUSE) program
- Sunay Shehaan, Carnegie Mellon’s Research Experiences for Undergraduates in Software Engineering (REUSE) program
African Leadership University, Rwanda
- Kayongo Brian
- Nkah Chambeline
- Lydia Ojoawo
Makerere University, Uganda
- Elijah Okello
- Richard Njego
- Steven Kakaire
- Monica Muyama