Professional Career

TL;DR version

I got into digital page layout in the high school paper. That interest led to tinkering with web design in the mid-1990’s. I was able to turn pro in the late 1990’s and did UI design and front-end development for web-based enterprise software in the Bay Area for 5 years. During that time I also started this site and helped b2 become WordPress. I then moved to Denver, CO and set off on my own. I created and sold my own web-based software, co-founded a feed reading start-up, and eventually started a web development agency called Crowd Favorite. After running Crowd Favorite for 7 years and growing it to 17 employees, I sold the business in 2014. I remained with the company until 2015 when I again became an independent developer. I passed away in September 2015.

Ok, that was a bit terse – tell me a story

The first computer experience I remember is my father bringing an original Macintosh home in 1984. I tinkered around a bit as a kid. I made digital pictures in MacPaint, played a few games, wrote papers for school, printed cards… stuff like that. I never did any programming, but I got comfortable using a computer.

In high school I got pretty involved in the school newspaper as the sports editor and layout editor. I especially enjoyed the design and layout work and I was pretty good at it. We used Macs with Aldus PageMaker for layout. We could work on any of 4 or 5 machines we had in a lab, but only one of them had the oh-so desirable giant 19″ black and white CRT external display. We did the actual printing of the paper in-house (we had a screen printing machine with plates, etc.).

Fast-forward a few years and I am in college at Santa Clara in the heart of Silicon Valley. After spending two years working half-heartedly on a psychology degree I ran low on funds and started working full time at a nearby company that did direct mail. I was able to get in the door thanks to a connection I had who was running the Production department – the side of the business that ran the giant high-speed Kodak printers, stuffed envelopes, and ensured that the mail was properly sorted.

After about a year of working there, primarily running the printers, I sprained my ankle playing basketball and was on crutches for a while. The owners of the company knew I had some computer experience so they transferred me into the Data Processing (DP) department. The department head was a fellow in his mid forties. There were two full-time programmers in their mid-twenties who were pretty sharp, and three or four CS students who worked part time.

The DP department was responsible for taking a giant set of addresses and culling it down to the desired number of mail pieces to be sent, based on some set of parameters. We’d also put the addresses in a pre-sorted order to get discounts from the post office. The raw address data was stored on tapes and there were a number of in-house C programs that we could utilize, as well as some we’d purchased, to make our selections into the giant data sets. The overall job was a simple UNIX shell script that took the original data set, passed it from program to program with various flags and parameters set, and generated an output dataset that could be fed into the printers in the Production department.

It was very logical and straightforward and I was up and running in about 2 weeks. Around that time, there was some personnel turnover and I got the chance to stay in the Data Processing department permanently.

The DP department was not well respected in the organization, largely due to its manager. He was not well organized and did not manage people effectively. Jobs were consistently late coming out of DP and were not always delivered in a way that set Production up for success. Both Production and Sales were frustrated with DP. Sales because DP’s missed deadlines caused friction with clients, and Production because it would fall on them to try to meet the original deadline anyway after DP missed delivering to Production on time.

About 2 months after I had permanently joined the DP department the company brought in a newly minted Cornell MBA to help grow the business. She was very sharp and we clicked well immediately. She asked for my candid opinions about the strengths and weaknesses of the business from my perspective (Production and DP) and I pulled no punches in sharing my opinions. At one point, while I was complaining to her about something the DP manager had/hadn’t done that had caused some preventable problem, she asked me, “Could you do a better job?” And like only a know-nothing 20 year old can, I immediately and confidently replied, “Sure I can.” A few short weeks later I was the interim DP manager.

I had no management experience, but I had been doing the work in the trenches and I knew what was and wasn’t reasonable to expect. I also knew what was important downstream to the Production department and was thus able to work well with both groups. I had good support internally, largely from folks who were just happy to see the prior manager gone.

About 6 weeks in, I had things running pretty smoothly. I ended up running the department on my own for a little over six months before they brought in a full-time manager. I brought him up to speed and we worked well together; him in charge with me as his trusted lieutenant.

While all of this was going on during the day, at night I had started tinkering with designing and create web pages. I got a little web space that I could FTP files to, put down my $35 for the domain, and set up my very own little web shop. I also created a Mac tips and tricks site called The Undiscovered Mac which was my only portfolio piece. Sure enough, I got a few nibbles and did a few more nights and weekends projects and eventually had a portfolio of 5 or 6 sites.


