Confluent Inc |
Palo Alto
|
Software Engineer |
Jun 2016 to Jan 2017
|
Worked on Kafka Connect, the Apache Kafka framework for streaming data import and export between Kafka and other data systems. I helped get three connectors (JDBC Sink, Elasticsearch Sink, and Cross-DC Replicator) to the finish line, and proposed and implemented several framework improvements (KIP-89, KIP-66). I also independently developed a DynamoDB connector.
Heap |
Remote
|
Software Engineer |
Jan 2016 to Mar 2016
|
My primary project involved improving resilience of the ingress pipeline, by shifting aggregations that were part of Heap's data collection service to be performed downstream of Kafka using Flink stream processing jobs.
Etsy |
NYC; Remote
|
Senior Software Engineer |
Jul 2012 to Dec 2015
|
Worked on the Search Infrastructure team that builds and supports the backend for all user-facing search features. Contributions include:
- Elasticsearch infrastructure for new use cases and porting several of our existing indexes.
- Improving ingest pipeline for search indexes with an intermediary datastore for denormalized data, reducing maintenance burden of divergent indexing code.
- Build improvements such as modularization, better IDE integration, and internal release workflows.
- Confidence building such as request replay tooling and Zipkin-based distributed tracing integration.
- Performance improvements using a variety of techniques like caching, parallelization, and simply reducing computational work.
- Debugging tricky problems like deadlocks and memory leaks.
- Deeply involved in all aspects of our stack such as upgrades, monitoring, sharding of the primary search index, etc.
Bloomberg LP |
London
|
Financial Software Developer |
May 2010 to Jun 2012
|
- Led reengineering effort of clearing house integration for swaps. Delivered a well-factored suite of backend applications that increased maintainability, reliability and ease of support. Automated regression testing with production data.
Developed a solution for replicating legacy databases to a relational database thereby easing data access patterns.
- Wrote and maintained Python bindings for key libraries such as for RPC and database access. These were actively used firm-wide. Delivered talks introducing developers to Python.
- Helped improve performance of an in-house Scheme interpreter by 2-3x with the incorporation of the Boehm garbage collector and better tail-call optimization.
conject AG |
Munich
|
Software Engineer |
Jan 2010 to Apr 2010
|
Development and maintenance of a web application for real estate project management. Made a significant contribution to reduction of bug backlog in my time there.
Apache Software Foundation |
Remote
|
Google Summer of Code Student |
May 2009 to Aug 2009
|
Incorporated support for the SSH and SCP protocols into the Apache Commons-Net Java library. Beyond Summer of Code, I continued to independently develop it as sshj, and it came to be used by a number of companies and open-source projects. Handed over the reins in 2014.
Lucene/Solr Revolution · Search-time parallelism: an experiment |
Nov 2014
|
Spoke about composable segment-level parallelism for Lucene as a way to improve search performance. Some of my proposals, like separating index and segment-level Collector abstractions, were incorporated in Lucene 5.
IPOM · NCClient: A Python Library for NETCONF Client Applications |
Oct 2009
|
Developed as a final year guided research project at Jacobs University Bremen. It continues to be maintained and used in the NETCONF community. S. Bhushan, H.M. Tran, J. Schönwälder: NCClient: A Python Library for NETCONF Client Applications. 9th IEEE International Workshop on IP Operations and Management (IPOM 2009), Springer LNCS, October 2009.
Five Pumpkins · Android Developer |
Jan 2010 to Mar 2010
|
Refactored codebase for suite of educational applications into shape. Developed "On-the-Go" app on this basis (100,000+ downloads).