I am an Assistant Teaching Professor in the Software and Societal Systems Department at Carnegie Mellon University. Prior to joining CMU, I finished my Ph.D. in Computer Science and Engineering at the University of Michigan, where I was advised by Westley Weimer. My areas of research interest broadly span software engineering and cognition.

In Fall’25, I am teaching 17-214/514: Principles of Software Construction (link to the S’25 offering of the course), 17-681: Practical Python for Developers (Mini-1), and 17-683: Practical Data Structures for Developers (Mini-2).

In my spare time, I love playing soccer and ping pong. I also enjoy photography, and am always looking for excuses to take my camera out of the storage closet.

If you’d like to chat with me (school-related or otherwise), feel free to email me (hammada@andrew.cmu.edu) or drop by my office (TCS 341).


If you are curious, this is how my name is pronounced: [ɦəmaːd əɦməd].