LinkedIn
Apr 2019 - Present
Senior Staff Software Engineer
Sep 2023 - Present
• 1 yr 3 mosStaff Software Engineer
Apr 2019 - Sep 2023
• 4 yrs 6 mosWorking on Java performance tooling, optimizations and infrastructure projects. Developed internal tools for comprehensive automated analysis of GC performance, anomaly detection and advice generation. As a result, LinkedIn currently has the best GC monitoring and analysis suite in the industry. Analyzed heap dumps and/or GC stats of hundreds of projects and recommended/implemented optimizations in many of them. Made important infrastructure improvements. Working on an initiative to reduce memory allocation for hundreds of apps across the company, to save resources and money. Writing educational documentation, delivering presentations, consulting engineers all around the company.
Dec 2015 - Present
• 9 yrsJXRay is a memory analyzer for Java. It takes a binary heap dump, analyzes it and produces a report file in rich, semi-interactive HTML format. JXRay has several unique advantages. It detects many common problems (data duplication, suboptimal data structures, etc.) right away. It also recognizes most of the standard Java and Scala collections, resulting in a cleaner and more compact analysis outcome presentation. As a result, many memory problems that would otherwise take hours to investigate, become instantly visible in a JXRay report.
Software Engineer
Cloudera
Jan 2016 - Nov 2018
• 2 yrs 11 mosPerformance analysis and optimization of Java applications, primarily related to memory. Made numerous improvements to Hive, HDFS, Sentry, YARN, Spark as well as Cloudera's proprietary applications, that greatly reduced their memory footprint, improved scalability and enhanced performance. See https://issues.apache.org/jira/browse/HIVE-16166?jql=text%20~%20%22jxray%22 for a sample of optimizations to open source projects that I made or proposed.
Previously made many significant enhancements to the internal CDH (Cloudera Distribution of Hadoop) build tools.
Staff Software Engineer, Developer Productivity
Twitter
Mar 2013 - Dec 2015
• 2 yrs 10 mosDesigned, implemented and maintained the distributed system for highly parallelized code compilation and testing, called Iron. It utilized open source technology stack (Finagle, Zookeeper etc.), could run on top of any cloud (Twitter used Mesos/Aurora), and could be customized to work with different build/test tools (Twitter used Pants). For several years, Iron ran 24/7 on 6000+ machines, serving continuous integration, submit queue and sandbox for most of the Twitter source code.
Tech lead of the Developer Productivity - Test team. Oversaw and advised other engineers on most aspects of continuous integration, test execution speedup and feedback, dealing with flaky tests, etc.
Consulting Member of Technical Staff - Research
Oracle Labs
Apr 2011 - Mar 2013
• 2 yrsPrincipal Investigator for the Java Performance Analysis project. Worked on advanced performance analysis techniques based on search for anti-patterns (typical programmer mistakes, API abuse, etc.) in code and memory, and combined analysis of profiles (CPU or heap dumps) plus application code. Developed JOverflow - a Java Mission Control plugin for analyzing heap dumps. Also as a result of this work, some JVM and JDK-level optimization mechanisms were implemented, that made it possible to run naive, unoptimized Java applications much faster than before.
Senior Software Engineer
Google
May 2005 - Mar 2011
• 5 yrs 11 mosWorked on tools for developers and infrastructure projects, in Java and Python. Team lead of the Developer Productivity team within the AdWords Front End group. Developed several innovative tools: Submit Queue (build and test on demand in the cloud, never attempted before); faster Java compilation via dependency checking; faster testing (running test selectively based on code coverage), etc. Later worked on the Google's in-house RPC system. Co-implemented all of the aspects of this system.
Staff Software Engineer - Software Development Tools
Sun Microsystems
Apr 2004 - May 2005
• 1 yr 2 mosProductized JFluid in the form of NetBeans Profiler, that later became Java VisualVM - the most popular open-source profiler for Java.
Software Engineer - Research
Sun Labs
Jun 2001 - Apr 2004
• 2 yrs 11 mosDesigned and implemented the HotSwap technology (dynamic method replacement/instrumentation) in the HotSpot JVM, and the JFluid Java profiler that utilized this technology in innovative ways. Invented several JVM technologies that are now commonplace, e.g. attaching a tool to the running JVM (used by jstack, jmap, jcmd etc.) Developed a new method of memory leak detection based on object number growth patterns. Worked on several smaller projects related to the Java language and platform, most notably the smart dependency checking tool Javamake.