I was also playing around with a Mac client/server app called Hotline. Eventually this became a tool people used to share pirated software, but it was pretty powerful in that it let any Mac computer become a Hotline server on the internet that other Hotline clients could connect to. Anyone could create and host their own community. I replied to a post they put up and became Hotline’s first webmaster. I attended MacWorld Boston in 1998 as an exhibitor with Hotline.


I was having so much fun with the web, I now wanted to do it during the day as well. I started responding to job postings and ended up getting hired by a real character who ran a division of a title company. He was also excited about the web and his vision was to have a web shop in-house that could build websites, etc. for his real estate agent clients as perks, while paying for itself with outside client work. I see that the Wayback Machine has captured our “press release” for posterity.


Over the next year plus, I designed and built a number of websites for realtors and external clients as the sole member of the team. One day the boss called me into his office and let me know he was laying me off. There wasn’t enough revenue to pay my salary and we hadn’t realized enough residual business from the realtors that keeping me around made business sense. He told me “I’m doing you a favor, you’re going to realize this (getting laid off) was one of the best things that could happen to you.”, and he was right.


Within a week I had three job offers. One was running a 7 person web design shop, one was doing web work for a satellite-related company, and the last was a position in San Francisco for a start-up called Octane Software where I would be doing UI design for their web-based application.

One of the things that I’d learned from being on the inside with the Hotline team was that I loved making software. That I could make a suggestion and have it appear several days later was like magic. It was for this reason, and because it was the job that scared me the most, that I took the job at Octane.

I had interviewed for the position in Octane’s temporary space in San Francisco, but by the time I started, they had moved into a brand office park in San Mateo. This worked out much better for me as it was only a 25 minute commute from where I lived in Sunnyvale (as long as I didn’t have to do the drive in traffic). I soon learned that showing up at a certain hour of day didn’t matter – instead we were expected to be there for long hours. I was told by my boss to get a cell phone (something I’d never had before) so that I would be reachable at all times. I had landed in the strange and fascinating world we call venture funded start-ups.

I was one of the first people hired into the application team at Octane, but we grew quickly. When the company was acquired 2 years later by E.piphany for a (then) record $3.8B, the application team was around 25 people and the company overall had grown from ~25 to ~350. The acquisition was a fascinating process. There was overlap in lots of places and I saw a number of folks leave for that reason. I also saw many of Octane’s leaders get shown the door in favor of E.piphany’s leadership. I survived various rounds of layoffs and ended up being with the combined company for about 2 years.

It was at E.piphany that I was first introduced to the concept of blogging. My UI lead counterpart at E.piphany was a fellow named Eric Cheng. He had a personal site and blog that he maintained, and he also maintained an internal company blog. Eric is a great photographer and it was a ton of fun to read back through the history of posts and see photos from various events. It was Eric’s blogs that inspire me to create one of my own. I’d been doing a little tinkering with PHP and MySQL so I was drawn to b2, a blogging system that used those technologies. I built my site and began building add-ons to it and releasing them into the b2 community. A little while later, b2 became WordPress (which included some of my code).

I started a little nights and weekends project of my own to create a web-based photo database. I was starting to get into digital photography and knew I’d want to be able to catalog my photos. I was learning more and more about development and built the photo database I wanted using the same PHP and MySQL technologies that WordPress used. I then got to work creating a hierarchical web-based task management system. All of these were freebies that I made available from my website. As I created them, I was also building a reputation for executing well on interesting ideas.


A few friends of mine had left E.piphany and landed at a startup called Nextance. Nextance was another enterprise software company and it was tackling document and contract management. I was brought in as the UI designer and got to work on an overhaul of the existing application, as well as working on a design for the future. At this point CSS and web standards were starting to take hold and I was using Phoenix (which later became Firefox) as my browser. I nearly got myself fired a few months into my tenure at Nextance by spouting my mouth off at the CEO in a meeting, something to the effect of “you brought me in here to design this, let me do my job”, but managed to survive that hiccup and stayed for a little more than a year and successfully completing a product overhaul with a UI redesign and conversion to XHTML + CSS before turning in my notice and moving to Denver, CO.


Before I left the Bay Area, I asked my friend Adam to take a headshot for me. I didn’t have anything good to use on my website, and figured it might be a while before I made photographer friends I could impose on in Colorado. Adam took this shot in the fall of 2003 and I used it as my avatar on everything for nearly a decade. The photo gained a life of its own, with people asking friends if I always wore sweaters, etc. I finally replaced it when a photographer snapped a good shot of me speaking at WordCamp Seattle in 2011.

