Zurich, Switzerland
Working data platforms, log processing pipelines and reporting in Shopping (also worked on YouTube Data previously).
Worked on Google Cloud Platform - Cloud IoT.
Worked on the ZooKeeper project. Created various jobs for checking metrics and tests for using different versions of ZooKeeper client and server. Contributed to the upstream by mainly working on adding the possibility of querying more information together in one request (ZOOKEEPER-3402) and its dependencies.
Developed new features for Clang based analyzer tools as part of the CodeChecker Team. During the first period I have implemented 2 checkers for various tools: - for an AST pattern matching tool, Clang Tidy for checking misused enum variables ( reviews.llvm.org/D22507 ) - for the Clang Static Analyzer - which uses symbolic execution - a checker which checks for misused moved objects ( reviews.llvm.org/D24246 ) I was mainly working on analysis across translation units for the Clang Static Analyzer and the ASTImporter.
Improved Loop Execution Modeling in Clang Static Analyzer The current implementation of modeling a loop is quite simple in the Clang Static Analyzer. This simple approach results a loss of coverage, which indicates false negatives. My work on improving the loop modeling primarily can be divided into 2 tasks: 1. Loop Unrolling - Work up heuristics and AST patterns in order to find specific loops which are worth to be completely unrolled. Evaluated the option on different C/C++ open source projects, and measured performance as well as coverage to choose the best defaults. 2. Loop Widening - The Loop Unrolling work laid the infrastructure for future improvements in loop modeling. In the last part of the summer, I started investigating approaches to Loop Widening, where the analyzer simulates the execution of an arbitrary number of iterations. There is already a solution which reaches this behavior by discarding all of the known information. My work was to give a more precise solution/approach for widening.