Ka Wai Cheung

My career on the information superhighway.

A brief synopsis of the stuff I created, the things I learned, and the friends I made along the way.

Here goes the story of my career as a web designer, programmer, database developer, architect, systems engineer…whatever you call this mess of roles. I call myself a builder—and that's what I've been fortunate enough to do on the web for over 25 years.

For the past 15 years, my focus has been DoneDone, a task tracking and shared inbox tool. I started building it in the fall of 2008, where many bootstrapped companies were starting up—in a dusty converted loft space that smelled of wood floor lacquer and industrial primer. This one happened to be in Chicago's West Loop in the office of a web consulting company I co-founded two years earlier.

DoneDone was released in April 2009. Early in its life, I had the help of a few talented individuals. In particular, I'm indebted to Mustafa Shabib for his work on its original application architecture and, later on, Jeremy Kratz who developed and managed the front-end for nearly five years.

In 2018, with the help of Portugal-based design and development studio Pixelmatters, we introduced DoneDone 2, a complete reincarnation of the product as not just an issue tracker, but a customer support tool.

From 2019–2024, I've been DoneDone's sole designer and developer. As a development-team-of-one, I've learned to design, build, and continuously ship real software with the limitations (and liberation) of going it alone by exploiting every advantage you can from these constraints (and there are many!). I've tried to capture a small portion of what I've learned by writing essays on software development and creating the Real Code series on YouTube.

Alongside my business partner Michael Sanders, we've worked at our own rapid pace—an organized chaos of product development that I've come to embrace. We eschewed all the normal drudgery of a typical product company: very few meetings, no formal planning or specs nor heavy processes, while still releasing beautiful, sturdy features at a good clip. I'm most proud of our customer product reviews, the numerous companies large and small that have happily stayed loyal for well over a decade, and the tens of millions of tasks and email conversations that DoneDone has helped people manage these past 15 years.


In 2006, I started We Are Mammoth (affectionally called WAM) with Craig Bryant. We were originally called Xoprecious, a name Craig had already trademarked for his own personal portfolio site. It had a curious ring to it and hence became our company name for a handful of months. We started as a duo building Flash microsites for agencies but slowly morphed into a more traditional software development shop. We did some exciting work in those early years as we grew to a small team of seven-or-so.

Some highlights: We designed and built the website and e-commerce engine for Aerobed (the inflatable mattress company) as well as Second City's website and ticketing platform; We worked on a “Citizen Musicians” platform for the Chicago Symphony Orchestra, a video mosaic and worldwide live holiday sing-along for Starbuck's Red campaign, and a website for the NFL's Fuel up to Play 60 campaign.

We moved the office three times in the first three years. The fourth move landed us on this converted residential space in Chicago's growing Fulton Market district, which became home to WAM for the next decade. Hundreds of consulting projects and two SaaS products emerged from there (one of them being DoneDone) as well as some memorable holiday parties. That small team in Chicago eventually became a team of nearly 30 employees based all around the US as we became a fully-remote organization.

I left the company at the end of 2017 to work on DoneDone exclusively but still share a unique bond with several of the people that made that business run.


The underlying database infrastructure of our projects at WAM was managed by a .NET platform I built (with the help of Mustafa) called X2O. It was a CMS and database management platform that also generated API layer code for Flash, Flex, and Javascript-based applications (we were probably a few years early on the JS-SPA era so X2O as a public-facing product never took off). Still, it was a magical, beautiful platform.

The magic of X2O was based on code generation by way of reflection. This concept was first introduced to me by Adam Hoffman, my technical manager at the first and only corporate job I've ever had at Hubbard One, a tech firm focused on the legal industry in Chicago. Adam also introduced me to the artistry and beauty of programming and convinced me not to go to business school when I had plans of doing so—and I am thankful for that advice.


For the few years between Hubbard One and starting We Are Mammoth, I worked on an early social media Flash app called Gritwire under the guidance of Ian Carswell. I built a number of widgets in Flash—an RSS reader, a podcast player, a weather widget, a discussion board to name a few. My work even piqued the interest of some Adobe developers who were building a new SDK based on Flash called Flex. Gritwire never flourished the way we hoped, but I'm still proud of the design and technical knowledge I came away with.

Through the second half of my college career through my tenure at Hubbard One, I spent my evenings and weekends freelance designing websites. I learned to design in Photoshop, build Flash apps, and write HTML/CSS/Javascript largely on my own time. I learned about the business of design and development through folks like Kevin Sidell and Mark Monterastelli—we worked with dozens of clients through Kevin's consulting company, Dream Marketing. Web design became my obsession and I was growing into the discipline as it still was trying to figure itself out. It was an exciting time to be immersed in the industry, especially at the beginning of adulthood.

My first internship in tech was through a short-lived startup called PaxZone where, in 1999, I met Charles Forman, a 19-year-old whose talents and confidence as a self-taught programmer and designer gave me a similar confidence to keep doing what I was doing in a then-nascent field, rather than go down a more traditional career path.

Earlier that year, I landed my first paid gig in the industry by designing the website for Student Solutions, a college shipping and storage company at Northwestern (where I was a student). You never forget the first time you get paid for doing something you love and in this case, it came in the form of a $700 handwritten check and a steak dinner at Pete Miller's in Evanston.

The first time I ever created a webpage was in the fall of 1997 as a freshman at Northwestern in a computer lab in the basement of the university's tech building. I remember rollerblading back to my dorm, opening up my laptop, typing in the URL, and seeing the same webpage I had uploaded across campus. The cross-campus web...The World Wide Web. What an amazing thing.

If you've read this far, I'm impressed! Maybe you'll also be interested in seeing some of my web design work through the years (most of which lives somewhat precariously on the Internet Archive's Wayback Machine) in this blog post:

My 25-year career in web design (through the Wayback Machine).


I've written three books on different topics related to software development. In 2020, I wrote a small book on naming things in programming, that I then published through Leanpub called Landing on a Great Name. In 2012, I published a book on developer life called The Developer's Code through the Pragmatic Bookshelf. Before we decided to start WAM, Craig and I spent nearly a year writing Flash Application Design Solutions, a book that showcased the Flash development environment as a place to build usable web applications, not just fancy site intros. It was published by Apress in 2006.


I've been lucky to work with people in this industry with a variety of approaches to work and life, a fabric of opinions that make you reconsider your own. You find these folks become your own kind of toolset: They help you grow, gain confidence, expose your weaknesses, do the uncomfortable, and discover your strengths.

K.C., January 2024