My career journey

Do you want to see more?

Download my abridged resume.



I think I’m awesome, but don’t take my word for it….

From my blog

New Blog

on September 5, 2017

This is an experiment with using Hugo to build a blog. I’m migrating some of my more interesting posts off my old site, So far so good, I like having my content in Markdown but I sometimes miss the flexibility of a CMS. We’ll see how long it lasts.

Continue reading

Building The Magento Imagine 2015 Site

on July 22, 2017

How we built the Imagine 2015 site Originally published Feb 26, 2015 on Medium. Imagine is Magento and eBay Enterprise’s premier eCommerce event held every year in Las Vegas. It’s an incredible event that many eCommerce merchants, consultants and developers look forward to year after year. At Imagine, people network with merchants, partners, developers, digital industry experts, and open source enthusiasts. We put a great deal of time and effort into making Imagine a spectacular and useful event, and an event of this magnitude needs a website to match.

Continue reading

Use Marketo Forms 2.0 API To Populate Fields

on March 28, 2016

Occasionally we want to populate Marketo fields with values we calculate on our side. Perhaps advanced UTM handling, custom Salesforce fields, etc. The Marketo Forms 2.0 API makes this pretty easy. Most of what you need to know lives on this documentation page, but I will give you a couple tips you might not otherwise know. You can populate UTM codes automatically… …but think it through. You can have Marketo autopopulate your utm values from the query string in the URL, but what if a user navigates to another page?

Continue reading

Interleaving Ad-hoc Tasks in a Scrum Team: Fastpass

on December 18, 2015

In theory, full agile/scrum with two-week sprints is a major boon for everyone. Engineering teams agree to what exactly is expected of them, and the business agrees on when to expect their asks to be complete. Reality is of course never quite that simple. One of the core tenets of scrum is that you don’t accept a task into your sprint unless it is fully spec’d and completable. For instance, if you get a task to change the text color on the home page, but the new color is not defined, you can’t accept that task into your sprint because without that color the task is impossible to finish.

Continue reading