}

I'm a designer, developer, and problem solver with years of telling stories. I live in the Chicago area but have worked with newsrooms from New York to Arizona.

I use visualization, development, UX design, writing, and editing to dig past surface-level asks and distill mountains of information into meaningful, empowering experiences.

It's all communication.

We humans are natural storytellers and respond well when we find reflections of ourselves in the tales and experiences of others. But, it doesn't stop there.

A good user experience tells a story, too. People encounter interfaces in their own way, and we all need help making sense of things. That's the work.

What I do

I thrive in collaborative and cross-functional capacities, helping disparate teams communicate and collaborate on shared goals. Whether I'm designing, developing, or participating in some other way, I bring a human-focused approach, keeping everyone's eyes on the final product. This requires speaking technology with content creators and content creation with technologists, cutting through friction so work moves forward without bottlenecks.

Throughout the years I've made it all: featured interactives, standalone presentations, and dashboard user interfaces. Each format has its place, and choosing the right one for the job is a delicate, practical art. The goal is always to build lean solutions that don't sacrifice quality for speed — or speed for quality.

HTML, CSS, and TypeScript are my bread and butter. I love to ship with Svelte, Vue, or even plain vanilla. I've worked with D3, Node, and mapping tools (Leaflet, MapBox, etc.).

Also ...

When I'm not telling stories, you'll find me entertaining one of my many inner nerds: science fiction, theater, cooking, and youth softball (as a proud softball dad). And, finally (perhaps most importantly), I believe there isn't anything that can't be made better with a cup of hot coffee. Or two.

Let's talk. I look forward to hearing from you.

  • UX software engineer — Pulsar Informatics

    2023 – present

    I am a key developer on a web-based application offering workforce fatigue management solutions. We use GraphQL, TypeScript, and SvelteKit to deliver actionable insights in real time. I collaborate cross-functionally with other engineering teams, product leadership, and customers to refine the end-user experience and contribute to roadmap planning.

  • Developer, news applications — Gannett

    2018 – 2023

    My team — The Storytelling Studio — collaborated with newsrooms across the company to facilitate top-notch storytelling by developing tools, frameworks and custom experiences. We empowered our partners in more than 200 newsrooms across the country. We used an agile, human-centered approach as we iteratively tested our hypotheses and refined our goals. Journalists often approached us with their centerpiece work and a desire to maximize its impact. We built our tools from end to end to achieve a facility on our company's infrastructure and a alignment of technologies that wouldn't otherwise exist.

  • Assistant Data Visualization Editor — Chicago Tribune

    2013 – 2018

    I helped coordinate the efforts of all graphic reporters and artists across long- and short-term projects while leading our transformation into a digital-focused team. I helped develop technology stacks, templates and best practices for everything from static graphics to fully composed articles and interactives. Though the graphics team was full of expert artists and journalists, our digital abilities were minimal. For our transformation to succeed, the plan needed to include everyone and, thus, a key responsibility for me was to serve as a coach/mentor to help us all contribute to our digital growth.

  • Data visualization Coordinator — Chicago Tribune

    2010 – 2013

    I worked with business editors, reporters and columnists to identify and prioritize graphic opportunities for the daily business section and special projects. I participated in long- and short-term planning to devise digital experiences to enhance the daily and weekly coverage.