Maaz Bin Safeer Ahmad - Research Scientist @ Adobe. (original) (raw)

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!

Projects


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.

Publication

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

Publications