Sweater Photo

I didn’t have anything lined up in Denver, but my wife was able to transfer with her job at Ernst & Young. This freed me up to spend a few months building a commercial version of my task management software. I knew I had some market for it because I had existing users who believed in me and were willing to each pony up a few bucks to help get me going. I worked like crazy on it. There were long 12-14 hour days and weekends while I coded the software, wrote the documentation, and created a supporting marketing website (using WordPress as a Content Management System or CMS, which would turn out to be important later). I learned just what it took to really release and support commercial software.


I spent the next couple of years continuing to develop Tasks Pro and support it. I partnered with a hosting company to offer a hosted version, and had a single-user version as well. I was able to earn a living selling something I had created and I loved it.

During this time I was also very active in the burgeoning WordPress community. Inspired by the CSS Zen Garden website, I created a design competition for styles that would work with the default HTML that WordPress generated. This competition resulted in over 100 designs becoming freely available for WordPress and gave WordPress a significant bump in popularity. When WordPress added themes a year later, I also held the first theme competition; again generating the first large collection of themes for WordPress.

I’d worked with my friend Scott Sanders at Octane and then again at Nextance. We did some consulting together for a client, and while doing so we got to talking about creating a really good web-based feed reader. There were lots of bad ones out there, but we wanted to create one that would rival a desktop experience. FeedLounge was our offering. We unabashedly stole some of the best features from the stalwart Mac feed reader NetNewsWire, while also adding some views and features that were our own particular take on things. Both Scott and I had other things going on at the same time, or we probably would have either accepted one of the various acquisition offers we received or we would have thought more seriously about taking on VC money. I was still pretty naive about how the venture funding game worked back then.

Regardless, FeedLounge started to sputter and, being convinced we weren’t going to be able to get things fixed in the near term, I jumped ship in August 2006. My intention was to return to my Tasks Pro product and start building some of the features that my customers were asking for. However, before I could get too deeply into that, I got a request to respond to an RFP for a large scale WordPress site.


Before I get too deep into that, however, I’d be remiss if I didn’t talk a little about another little pet project that ended up getting traction. I launched a redesign of this website in the fall of 2006 and as part of that redesign I created a little pop-over window that could be triggered by a “Share This” link next to the comments link for each post. Inside the pop-over were links to a dozen or so social websites like Digg, Facebook, and Twitter, along with social bookmarking sites like It was my solution to what Tony Conrad had dubbed “iconistan”. I wanted to make it easy for my site visitors to share my content, but I didn’t want to make my site look tacky. I released my little invention as a WordPress plugin and it became quite popular.


I felt that the link was a little unbalanced on my site because it didn’t have an icon next to it. The comments link next to it had a little text bubble icon. I posited that we needed an icon to represent sharing. I then went on to create an icon, and released it under a variety of open licenses. This share icon is used as a system-level control for Android, in the YouTube player, and dozens of other high-profile places on the web.

WordPress was proving to be the little project that could, continuing to grow a vibrant technical community around it. As it grew, it began to garner interest with larger publishers who were looking for alternatives to expensive proprietary systems. Dow Jones was the first large publisher to pull the trigger on WordPress, deciding to use it for a new property they were creating around existing Wall Street Journal Walt Mossberg tech content, the D Conference, and new content that would be created for the new site:

I ended up building the site with my friend Adam Tow, using a design provided by San Francisco’s Mule Design. The site launched successfully on’s commercial hosting platform. At this point I again planned to finally get back to focusing on my Tasks Pro software.

The success of the AllThingsD site along with expanded interest in WordPress as a CMS led more people to my digital door. I’d written about WordPress as a CMS since 2004 on my blog, and I’d used it successfully for the AllThingsD site – I had accidentally positioned myself perfectly for the swell of people wanting to use WordPress as a CMS for a variety of interesting projects.

While I had never explicitly declared myself to be a consultant, I did have information on my website about contacting me for projects and I’d executed a handful of WordPress plugins as paid projects in addition to the AllThingsD site. I was soon getting multiple inquiries per day, mostly relating to WordPress in some way, shape, or form. Some of these potential clients and projects were really interesting and I was suddenly in a position where my limiting factor was time and capacity. I decided I’d try hiring someone.

A few months later, I found myself hiring again (having renamed my company from King Design to Crowd Favorite, to better reflect the new team nature of the business). After six months we had office space and were up to 5 people, including a project manager. Crowd Favorite was the first WordPress development shop.

