Hello! I am a research scientist at Adobe, where I specialize in programming systems research.
My work focuses on harnessing the advances in program synthesis and machine learning to develop tools that enable programmers to write high-level programs that function as well or better than manually crafted low-level programs created by experts.
I received my Ph.D. in June 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.
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.
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.
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 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
A novel approach for automatic parallelization of single-pass array-processing programs with possible data-dependencies. This project is lead by Grigory Fedyukovich.
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
Automatically Leveraging MapReduce
Frameworks for Data-Intensive Applications
Maaz Bin Safeer Ahmad and Alvin Cheung SIGMOD 2018 · BibTex · DOI · Talk · Slides
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