Open Source Projects

Experience

2016 - present Odnoklassniki
position Lead Software Engineer in Platform team
description Infrastructure components.
tools Java, C, C++
2015 - 2016 Yandex.Classifieds
position Lead of Backend Infrastructure team
description Led design and development of infrastructure components for fault-tolerant distributed high-loaded aggregators and classifieds (Auto.ru, Yandex.Realty, Yandex.Rabota, Yandex.Travel with several million monthly audience each): counters/limiters, billing, telephony, analytics, moderation, quality control, etc.

Designed and implemented content quality control components.

Helped to unify the technology stack and improve multi-location reliability of Auto.ru.

Still obtaining experience in people management skills, building high performance teams, making thing right and in time, balancing risks, demands and constraints.

Trying to improve deploy processes and introduce reactive programming.

tools Scala, Akka, Spray, Cassandra, Hadoop, HBase, Hive, YoctoDB, Docker, Consul, Swagger, Upsource, Teamcity
2014 - 2015 Yandex LLC
position Lead of Infrastructure and Performance team
description

Designed, reviewed and implemented numerous internal components (libraries and microservices) used in aggregators (Yandex.Auto, Yandex.Realty, Yandex.Rabota with several million monthly audience each): indexing, search, billing, counters/throttlers, activity tracking, antifraud, content quality control, archival data processing, subscriptions, metering, monitoring, etc.

Being responsible for scalability and fault tolerance took part in numerous architecture reviews: Yandex.Rabota, Yandex.Travel, Reviews, UGC, etc.

Advocated prolific use of Cassandra key-value storage for real-time and nonreal-time data and use of Akka for building reactive concurrent services. Led introduction of Hadoop ecosystem (HBase and Hive) for archival data processing.

Broadened code review and continuous integration practices in company development process.

Led design and implementation of open-source embedded DBMS YoctoDB which replaced Apache Lucene in Yandex.Auto and is being used now in Auto.ru as a search index implementation -- service latency has been improved substantially.

Some results were presented in russian at JPoint 2014.

Took part in permanent hiring activities and interviews including senior-level candidates.

Influenced hardware resource planning, improvement of deploy process, SLA enforcement.

Participated in ICFPContest 2014.

tools Scala, Java, Akka, Spray, Cassandra, YoctoDB, MySQL, Hadoop, HBase, ZooKeeper, Hive, Spark, Kafka, Consul, Protobuf, Swagger, Upsource
2013 Yandex LLC
project NDA
position Senior Software Developer
description Data mining and feature extraction for reactive personalization
tools Scala, Java, Akka, Hadoop, Cassandra, Kafka, YoctoDB, JMH
2011 - 2013 Yandex LLC
position Senior Software Developer
description Started with designing and implementing framework for streaming parsing and processing of microformats during Web crawling.

Led migration from Subversion to Mercurial. Introduced Scala, Akka, Metrics, dependency management, continuous integration, code review practices and many tools and technologies still in use.

Justified necessity of developing eternal archive of offer content and user activity data.

Took part in design and code review of numerous internal services and components: user settings, subscriptions and notifications, picture processing and caching, Web crawling, archival data collecting and processing, etc.

Initiated complete rewrite of the existing indexing infrastructure from single node process to scalable distributed highly available (multi datacenter) streaming indexing (covered by patent). Yandex.Auto 2.0 and Yandex.Realty backends launched in production with several million monthly audience each. Yandex.Rabota implemented the same ideas by example of previous launches.

Advocated use of NoSQL (Cassandra, HBase, Redis, MongoDB) which is widely adopted.

The results were presented in russian at Yandex.Subbotnik and ADD-2012.

Took part in permanent hiring activities and interviews including senior-level candidates.

Participated in ICFPContest 2011 and ICFPContest 2012. Launched local functional community FProg.

