One day in late 1994, I noticed that the PCs at McDonnell Douglas were connected to the Internet. Netscape 1.0 was still in beta, page layout was impractical because HTML tables and CSS were unavailable, and only 12% of US households were connected to the Internet, mostly using dialup. But I was smitten. I was fortunate to have time to pursue my own interests, and I happily poured myself into learning all I could about building compelling hypertext documents and figuring out how to serve them up to my co-workers.
Before long, mastery of all of this became a desirable skill, and I made the leap to working as an HTML coder at the St. Louis office of Weber Shandwick public relations.
After a few months at Weber Shandwick, I put a bug in a friend's ear about launching our own studio. Before long a mutual friend suggested the same thing, and within months the three of us were up and running as Schwa Digital Design in a studio loft in downtown St. Louis.
None of us had a background in business, engineering, or systems administration, but we dove in, learned what we needed to, and ended up with a profitable little business, a respectable body of work, and a lifestyle we loved.
In early 1999, we agreed to be the founding web branding team for Zipatoni, a marketing agency based in St. Louis. We held on to Schwa as an entity, but ceased operations.
In my time at Zipatoni, I acted as tech lead on websites built for consumer brands. By the end of our contract, all three of us had decided that agency life was not for us. One of the Schwa partners moved on to academia, while my other partner and I decided to pursue freelance work under the Schwa name.
As a team, we conceived and built a custom CMS that allowed the customer, a magazine publisher, to enter and preview entire issues prior to publishing to the web. When publishing an issue, our tool generated article pages, tables of contents, site navigation, and links between articles. We did this in 1996, before this kind of thing became commonplace.
I built multiple iterations of an agency-wide directory of all facilities and personnel for The Department of Veterans Affairs. This included on-site installation and a custom CMS for maintenance.
My final project in this era was the most satisfying. I conceived and built an AJAX-based portfolio management tool (four years before the term "AJAX" was coined) for a photo studio. This management tool allowed the customer to create and manage custom portfolios for current and prospective clients, password protecting portfolios where desired. Portfolio data was loaded into the page via XHR, modified in-page, and saved back to the server using XHR. Photos could be reordered using drag and drop.
I moved to New York with a few months of freelance work in my pocket. The dotcom bubble had started deflating, but I remained confident that freelance work would continue to be plentiful and that my skills would be in high demand in NYC. By the time I'd wrapped up the work I'd brought with me from St. Louis, the World Trade Center had fallen, the dotcom bubble was completely kaput, and work was scarce.
I worked a number of temp assignments, eventually landing a full time gig as a secretary for NYU's social work grad school.
A close friend recommended me for an opening at Meetup. My lack of Java chops kept me from getting the job, but a more suitable position opened up a few months later, and I was hired as Meetup's first front end engineer and second tech hire.
For the first two and a half years, I was the lone front end developer. I wrote most of the code; I owned SEO, accessibility, and performance; I dabbled in design and information architecture. As Meetup got its footing as a business and started to grow rapidly, I set about building a team of front end engineers. I grew the team to eight people over the next two years, training, managing, and mentoring them along the way. Three of my hires subsequently became team leads.
Though I had previously co-founded a moderately successful company, Meetup is where I truly learned how a startup works. I watched closely as the company struggled to turn a novel and beloved product into a sustainable business. In my time at Meetup, membership grew from 700,000 to 5.7 million people, and I worked with the rest of the tech leadership to build a large team, create and nurture a healthy culture, and improve and scale up our development and deployment processes. I saw first hand what type of person helps a startup succeed, what kind of person thrives or flails in that setting, and how damaging a single bad hire can be. I learned the ups and downs of various approaches to product evolution and became convinced that bottom-up, cross-functional decision making is often the best approach.
Nearly six years into my time at Meetup, I was contributing substantial amounts of code and managing a team of eight people, but I increasingly wanted to focus on one thing or the other. We parted ways on friendly terms.
I defined clear, lightweight page layout semantics that were then mirrored in our own homegrown JSTL taglibs. Our templates were easy to understand and maintain. We also added HTML validation to these taglibs so we could more easily spot hard-to-debug problems like unbalanced tags.
I agreed to join a startup with two of the original Meetup founders, but when their funding fell through before my start date, I eagerly accepted a job at Flavors.me. The team was impressive, the problems they were working on looked interesting, and I thought the product had real promise. It proved to be a poor fit, and I moved on to OpenSky after a few months.
On the surface, my trajectory at OpenSky looks a lot like my time at Meetup: I was the first dedicated front end developer, I remained the only front end developer for the first year or more, and when it came time to grow, I built a team. At OpenSky I had the benefit of having learned from my years at Meetup, and my comfort and confidence as a collaborator and leader were greatly improved.
I still wrote lots of code and solved plenty of engineering problems at OpenSky (especially when I was the only front end person), but my main contributions were leading my team and promoting a positive company culture.
Everyone loved my team, which is very much a credit to them, but also a result of careful hiring, hands-on mentoring and leadership, and creating a tone of collegiality and fun, combined with seriousness, curiosity, and hard work. Building this team is the proudest accomplishment of my career.
I noticed a specific need for ad hoc collections of products with custom headers, footers, and page styling, and correctly guessed that this would later become a more general need. Instead of building the feature as a one-off, I assembled a lightweight spec for flexible tools, modified existing backend code to fit what I needed, and built the entire front end. These tools became an essential part of OpenSky's evolution over the following 18 months.
I held the undisputed record for fastest lap around the office.
I organized the first annual company-wide innovation challenge: OSSUM SAUCE (OpenSky Struggle for Superior Understanding of Metrics & Superhuman Application of this Understanding to Current Exigencies). This was an all-day, company-wide, team-based contest with cash prizes awarded for the ideas deemed most likely to deliver results with minimum engineering effort.