Founder | Architect | Full-stack Software Engineer
2003 - PRESENTElector- Built the entire technology stack for managing data and voting on our custom-built mobile devices, transferring encrypted information from them to the central database, and displaying results on a desktop application.
- Worked with a designer and front-end developers to transition the UI from WinForms to web-based technologies, designing and implementing APIs and a data structure and more complex functionalities on the front end.
- Added a web server and web interface to the system allowing hybrid workflow for users to use a mix of physical devices in a meeting room and web portal to issue votes and observe data in the system.
- Set up and managed private Kubernetes cluster with a distributed file (Longhorn) and database (HA PostgreSQL) storage.
- Developed an early version of an Android app that communicates with the system through WiFi and allows participation in the voting process for users not using our physical devices.
Technologies: .NET, Nemerle, Electron, gRPC, Vue, AES, C++, Embedded C, ASP.NET Core, C#, Google Protocol Buffer, .NET Core, Kubernetes, Helm, TypeScript, PostgreSQL, JavaScriptSoftware Engineering Consultant
2018 - 2019Shareablee- Designed the initial pipeline version for storing social media mention data points in a time-series database (Druid).
- Implemented an indexing pipeline controller (Java) for importing data points into a Druid-based time-series indexing system.
- Evaluated performance of the created serving system backed by Druid for queries required in the company's business analysis service.
Technologies: Java, Druid.io, gRPC, GitSenior Software Engineer
2016 - 2018DataX- Developed a big-data pipeline using Spark and Cassandra running in containers on a small Kubernetes cluster.
- Designed parts of the schema and optimized queries run on a time-series serving system (Druid) to process telecommunication equipment metrics data.
- Ported a Python query preparation and execution engine to Java optimizing performance 10x.
Technologies: Java, Spark, Druid.io, Kubernetes, Python, GitStaff Software Engineer | Tech Lead
2007 - 2015Google- Scaled, as the tech lead of a nine-member team, the web search index serving system to handle a repository of x00B documents and thousands of QPS by adjusting data sharding and cluster layout, load testing, and overseeing production launch.
- Contributed several data structure and performance optimizations to allow more data and QPS on a system with fixed resource allocation of highly specialized servers.
- Rebuilt and maintained a pipeline accommodating timely updates of the index and its sharding correction data, including a novel data structure that I designed and developed with a coworker (US Patent US8700583B1).
- Implemented and launched an alternate way to shard keys across an index serving cluster, allowing more flexible selection of sharding between data push and serving, which removed bottlenecks from push infrastructure and ensured reliable index updates.
- Implemented a schema of index shard replicas exchange between servers during data refresh build, cutting time and resources used for index updates on a serving cluster by around 50%.
- Improved reliability, transparency, and automation of the release process of a web search back end across tens of global data centers. Oversaw multiple rollouts, completing comparative load tests and debugging regressions and system behavior changes.
- Built a cluster management platform module for orchestrating service assignments to data centers to maintain their global capacity during rollouts and traffic changes. Designed and implemented UI components for the platform (Java, GWT).
- Improved, automated, and oversaw the cleanup of dead code from the company-wide codebase.
Technologies: C++11, Large Data Sets, Large Scale Distributed Systems, Sharding/Cell Infrastructure, Python, Site Reliability Engineering (SRE), Scaling, Information Retrieval, Technical LeadershipSoftware Engineer
2005 - 2007Axit- Expanded on features and bug fixes in order fulfillment and a shipment document processing web platform, designing and implementing technological solutions to customers' business needs.
- Managed a configuration team that automated and applied custom configuration changes requested by customer support and designed special reports (SQL queries).
- Built a Ruby on Rails internal website used for the automated execution of batch and on-demand parametrized database queries to smooth out workload on the configuration team.
Technologies: Java, SQL, Oracle SQL