I currently lead the effort at Twitter, to scale the git SCM. Previously, I helped found and lead the VM / Diagnostics group, where I hacked on the Hotspot Java VM; Specifically, on improving its observability and getting it to talk to native Linux tools like GDB (code) and the Perf profiler.
When I'm not writing code you might find me either writing, mixing and mastering music, playing NBA 2k on my Xbox, or, more recently, on my ROLI Seaboard, that I'm hoping to use to teach myself how to play carnatic classical music with. My IMDB profile has a partial list; And my filmography, a complete list of movies I've written the score for.
If you've found any of the software I've written or content on this website useful, please consider expressing your support and appreciation by donating to a charity I support - Sri Ahobila Mutt.
- A short piece I wrote and performed using the Seaboard. Based on the carnatic raga Senjurutti.
- A ROLI Seaboard is my newest acquisition, obsession. A complete guide to programming multi-channel MIDI in Logic X forthcoming.
- My signature tune for Seattle Saaral - Seattle's first tamil radio station is now live!
July 2014, OSCON, Portland, OR, Tracing and profiling Java (and native) applications
in Production (slides).
The ability to understand the behavior of a software system so as to be able to answer questions about its health, while important has always been a challenge for software developers. System tools or language debuggers and profilers tend to be myopic in their scope and cumbersome to understand, setup and use; More so when applied to a distributed system. Specifically, requiring recompilation of software with additional instrumentation, adding a non-trivial performance overhead, and, equally importantly, requiring an elaborate setup renders tools unfit to be used in production.
This talk describes a new, low overhead, full stack tool (based on the Linux perf profiler and infrastructure built into the Hotspot JVM) we’ve built at Twitter to help solve this problem of dynamically profiling and tracing the behavior of the kernel and applications (including managed runtimes like the JVM) in production.
- November 2013, Twitter University, San Francisco, CA, Profiling Java in production.
A non-exhaustive list of stuff I've built or worked on over the years:
- Source GIT, Twitter's fork of the Git distributed version control system.
- TwitterJDK, Twitter's fork of the OpenJDK.
- Kiji, Twitter's fork of the Ruby VM.
- NGEN PDB support for the .NET CLR.
Spectre and Meltdown
The ROLI Seaboard RISE 49
Debugging dynamically generated code in Emacs GUD
Writing a multiboot PE kernel: part 2
Writing multiboot PE kernels using Visual C++
SSCLI GC: Implementation notes
subscribe via RSS