Hello! I am a research scientist at Adobe, where I specialize in programming systems research.

My research focuses on three central themes. Firstly, I am interested in designing tools that ease the development of high-performance programs, with a focus on compilers and program synthesis. Secondly, I am interested in practical techniques for improving program correctness, such as fuzzing, mutation testing and automatic program verification. Lastly, I am interested in empowering designers by creating domain-specific programming languages that increase accessibility and expressivity in design.

I received my Ph.D. in 2022 from the University of Washington where I worked with Alvin Cheung as part of the Programming Languages & Software Engineering group. I received my B.S. in Computer Science in June 2014 from the National University of Computer & Emerging Sciences and was awarded the University Silver Medal for highest standing in the graduating class. When not doing research, I spend my days chossineering in the Cascades or cooking food for my friends.

I am always excited to work with interns. If you are interested in an internship at Adobe Research (Summer 2024) and your research interest line up with mine, send me an email!


Mutation Testing active

Mutation testing is a technique that finds untested or undertested code in your codebase by injecting artificial defects and checking whether those defects can be detected by the existing test suite. Our goal is to develop mature mutation testing infrastructure and techniques that allow us to scale this idea to complex industrial C/C++ code.

Knitting DSL active

In Knitting, there are numerous ways to knit a particular shape and the design of the knitted object is often a product of how the object was fabricated, i.e., starting panel choice, knitting direction, seaming strategy, etc. Our goal is to design a domain-specific language for knitting that allows us to capture, in a concise and high-level abstraction, the knitted designs by describing the fabrication plan.

Synthesizing 2D Designs Using LLMs active

Our goal is to build a system that combines tranditional CAD solvers, large-language models and a new domain-specific language, to enable users to (consistently and reliably) synthesize 2D CAD programs by simply describing the target object in natural language.

ReparamCAD inactive

Parametric CAD models encode entire families of shapes that should, in principle, be easy for designers to explore. However, in practice, parametric CAD models can be difficult to manipulate due to implicit semantic constraints among parameter values. We introduce a zero-shot pipeline that leverages pre-trained large language and image model to infer meaningful space of variations for a shape. We then re-parameterize a new constrained parametric CAD program that captures these variations, enabling effortless exploration of the design space along meaningful design axes.


Pitchfork inactive

Pitchfork is an instruction selection system for high-performance fixed-point computing, centered around a new fixed-point IR (FPIR). Pitchfork uses a set of term-rewriting systems to lift the input code to FPIR before lowering it to target fixed-point instructions. Offline synthesis is used to infer new rules that enable cheap semantic reasoning at compile time.

Publication · Website

Rake inactive

Rake is a new tool that uses program-synthesis to transform lower-level DSL IRs to complex high-level instruction sets found in modern hardware, such as the Hexagon HVX ISA.

Publication · ASPLOS '22 Talk · GitHub

Dexter inactive

Dexter is a new tool to automatically translate image processing functions from a low-level language to a high-level domain-specific language (DSL), allowing such functions to leverage the cross-platform optimizations enabled by DSLs. This project is an outcome of my internship at Adobe and is done in collaboration with Shoaib Kamil and Jonathan Ragan-Kelley.

Publication · SIGGRAPH ASIA '19 Teaser · Slides · GitHub · Website

Casper inactive

Casper is a compiler that uses Verified Lifting (a combination of synthesis and verification) to automatically retarget sequential Java code to MapReduce frameworks such as Apache Spark.

Publication · SIGMOD '18 Talk · Slides · GitHub · Demo · Website

GraSSP inactive

A novel approach for automatic parallelization of single-pass array-processing programs with possible data-dependencies. This project is lead by Grigory Fedyukovich.

Publication · PLDI '17 Talk · Website


ReparamCAD: Zero-shot CAD Program Re-Parameterization for Interactive Manipulation
Milin Kodnongbua, Benjamin T. Jones, Maaz Bin Safeer Ahmad, Vladimir G. Kim and Adriana Schulz
SIGGRAPH ASIA 2023 (To Appear)

Towards Auto-Generated Data Systems
Alvin Cheung, Maaz Bin Safeer Ahmad, Brandon Haynes, Chanwut Kittivorawong, Shadaj Laddad, Xiaoxuan Liu, Chenglong Wang and Cong Yan
VLDB 2023 · BibTex · DOI

Fast Instruction Selection for Fast Digital Signal Processing
Alexander J. Root, Maaz Bin Safeer Ahmad, Andrew Adams, Dillon Sharlet, Shoaib Kamil and Jonathan Ragan-Kelley

Vector Instruction Selection for Digital Signal Processors using Program Synthesis
Maaz Bin Safeer Ahmad, Alexander J. Root, Andrew Adams, Shoaib Kamil and Alvin Cheung
ASPLOS 2022 · BibTex · DOI · Talk

Automatically Translating Image Processing Libraries to Halide
Maaz Bin Safeer Ahmad, Jonathan Ragan-Kelley, Alvin Cheung and Shoaib Kamil
SIGGRAPH ASIA 2019 · BibTex · DOI · Slides

Optimizing Data-Intensive Applications Automatically By Leveraging Parallel Data Processing Frameworks
Maaz Bin Safeer Ahmad and Alvin Cheung
SIGMOD 2017 Demo · BibTex · DOI · Honorable Mention for Best Demo Award

Gradual Synthesis for Static Parallelization of Single-Pass Array-Processing Programs
Grigory Fedyukovich, Maaz Bin Safeer Ahmad and Rastislav Bodik
PLDI 2017 · BibTex · DOI · Talk

Leveraging Parallel Data Processing Frameworks with Verified Lifting
Maaz Bin Safeer Ahmad and Alvin Cheung
SYNT 2016 · BibTex · DOI · Best Student Paper

Characterizing dengue spread and severity using internet media sources
Talal Ahmad, Nabeel Abdur Rehman, Fahad Pervaiz, Shankar Kalyanaraman, Maaz Bin Safeer Ahmad, Sunandan Chakraborty, Umar Saif and Lakshminarayanan Subramanian
ACM DEV 2013 · BibTex · DOI