Adobe Fresco


2018 - 2022


I have been working as a software engineer on the drawing and painting team at Adobe since 2015. From 2015 to 2018 our efforts were focused on two simple drawing apps:

From 2018 to the present day I have been working on Adobe Fresco, a comprehensive illustration tool that combines raster illustration, freehand vector illustration, and dynamic painting tools.


The languages that I spent the most time working with were:

I also used these in a limited capacity:

My Work

I contributed to many features and initiatives, ranging from front-end UI to analytics reporting to low-level graphics.

These are some of the easily demo-able ones:

The Layers View

Layers View

A fresco document consists of a stack of layers, each containing some graphic like a raster image, a vector image, text, etc. Layers can also be nested into groups, forming a tree. The layers view provides an interface for manipulating this stack.

Working with our designers, I wrote most of the layers view, including:

Multiple Layer Selection

Multi Layer Selection

This feature extended the Fresco selection model to allow multiple layers to be selected and operated on at the same time. Some interesting problems that needed to be solved include how multi-layer selections interact with undo and redo, and how they interact with tools that do not support multiple layer selections.

Pass Through Blend Mode

Pass Through Blend Mode

I got to extend the Fresco graphics engine to support the Pass Through blend mode for layer groups. I was a little out of my depth for this feature but learned a lot from the more experienced engineers on the team!

Fresco iPhone

I was part of the team that adapted Fresco to iPhone.

WWDC 2017 Demo

Adobe demoed UIKit drag and drop features in Adobe Capture and Adobe Sketch during the WWDC 2017 Platforms State of the Union. I was part of the team that prepared the demo.