tools Scala, Java, Jetty, Akka, Circumflex, Maven, Ivy, Cassandra, Hadoop, HBase, MySQL, ZooKeeper, Curator, Lucene, Redis, memcached, MongoDB, Scalatest, Camel, Protobuf, ZeroMQ, JGroups, Kestrel, Metrics, Graphite, Artifactory, Findbugs, PMD, Teamcity, Crucible, YourKit
2010 - 2011 Digitek Labs
project R&D Project on Dynamic and Static Analysis of JavaScript
position Researcher and Software Developer
description Collaboration with Microsoft Research. Instrumented Firefox JavaScript engine with tracing infrastructure for collecting, analysis and visualization of dynamic traces.

Did thorough research on static analysis methods and algorithms.

tools C/C++, Python, SQLite, Linux
2008 - 2009 Digitek Labs
project R&D Project on Automatic C/C++ Defect Detection System
position Researcher and Software Developer
description Designed and implemented various core subsystems of Aegis platform including (but not limited to) interval analysis, points-to analysis, resource analysis, object caching, defect checking, numerous optimizations.

Went through thorough research on static analysis methods and algorithms.

The results are published.

tools Java, Ant, C, XML, PostgreSQL, JSP, Hibernate
2007 - 2008 Digitek Labs
project R&D Project on C Software Behavior Animation
position Researcher and Software Developer
description Collaboration with Panasonic Research. Developed GNU C parser and instrumentation tools for code transformation.
tools Java, JavaCC, C, C Preprocessor, XML
2004 - 2007 Digitek Labs
project Submarine Hydroacoustic Software
position Software Developer
description Designed and implemented various components: classification, identification, ray tracing, audio, networking, UI, logging, multithreading, DSP, etc. Obtained extensive experience with debugging and optimization of legacy code base.

Improved development processes -- introduced Trac, Mercurial, unit testing.

tools Linux, Object Pascal, Java, C, XML

Freelance

2004 - 2008 Porting from Windows 16 bit to Linux and support of legacy meteorological GIS code base using Borland Kylix 3 Platform

Education

2007 - 2010 Postgraduate education
institution Department of Computer Systems and Software Engineering, Saint-Petersburg State Polytechnical University, Russia
2005 - 2007 Master’s Degree summa cum laude in Software Engineering
institution Department of Automation and Computer Science, Saint-Petersburg State Polytechnical University, Russia
GPA 5.0 out of 5.0
Master Thesis Synthesis of Distributed Application Templates Based on Formal Specification of Applied Protocols
2001 - 2005 Bachelor’s Degree cum laude in Computer Science
institution Department of Automation and Computer Science, Saint-Petersburg State Polytechnical University, Russia
GPA 5.0 out of 5.0
Bachelor Thesis Development of Scalable High-Availability Server Cluster Platform Using OpenMosix Technology

Coursera

Teaching

2017 Technopolis
course Lecturer in Databases
2014 - present Saint-Petersburg State Polytechnical University
course Lecturer in Parallel Computing
2013 Computer Science Center
course Lecturer in Databases
2011 - 2013 Saint-Petersburg State Polytechnical University
course Lecturer in Formal Methods of Software Quality Assurance
course Lecturer in Parallel Computing
2009 - 2011 Saint-Petersburg State Polytechnical University
course Lecturer in Formal Methods of Software Quality Assurance
course Teaching Assistant in Software Engineering
course Teaching Assistant in Information Systems and Databases
2008 - 2009 Saint-Petersburg State Polytechnical University
course Teaching Assistant in Information Systems and Databases

Personal Skills

Operating Systems
Proficient Linux
Familiar Mac OS
Familiar Windows
Programming Languages
Proficient Scala, Java, C, Object Pascal, SQL
Familiar Go, C++, OCaml, Haskell, Python, JavaScript, Assembler, Bash
Tools & Technologies
Project Management Jira, Trac
VCS Hg, Git, Subversion, CVS
Build and CI Maven, SBT, Ant, Ivy, Make, Teamcity, Hudson
IDE IntelliJ IDEA, NetBeans
Databases Cassandra, HBase, Redis, MongoDB, Lucene, Firebird, PostgreSQL
Web XHTML, JSP

Language Skills

Native Russian
Fluent English
Basic Finnish

Conference Talks

