I have worked for Apple since 2005, holding a number of different
positions over the years
(a partial history is available in the Apple section of my résumé). These days, I run the Developer
Tools department, which is responsible for Instruments,
as well as compilers, debuggers, and related tools.
To answer a FAQ: Yes, I do still write code and most of it goes out to open source.
However, due to the nature of the work, I usually can't talk about it until a
couple of years after it happens. :)
I started work on the Swift
Programming Language
(wikipedia)
in July of 2010. I implemented much of the basic language
structure, with only a few people knowing of its existence. A few other (amazing)
people started contributing in earnest late in 2011, and it became a major focus
for the Apple Developer Tools group in July 2013.
The Swift language is the product
of tireless effort from a team of language experts, documentation gurus, compiler
optimization ninjas, and an
incredibly important internal dogfooding group who provided feedback to help
refine and battle-test ideas. Of course, it also greatly benefited from the
experiences hard-won by many other languages in the field, drawing ideas from
Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others
to list.
The Xcode Playgrounds feature and REPL were a personal passion of mine, to
make programming more interactive and approachable. The Xcode and LLDB teams
have done a phenomenal job turning crazy ideas into something truly great.
Playgrounds were heavily influenced by Bret Victor's ideas,
by Light Table and by
many other interactive systems. I hope that by making programming more
approachable and fun, we'll appeal to the next generation of programmers and to
help redefine how Computer Science is taught.
As of Dec 2015, Swift is open source! Join its development at http://swift.org.
I lead and am the original author of the LLVM
Compiler Infrastructure, an open source umbrella project that
includes all sorts of toolchain related technology: compilers, debuggers,
JIT systems, optimizers, static analysis systems, etc. I started both
LLVM and Clang and am still the individual with the most commits.
Of course, as the community has grown, my contribution is being dwarfed by those from a
wide range of really amazing folks.
LLVM has enjoyed broad industry success - being widely used in commercial
products - as well supporting hundreds of academic papers. For its
contribution to the software industry, LLVM has been recognized with the ACM Software System Award.
For more details about LLVM, see:
- LLVM Compiler Infrastructure home page
- Invited talks about LLVM and other topics
- Random notes on LLVM - Unofficial notes and thoughts
on LLVM extensions and todo items.
Here are some of my more notable publications from my graduate school work.
A more complete list can be found on my
resume.