Bonnie E.

Staff Software Engineer

New York, New York, United States

About

I am a Staff Software Engineer focusing on Authorization and Identity and Access Management at MongoDB. I'm excited about: untangling legacy systems; distributed systems and scalability challenges; gnarly API design challenges; company cultures that emphasize humility, kindness, and growth. Previously, I was a Staff Software Engineer & Tech Lead at Twitter. I worked on distributed systems engineering in Scala and helped build & maintain some of the largest services at Twitter. I specialized in API design, caching strategies, and system reliability. I'm also the author of Learning React Native (bit.ly/lrnamaff), a book about creating Android and iOS apps with JavaScript, which was published with O'Reilly Media in 2015 (1st ed) and 2017 (2nd ed). It hit #1 on Amazon's Software Development category! See more of my work here: https://blog.bonnieeisenman.com or https://github.com/bonniee/

Experience

  • Staff Software Engineer at MongoDB
    Jan 2024 - Present · 2 yrs 6 mos

    Identity and Access Management, focusing on Authorization, for MongoDB's database-as-a-service product, Atlas.

  • Twitter (7 yrs 1 mo)
    • Staff Software Engineer
      2020 - Nov 2022 · 2 yrs 11 mos

      Joined Core Systems Libraries team (CSL). Contributed to open-source Finagle, a protocol-agnostic Scala RPC library used by 1,200+ Twitter microservices as well as external companies.

    • Staff Software Engineer
      2018 - 2020 · 2 yrs

      I joined the Core API & GraphQL Team at Twitter as a Staff Software Engineer and Tech Lead. I proposed and led an effort to simplify legacy REST API infrastructure, which was Twitter's #2 most common factor in externally-visible downtime. This effort was part of a larger transition to GraphQL and hosted-microservice ("Strato") model that dramatically reduced feature development overhead - many features could now be built in weeks instead of months or quarters. I designed and implemented the migration path, with a team of 2 other engineers. We wrote a new "bridge" service to support the migration, which scaled to handle all Twitter first-party traffic (4M+ requests/sec). Ensured safe migrations using automated error detection tools such as Diffy.

    • Senior Software Engineer Technical Lead
      Nov 2015 - 2018 · 2 yrs 3 mos

      I joined the User & Social Graph Services Team at Twitter in 2015. I was promoted to Senior Software Engineer and became Tech Lead for the team in 2017. My team was responsible for designing, building, and maintaining services that handled 40M+ reqs/sec across 4,000+ instances, for both real-time and offline batch processing.

  • Software Engineer at Codecademy
    Aug 2014 - Nov 2015 · 1 yr 4 mos

    Developed in-browser coding IDE from the ground up as part of a team of 3 engineers. Implemented Stripe payment processing for Codecademy's first paid feature. Worked in JavaScript (React and ES6), Ruby, Go (Golang), and Python on projects including container management, chatbot features, and automatic error detection of untrusted user-submitted code.

  • Software Engineering Intern at Fog Creek Software
    Jun 2013 - Aug 2013 · 3 mos

    Designed, developed, and deployed new tablet-­‐optimized Android tablet app for Trello as part of a three-­‐person team. Pushed the limits of the Android API, developing custom solutions to extend core UI elements. Released beta version to over 1,000 testers after eight weeks of development, and continued iterating and responding to feedback over next three weeks.

  • Engineering Practicum Intern at Google
    Jun 2012 - Aug 2012 · 3 mos

    Analyzed the previously unquantified effects of info and binary logging on performance metrics across the Gmail stack using the Gmail loadtest. Identified causes of extreme variance between runs of the loadtest. For 20% project, worked with the Widevine team (acquired 2010) on sample iOS apps which demonstrated use of Widevine’s DRM APIs for clients such as HBO. Implemented subtitles and audio track selection in iOS apps.