About

Hi! I'm kavya.
I write software for a living, and live in foggy San Francisco.
I've primarily worked on "backend" systems and infrastructure, although I recently switched to professionally tinkering with embedded systems and applications.
I currently work at Samsara.

In addition to building systems, I talk about them at conferences too.
I sometimes write about software, but admittedly less than I'd like to.

In my non-programming life, I climb rocks and read books. I like eating pies too.

Talks

2019

  • Let's Talk Locks!

    Locks have a bad rap for "being slow" and yet, they're used extensively in applications and under-the-hood. So, what gives?
    This talk, given at QCon NYC and Istanbul Tech Talks, explored when and why locks affect performance, delved into Go's lock implementation as a case study, and discussed strategies to use when locks are actually a problem.

    abstract | slides | talk

2018

  • The Scheduler Saga

    The Go scheduler is, simply put, the orchestrator of the language runtime. It schedules and unschedules goroutines, and also coordinates network polling and memory management.
    This GopherCon keynote explored the inner workings of the scheduler machinery.

    abstract | slides | talk

  • Applied Performance Theory

    How does your system perform under load? What are the bottlenecks, and how does it fail at its limits? How do you stay ahead as your system evolves and its workload grows? Performance theory offers a rigorous and practical (-- yes!) approach to performance tuning and capacity planning.
    This talk, given at QCon London, Strange Loop, and Velocity NYC, dived into elegant results like Little's Law and the Universal Scalability Law, and explored how we might apply them to our systems.

    abstract | slides | talk

2017

  • Understanding Channels

    Go's channels provide a simple mechanism for goroutines to communicate, and a powerful construct to build sophisticated concurrency patterns.
    This GopherCon keynote delved into the inner workings of channels and channel operations, including how they're supported by the runtime scheduler.

    abstract | slides | talk

  • T-3, 2, 1: Future-proofing Production Systems

    Velocity London keynote.

    abstract | slides | talk

  • Keeping Time in Real Systems

    Given at Strange Loop.

    abstract | slides | talk

  • The Memory Chronicles: A Tale of Two Pythons

    MicroPython is the leanest, meanest full Python implementation. Designed for microcontrollers, this variant of Python runs in less than 300KB of memory, _and_ retains support for all your favorite Python features.
    So what does it take to make the smallest Python? Put differently, why does CPython have a large memory footprint?
    This talk, given at PyCon, explored the internals of MicroPython and contrasted it with CPython, focusing on the aspects that relate to memory use.

    abstract | slides | talk

  • The Ordering of Events in Systems

    Given at QCon NYC.

    abstract | slides | talk

2016

  • Looking Inside a Race Detector

    Given at Strange Loop, QCon SF, Systems We Love SF.

    abstract | slides | talk

  • A Tale of Concurrency through Creativity in Python: A Deep Dive into Gevent

    gevent is an open source Python library for asynchronous I/O. It provides a powerful construct to build concurrent applications; think threads, except lightweight and cooperatively scheduled.
    This talk, given at PyCon, delved into how gevent is architected from its building blocks -- sophisticated coroutines, an event loop, and a dash of creativity to neatly integrate them.

    abstract | slides | talk

Articles

Etc.

Coming soon!