We were fortunate to work with a number of big name companies (Yahoo!, National Geographic, DirecTV, Reuters, MailChimp, Phish) that wanted to do something relating to WordPress. We did large CMS site builds using WordPress as the platform, we migrated content from other platforms to WordPress, and we helped other companies extend their offerings into the WordPress ecosystem.

Over the years the team slowly grew. We added design capabilities, more structured project management, and refined our technical tools and best practices. We were still a heavily technically oriented company. I transitioned slowly and reluctantly from coding into management. Our marketing consisted of executing well on client projects then publishing case studies on them, and of executing on our own ideas for WordPress products. We didn’t have a sales team and though we were beginning to compete with traditional agencies, we didn’t do so in traditional ways.

The first product to come from the lessons learned from developing and maintaining large-scale WordPress sites was Carrington Core. This was a developer framework for building better organized and more maintainable WordPress themes. The Carrington Core engine looks at available templates, the data to be displayed, and chooses the most appropriate template for the data. This process starts with the overall page type (is this a post or an archive page? what kind? etc.) and then happens again and again at more and more granular levels, whenever multiple templates are detected. This makes Carrington Core a completely additive framework. It adds capabilities without any associated cost.

We found that the adoption of Carrington Core made our front-end web developers more productive, made the sites we created easier to understand for new developers that were brought on to a project or were asked to make changes to an existing site, and kept our sites better organized during long-term maintenance. I created the Carrington Core engine and we used it for a handful of client websites and internal sites before releasing it publicly in 2008.

Once Carrington Core gave us developer-friendly templating for WordPress sites, we began to focus on the next challenge our clients were consistently asking about: a high degree of control over specific pages on their website. These would commonly be the home page, specific landing pages, product pages, etc. They didn’t need their marketing people to be able to customize every page, but they didn’t want to have to go to a developer every time they wanted to add a new X to page Y.

I had the idea to create a modular drag-and-drop framework where a user could stack rows of varying types, then insert modules into those rows. There would be a default set of modules that we would ship with, but we’d also support the creation of custom modules as well as allowing WordPress “widgets” to be used. We were working with a client we knew pretty well and they really wanted a system like this. They were willing to pay for a small bit of the development costs while we took on everything above that as well as ownership of the system. It ended up being a bit more work than we had planned, as happens with most large projects, but the resulting product, Carrington Build, is something I was quite proud of.

We released Carrington Build as our first commercial WordPress product in 2010. While there are a number of drag-and-drop layout tools for WordPress today, Carrington Build was the only thing of its kind at the time. Like Carrington Core, Carrington Build was an additive product that could be invoked for specific pages but was completely optional. It was also created with developers in mind, and did a number of things to adhere to WordPress best practices that have allowed it to continue to work elegantly along with WordPress as WordPress has grown and evolved.

Part of my role as a technical leader at Crowd Favorite was to work across all of our projects and make sure we were solving problems in smart and repeatable ways. Our Carrington products are an example of that ability to identify problems (or aspects of problems) that overlapped and could be solved in systematic ways, then coming up with elegant solutions.

In 2011 we introduced RAMP, another commercial WordPress product. Unlike our Carrington products, the idea for RAMP came from a client rather than from needs we had identified. The client had used a tool on the Drupal platform that allowed for content migration and wanted something for WordPress that could move content from one instance to another (to facilitate creating content in a staging environment then selectively pushing those changes to production). For a variety of reasons, building something like this for WordPress was a significant technical challenge. Our client didn’t have nearly the budget needed to cover the development costs, but we thought the idea was interesting and that we could make it successful as a commercial product. As I write this in 2015, RAMP is still the only tool of its kind for WordPress.

We continued to build our internal toolset as well, creating a set of Capistrano tools to enable easy set-up of local project environments for developers and deployment to production websites. After refining them over a bit of time, we ended up releasing these for free to the developer community, under an Open Source license.

We also built some internal-only tools like a crawler and scraper that we could point at an existing website (with a specific configuration for that site) to generate WXR files that could be imported directly into WordPress. I utilized the Oxygen PHP framework I’d created and built simple web apps to crawl and then scrape an existing website. For each site or set of pages within a site, a configuration set was defined. The configuration set used CSS selectors just like jQuery, giving our developers a familiar and powerful toolset to use.

