Build. Build. Build.

There's no question: choosing to be a software engineer takes a certain kind of gluttony for punishment. But when you're hooked, you're hooked. Nothing quite matches the excitement of seeing an idea developed into a thing, of meeting and overcoming unexpected challenges, of learning something new every day.

* Some of these demos are hosted on on-demand dynos and may take up to 15 seconds to first spin up.


Server App: Ruby on Rails
Client App: React with Redux
(demo site link coming soon)

An ongoing project under development since 2017, Portal is a CRM for bootcamps and smaller schools, facilitating grading, attendance, content distribution, and teacher-student interaction.

While actively developing this project with DevPoint Labs, I functioned as lead developer among the students. Portal has scaled essentially seamlessly to comprise 18 PostgreSQL tables and over 100 ReactJS components written by over 20 developers.


Frequency / Reach Calculator

App: React with Redux
Libraries: ReCharts and React Table

If you roll a ten-sided die once, what are your odds of getting a seven? That's easy: 10%. But what are your odds of getting a seven if you roll the same die ten times, or a thousand times?

To answer this question in a meaningful way, you need to expand the question — for example: "if I roll this die a thousand times, what are the odds of getting zero sevens, one seven, two sevens..." and so on. Enter the binomial distribution.

I initially built this tool to help me plan online media buys on smaller sites which lacked sophisticated ad placement tools, allowing advertiser money to be spent more efficiently.


Parallax City

App: vanilla Javascript, CSS3

This is an experiment in non-intuitive — or, perhaps, not-immediately-intuitive — user experience design utilizing two-axis parallax in a space much larger than the viewport. Movement is controlled by mouse position.

Think of it as a piece of art, and a proof-of-concept for a "explore to discover" interface. See if you can find the three buildings with which you can interact.

* Contains assets which are quite large for web consumption -- please be patient while content loads.



Arduino App: C++

A dynamic project for creating unique photographic images using long exposures, animation, and movement. The camera sensor is the canvas.


Portal Logo Animation

App: Javascript
Tools: Adobe Edge Animate

A simple, clean logo animation using Javascript and CSS, designed for a product launch demo. Scales to full viewport width and is vertically scrollable to allow logo positioning.


"SpringRings" Animation

App: Javascript
Tools: Greensock JS

Fluid movement based on a few random number ranges applied to a few variables: location, delay, staggering, size, and speed.

Additional portfolio projects will be added periodically.


Life is art—nothing more or less than personal expression. And each of our voices is unique.

Humans are fundamentally creative. We are designed to want to express ourselves in our own unique ways.

I love writing, producing, and performing music; creating unique images with photography; building things that use hardware and software to interact with people; and designing user experiences in online media that push boundaries and expand our expectations from technology. Here are some of my photographs.


Marketing: spooky action at a distance.

OK, you got me: that phrase was used by Albert Einstein to describe the concept of quantum entanglement. But it could as well be used to describe marketing—or, good marketing, at least.

Every word we hear, every image we see, every event we experience: they all have the power to influence our thoughts, feelings, and actions. Marketing is about using this influence deliberately, with a specific goal in mind. My company, Mumblypeg Media, is a small, interactive agency, providing branding, messaging, design, and development services to organizations in a variety of industries. Though each of my clients has her unique goals and priorities, each also has something in common: objectives that depend on causing a response in people. An action at a distance. Maybe not so spooky after all.

Mumblypeg Media

Music soothes the savage beast? Sometimes, perhaps. In my experience it more often stirs our souls.

I've always been a musician. I can't stay away from it; the universe of endless possibility and exploration entrances me and always calls me back.

I have yet to meet a person who doesn't love music, whose heart has not been touched by it. I started taking guitar lessons when I was six years old. Nice job, mom and dad! Between then and now I've been involved in music in a variety of forms: I've graduated from Musicians Institute's guitar program and received a music technology minor from UCSD. I've studied music theory for years, formed and played in several bands, and toured Europe (twice) playing rock shows in smoky bars. I took a year to build a high-end recording studio and teach myself how to engineer, mix, and produce. I've recorded my own album and I'm now working on producing electronic music.

Check out the links to the right to check out my album Underbelly, from 2002 (complete with a 12-years-untouched awesome website!), and my soon-to-be-released electronic project under the name Aquasquatch.


A diverse collection of original funk, rock, singer/songwriter, and disco. Contact me to hear a sample or two.


Electronic Goodness
I'm not quite sure what to call the style of music I'm working on now. Maybe electro-disco? Let me know if you'd like a link to a listen.

I'd like
to hear
From you.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy euismod tincidunt ut laoreet dolore magna nibh.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.

Thank You
for Your eMail