I'm a software engineer and writer based in San Francisco, CA.
View my traditional resume here.
I started my career as a Web developer and UI generalist. Starting in 2010, I published over a dozen apps for clients as an independent contractor. During this time, my contributions on Stack Overflow and open source started to receive attention, and in 2013, I joined Apple as a developer on the Camera and Photo Apps team, helping ship the first versions of Photos for iOS 7 and Mac OS X Yosemite, as well as iPhoto 2.0 for iOS.
Since 2014, the focus of my work has been 3D graphics, and more particularly Apple's Metal graphics API.
As a Metal Ecosystem Development Engineer at Apple, I worked with numerous third-party game and app developers to incorporate Metal into their engines, and debug and optimize their implementations. This work garnered special thanks in the credits of games such as Obduction by Cyan.
As an engineer in Apple's esteemed and secretive Human Interface design studio, I built specialized tools to enhance designer productivity, including tools to help rapidly prototype new photo filters for the iOS Camera app. Additionally, I built the first OpenGL ES implementation of the much-loved fireworks "celebration" for watchOS 4.
Since leaving Apple at the end of 2017, I've continued to work on mobile graphics, now with an emphasis on augmented reality (AR). As a freelancer, I've had gigs at Apple and Twitter (unannounced projects), Asteroid Technologies (rendering engine architecture), Standard Cyborg (low-level shader optimization), Blink (low-level typographic rendering), and others. I'm currently building a mobile-first AR rendering engine to be announced later.
I'm passionate about sharing what I know about graphics with a broad audience. Since 2014, I have written and published dozens of in-depth tutorials on Metal at my website Metal by Example, which has received over half a million hits. At the end of 2015, these articles were collected and published in the form of an e-book which has sold thousands of copies. Work on my second book is currently in progress, and I expect it to be published in 2023.
In addition to Metal by Example, I have written various other places on the Web:
- Metal (objc.io Issue #18: Games)
- An Introduction to Core Image (objc.io Issue #21: Camera and Photos)
- Understanding CMTime
Semi-autobiographical / Fiction
Speaking and Teaching
I come from a long family line of teachers. My mother, both paternal grandparents, and sister were all professional teachers. I take the dissemination of knowledge very seriously, and to that end, I have been a mentor and teacher to many junior and seasoned engineers. I've been a leader both independently and under the auspices of organizations like Make School (where I was an instructor in 2015) and Hackbright Academy (where I have repeatedly been asked back as a mentor).
It has also been my privilege over the years to speak at developer meetups and conferences.
Below, I've gathered the slide decks of some of my talks. The most recent ones are of course more reflective of my current interests.
The easiest way to get in touch with me is by emailing "wm" at this domain. I am also active on Twitter.