2017 Andrei Pangin, Vadim Tsesko. The Art of JVM Profiling // JPoint 2017
2016 Vadim Tsesko. YoctoDB @ Yandex.Classifieds // CEE-SEC(R) 2016
2014 Vadim Tsesko. Akka at Yandex // JPoint 2014
2012 Vadim Tsesko. Streaming Data Processing with Actor Model // Application Developer Days (ADD-2012)
2012 Dmitry Kachmar, Vadim Tsesko. Life of a Project: from Idea to Implementation // Yandex.Subbotnik (2012)
2011 Mikhail Glukhikh, Vladimir Itsykson, Vadim Tsesko. Using Dependencies to Improve Precision of Program Analysis // Program Semantics, Specifiation and Verification (PSSV-2011), The 6th International Computer Science Symposium in Russia (CSR 2011)
2011 Mikhail Belyaev, Vadim Tsesko. Development of LLVM-based Static Analysis Tool Using Type and Effect Systems // Program Semantics, Specifiation and Verification (PSSV-2011), The 6th International Computer Science Symposium in Russia (CSR 2011)
2010 Vladimir Itsykson, Mikhail Moiseev, Marat Akhin, Alexey Zakharov, Vadim Tsesko. Automatic Software Defect Detection in C/C++ based on Static Analysis // In Proceedings of the Microsoft Technologies in Theoretical and Applied Programming conference. — St-P.: SPbSPU, 2010. — pp. 70-71.
2009 Vladimir Itsykson, Mikhail Moiseev, Vadim Tsesko, Alexey Zakharov. Automatic Defects Detection in Industrial C/C++ Software // Software Engineering Conference in Russia (CEE-SECR), 2009 5th Central and Eastern European. DOI:10.1109/CEE-SECR.2009.5501189

Journal Papers

2016 Vadim Tsesko and Svyatoslav Demidov. YoctoDB: A Partitioned Immutable Embedded Database. CEE-SECR '16 Proceedings of the 12th Central and Eastern European Software Engineering Conference in Russia. (Backup PDF).
2016 Dmitry Schitinin and Vadim Tsesko. Streaming matching of events. CEE-SECR '16 Proceedings of the 12th Central and Eastern European Software Engineering Conference in Russia. (Backup PDF).
2014 Dmitry Igorevich KACHMAR, Vadim Aleksandrovich TCESKO. A system and method for managing partner feed index // Patent US20160203175 A1.
2011 Mikhail Glukhikh, Vladimir Itsykson, Vadim Tsesko. Using dependencies to improve precision of code analysis // Automatic Control and Computer Sciences. — St-P.: SPbSU, 2012. — No. 46 (7). — pp. 338-344.
2011 Mikhail Glukhikh, Vladimir Itsykson, Vadim Tsesko. The use of dependencies for improving the precision of program static analysis // Modeling and Analysis of Information Systems. — Yaroslavl: PG DYSU, 2011. — No. 18 (4). — pp. 68-79.
2009 Vladimir Itsykson, Mikhail Moiseev, Marat Akhin, Alexey Zakharov, Vadim Tsesko. Points-to Analysis Algorithm for Source Code Defect Detection // System Programming. — St-P.: SPbSU, 2009. — No. 4. — pp. 5-30.
2009 Vladimir Itsykson, Mikhail Moiseev, Vadim Tsesko, Alexey Zakharov, Marat Akhin. Interval Analysis Algorithm for Source Code Defect Detection // Information and Control Systems. — St-P.: Polytechnica, 2009. — No. 2 (39). — pp. 34-41.

Program Committee Membership

2017 IMHCS’17: Information Management in Human-Centric Systems (CYBCONF-2017)
2016 SEIM-2016: Software Engineering and Information Management
2014 TMPA-2014: Tools and Methods of Program Analysis
2013 TMPA-2013: Tools and Methods of Program Analysis

Awards

2010 Third degree diploma at the Microsoft Technologies in Theoretical and Applied Programming conference
2010 Saint-Petersburg Government grant holder
2009 Saint-Petersburg Government grant holder
2008 First degree diploma at the XXXVII All-Russian Scientific Conference of Students and Post-graduate Students "Week of Science"
2007 Saint-Petersburg Government grant holder
Copyright © 2013-2017 Vadim TSesko