About me

Originally, I am from Sofia, Bulgaria. My research interests include Program Analysis, Algorithms and Machine Learning. I obtained my M.Sc. and B.Sc. from Sofia University, respectively in 2009 and 2006, and my PhD degree from ETH Zurich in 2016. I cofounded DeepCode, which was acquried by Snyk. Currently I am working at Snyk. If you are interested to work with us, write me or apply here. We are also offering MSc thesis topics. Contact Prof. Martin Vechev for details.

PhD Dissertation

Learning from Large Codebases
ETH Zurich, 2016
PDF
Won ACM Doctoral Dissertation Award, Honorable Mention

Publications

2021

TFix: Learning to Fix Coding Errors with a Text-to-Text Transformer
Berkay Berabi, Jingxuan He, Veselin Raychev, Martin Vechev
ICML 2021
Learning to Find Naming Issues with Big Code and Small Supervision
Jingxuan He, Cheng-Chun Lee, Veselin Raychev, Martin Vechev
PLDI 2021

2019

Unsupervised Learning of API Aliasing Specifications
Jan Eberhardt, Samuel Steffen, Veselin Raychev, Martin Vechev
PLDI 2019
Scalable Taint Specification Inference with Big Code
Victor Chibotaru, Benjamin Bichsel, Veselin Raychev, Martin Vechev
PLDI 2019

2018

DEBIN: Predicting Debug Information in Stripped Binaries
Jingxuan He, Pesho Ivanov, Petar Tsankov, Veselin Raychev, Martin Vechev
ACM CCS 2018
Inferring Crypto API Rules from Code Changes
Rumen Paletov, Petar Tsankov, Veselin Raychev, Martin Vechev
PLDI 2018

2017

Learning a Static Analyzer from Data
Pavol Bielik, Veselin Raychev, Martin Vechev
CAV 2017
Program Synthesis for Character Level Language Modeling
Pavol Bielik, Veselin Raychev, Martin Vechev
ICLR 2017

2016

Probabilistic Model for Code with Decision Trees
Veselin Raychev, Pavol Bielik, Martin Vechev
ACM OOPSLA 2016
Learning from Large Codebases
Veselin Raychev
PhD dissertation, ETH Zurich 2016
Learning Programs from Noisy Data
Veselin Raychev, Pavol Bielik, Martin Vechev, Andreas Krause
ACM POPL 2016
PHOG: Probabilistic Model for Code
Pavol Bielik, Veselin Raychev, Martin Vechev
ACM ICML 2016
Statistical Deobfuscation of Android Applications
Benjamin Bichsel, Veselin Raychev, Peter Tsankov, Martin Vechev
ACM CCS 2016

2015

Predicting Program Properties from "Big Code"
Veselin Raychev, Martin Vechev, Andreas Krause
ACM POPL 2015
Parallelizing User-Defined Aggregations using Symbolic Execution
Veselin Raychev, Madanlal Musuvathi, Todd Mytkowicz
ACM SOSP 2015
Stateless Model Checking of Event-Driven Applications
Casper Svenning Jensen, Anders Møller, Veselin Raychev, Dimitar Dimitrov, Martin Vechev
ACM OOPSLA 2015
Scalable Race Detection for Android Applications
Pavol Bielik, Veselin Raychev, Martin Vechev
ACM OOPSLA 2015
Programming with Big Code: Lessons, Techniques and Applications
Pavol Bielik, Veselin Raychev, Martin Vechev
SNAPL 2015

2014

Code Completion with Statistical Language Models
Veselin Raychev, Martin Vechev, Eran Yahav
ACM PLDI 2014
Phrase-Based Statistical Translation of Programming Languages
Svetoslav Karaivanov, Veselin Raychev, Martin Vechev
Onward 2014
Commutativity Race Detection
Dimitar Dimitrov, Veselin Raychev, Martin Vechev, Eric Koskinen
ACM PLDI 2014

2013

Refactoring with Synthesis
Veselin Raychev, Max Schaefer, Manu Sridharan, Martin Vechev
ACM OOPSLA 2013
Effective Race Detection for Event-Driven Programs
Veselin Raychev, Martin Vechev, Manu Sridharan
ACM OOPSLA 2013
Automatic Synthesis of Deterministic Concurrency
Veselin Raychev, Martin Vechev, Eran Yahav
Static Analysis Symposium (SAS) 2013

Awards

  • ACM Doctoral Dissertation Award, Honorable Mention, 2016
  • ACM SIGPLAN Research Highlights on JSNice paper, October 2016
  • John Atanasoff Award, awarded by the President of Bulgaria, 2016
  • IBM Ph.D. Fellowship 2015-2016
  • 2nd Heidelberg Laureate Forum, 2014
  • OOPSLA Outstanding artifact award for our paper: Effective Race Detection for Event-Driven Programs.
  • SIGPLAN travel grant for OOPSLA 2013.
  • Google OC award for the work on Google Translate.
  • 19th place in the ACM International Collegiate Programming Contest - World Finals, San Antonio, TX, 2006.
  • 29th place in the ACM International Collegiate Programming Contest - World Finals, Shanghai China, 2005.
  • Bronze medal in the International Olympiad in Informatics, Yong-in, Korea, 2002.
  • Silver medal in the Balkan Olympiad in Informatics, Belgrade, Yugoslavia, 2002.
  • 1st place in the Bulgarian National Olympiad in Informatics, Sofia, Bulgaria, 2002.

Service

Supervised students

  • B.Sc. - Benjamin Bischel, Android De-obfuscation
  • M.Sc. - Christine Zeller, Statistical Tutoring for MOOCs
  • M.Sc. - Pavol Bielik - EventRacer for Android
  • B.Sc. - Pascal Roos - Effective Statistical Code Completion

Previous projects

Jul 2014 - Oct 2014 : Research Intern @ Microsoft Research, Redmond, WA

Nov 2006 - Mar 2012 : Software Engineer @ Google.

  • 2008-2012: Transit Directions in Google Maps: We created a scalable computation for finding routes in graphs with hundreds of millions of nodes. I designed and developed many of the transfer patterns computation algorithms, query processing algorithms, the distributed system and the production system (designed for 0 downtime).
  • 2008: Google Translate: Tuned the first machine translation system between Bulgarian and English.
  • 2006-2008: We developed the software for moving huge amounts of data to/from hardware like this (Google Datacenter) and backed up most of Google's data.