Capsule is a product that I’m particularly proud of, in part because it defined a new product category: the developer’s journal. The idea behind Capsule is to capture artifacts from the development process that might be useful in the future. We described it as replacing the scratch text file you have open while you code. Since it is a journal, it made sense to build it on top of WordPress. However, instead of using the traditional admin screens, Capsule provided a code editor and editing from the front-end of the website. We created syntax to allow for easy metadata tagging of content, as well as extracting details like code languages from code blocks.

Capsule is a valuable tool for the individual developer, but at Crowd Favorite we worked as a team. We wanted to allow Capsule to continue to be a personal tool for each developer, but we also wanted to enable the sharing of content that might be valuable to the rest of the team. To do this, we created Capsule Server. Each Capsule instance could connect to one or more Capsule Servers, and by mapping a project name from your local Capsule to a project on the Capsule Server, content that was tagged with that project would be replicated to the Capsule Server where it could be seen by the rest of the team. This could be particularly handy in situations where a developer was asked to make changes to a client website, but where they lacked historical context of the existing website. They could go to our Capsule Server and hopefully read a little about decisions that were made, ideas that were considered and scrapped, and implementation choices (along with what influenced them). We released Capsule and Capsule Server together as free, Open Source products in 2013.

Crowd Favorite had a number of retainer relationships with clients. We would provide X services for them on a monthly basis. After experiencing a problem with a client’s website that was difficult to recover from, we realized that many of these clients didn’t have sufficient backup solutions in place for their sites. We created BackupMoxie as a service to fill that gap. It was a little additional monthly revenue for us, but more importantly it provided peace of mind to us and our clients; knowing that we could always revert to a known, good state for the client’s website.

We also reached the point where our clients were asking us to not only build their websites, but to host them as well. Among our developers we had the technical experience necessary to set up and configure servers to handle the large-scale WordPress installations and associated traffic they served, and we ended up creating CloudMoxie as a hosting company we were a majority partner in. Ultimately we sold CloudMoxie to WP Engine in 2013. It wasn’t that we didn’t have the expertise to provide hosting, it was that our developers were not brought on to Crowd Favorite with the expectation of providing 24×7 hosting support.

In 2013 I ran into a pretty big hiccup in the form of a cancer diagnosis (read more about my journey in this thread.). Thankfully I had an awesome team that continued to execute while I was out for a few months, and allowed me to return in a part-time capacity thereafter. Every year I had been running Crowd Favorite we had eclipsed the previous year’s revenue and profit. Even though I had been away from the business for a good chunk of time, we managed to do so again in 2013. I’m pretty proud of that track record, and thankful to all the great folks who helped make it happen.

In early 2014 I sold Crowd Favorite to the VeloMedia Group and stayed on as the CTO as the VeloMedia Group assumed the Crowd Favorite brand. The new Crowd Favorite is a global organization with offices in various US cities as well as a nice footprint in Europe. The technical toolset and best practices from the original Crowd Favorite team in Denver were rolled out to the rest of the organization, and refined to ease their adoption. In turn, we did a reset on things like coding standards and code reviews to ensure that everyone had a chance to make their voice heard and would buy-in to the standards and processes. I learned a lot about the way humans interact and work together during the integration process.

In 2015 I returned to my independent developer roots, working under a new company name: Monarchy. While the “crowd” in Crowd Favorite emphasized the team rather any one person, Monarchy is likewise unabashedly just me. I’m back to consulting and working on pet projects as a one-man shop, being somewhat selective what I spend my time on.


I passed away in September 2015.

Elsewhere on the Web

I was more active on some of these than others, but you can generally find things I did here.


Links to slides/video/etc. from my speaking engagements can be found here.

About This Site officially launched on November 1, 2002. It used a home grown templating system alongside a b2 powered blog. The blog was upgraded to WordPress, a golf blog and PunBB powered forums/ were added (the forums were removed some time back), and content grew and grew in the blog.

It was probably in early 2004 when I was starting to feel growing pains with my templating system. When I built a new King Design web site in 2005 I used WordPress as the CMS platform. I’ve used WordPress to drive pretty much every site I’ve built since then.

I launched v21 in November of 2006. v2 was a completely WordPress driven site (except for the forums – still PunBB). It’s fairly heavily customized to combine two blogs as well as my old template system content into a single site. I’ve released a number of my customizations as plugins. v3 (current) was launched in August 2011. It is running the FavePersonal theme that is largely influenced by my needs on this site. In this iteration I was able to remove a lot of hacks and use a number of newer WordPress APIs to make the site more maintainable for the long term.

  1. If you’re curious about what version 1 looked like, the WayBack Machine can hook you up. [back]