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.
Formerly worked on the Chakra Javascript Runtime and the .NET Common Language Runtime (CLR) at Microsoft. Authored Chakra's AMD64 optimizing JIT compiler and runtime. I also designed and implemented IE's Javascript CPU profiler and its API.
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.
Updates
May 2016
- 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.
Just setting up my @WeAreROLI seaboard. pic.twitter.com/TtKVHYgMDr
— kaushik (@ksrenev) May 7, 2016 January 2016
- My signature tune for Seattle Saaral - Seattle's first tamil radio station is now live!
July 2014
Recent talks
-
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.
Projects
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.
- The AMD64 backend compiler for the Chakra Javascript engine that ships in Internet Explorer 9 and above.
- Internet Explorer's Javascript CPU profiler and it's API.
- NGEN PDB support for the .NET CLR.
- GDB.
Notes
-
Spectre and Meltdown
-
The ROLI Seaboard RISE 49
-
Debugging dynamically generated code in Emacs GUD
-
jmp mscoree!_CorExeMain
-
Writing a multiboot PE kernel: part 2
-
Writing multiboot PE kernels using Visual C++
-
SSCLI GC: Implementation notes
subscribe via RSS
Humor
Elsewhere