Hi, I’m Ty.

Portrait of Ty

My work spans product, web, strategy, and design systems. I’m someone who spends equal parts thinking about the bigger product picture as I do getting pixel perfect on a component. I iterate fast, love a rapid prototype, and will do anything to push projects forward. Most of my experience has been at agencies where I’ve worked on a diverse range of projects and problems. Lately, I’ve been drawn to the possibilities that AI has opened for new workflows, where I find myself building directly in code, creating internal tools, and pushing the boundaries of the traditional design process.

Skills

  • Product Design
  • UX & UI Design
  • Product Strategy
  • User Research
  • Prototyping
  • Design Systems
  • Web Design
  • Figma
  • Claude Code
  • AI-Coding

I grew up moving around a lot. I lived in Germany, a string of Philly suburbs, and a few places in between.

PhiladelphiaHeidelberg
Europe
Heidelberg
first day
Europe
Heidelberg
first day
2007–2010

I spent most of my formative years with a GameBoy and smartphone in my hands, where my passion for digital products continuously grew.

After moving back to the US, I sold my Lego collection on eBay to build a desktop PC. This eventually led me to discovering Photoshop, where I started designing posters about things I loved:

poster
poster
poster
poster
poster
poster
poster
poster
poster
poster
poster
poster

I moved to Philadelphia for college where I studied UX at Drexel University. My co-ops introduced me to people who shaped my design process more than a classroom ever could.

Drexel
Craft
Daytrip showcase
2019–2024

Lately, I’ve been drawn to the intersection of design, product thinking, and coding. It’s been really fun building and experimenting with the new models and tools.

components/hero/HeroCat.tsxlive
eyes → cursor
131const dx = e.clientX - (rect.left + eye.cx * scale);–
132const dy = e.clientY - (rect.top + eye.cy * scale);–
133const dist = Math.hypot(dx, dy) || 1;–
136const t = travel * Math.min(1, dist / falloffPx);–
137pupils[i].x.set((dx / dist) * t);–
138pupils[i].y.set((dy / dist) * t);–
swingStyle() → tail
177({
178 "--swing": `${deg}deg`,–
179 "--swing-half": `${half}s`,
180 "--swing-delay": `${delayS}s`,
181 transformOrigin: `${pivot.x}px ${pivot.y}px`,
182}) as React.CSSProperties;

In my free time

MENU

I make hip-hop beats

Last watched

Watch lots of movies

Have a crazy cat named Sylvie

soccer

Die-hard Chelsea F.C supporter

Dabble in photography