picture of Jonathan Aldrich

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

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
Last edited Wed 04 Dec 2024