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.
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 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.
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.
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
Towards Auto-Generated Data Systems
Alvin Cheung, Maaz Bin Safeer Ahmad, Brandon Haynes, Chanwut Kittivorawong, Shadaj Laddad, Xiaoxuan Liu, Chenglong Wang and Cong Yan
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
Automatically Translating Image Processing
Libraries to Halide
Maaz Bin Safeer Ahmad, Jonathan Ragan-Kelley, Alvin Cheung and Shoaib Kamil
Automatically Leveraging MapReduce
Frameworks for Data-Intensive Applications
Maaz Bin Safeer Ahmad and Alvin Cheung
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
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