San Francisco, California, United States
I write software to help solve hard problems. And I hope that in the end me solving hard problems makes users happy. Areas of interest include: how to collect and organize data (distributed systems, databases, data streaming) and how to put this data to good use (data science, machine learning).
Start-up life: Writing functional React components, converting JS -> TS in the backend, developing graphql APIs, spec'ing out a new authentication infrastructure, delivering features. You name it, I did it.
Building a data store that is globally distributed (as in all over the world). The store needs to be up all the time (as it's powering features like login), consistent enough (can't create the same username twice concurrently), but still fast enough (to support use cases such as user login). This store bases on Etcd's excellent raft library written in Go. It's designed to run on AWS all around the world in stateless docker containers. Co-owning all aspects of this project such as design, development, deployment, you name it. Side gig: Writing a globally distributed Kafka based on the same technology.
Built bullet-proof document storage for documents. Storing legal documents is at the core of banking. I was part of a team of two building and managing a store that never loses data ... ever. But still is fast enough to handle incoming traffic. Developed parts of Lending Club's authentication service powering the login functionality - chiefly the addition of anomaly detection for authentication attempts. This project involved tracking authentication attempts to generate profiles and verifying new authentication attempts against these profiles to find deviations. Owned all aspects of these services: Deployment on AWS, testing and deployment pipelines using Jenkins, monitoring and response, development and design, and integration into the rest of Lending Clubs service landscape.
Built microservices that derive insight out of massive amounts of raw data (such as dashboards, alerts, etc.). These services are racing through gigabytes of data every minute to notify you about broken services before your customers realize. Contributed to all aspects of AppDynamics' microservice landscape: deployment infrastructure automation on AWS using Docker, release pipelines using Jenkins, data storage (MySQL, HBase), API (Java, Dropwizard), integration with other services, customer cases.