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
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
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 Programs from Noisy Data
Veselin Raychev, Pavol Bielik, Martin Vechev, Andreas Krause
ACM POPL
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
- PLDI 2020, Program Comittee
- PLDI 2017, External Review Committee
- PLDI 2016, External Review Committee
- ECOOP 2016, External Review Committee
- PLDI 2014 Artifact Evaluation Committee
- ECOOP 2014 Artifact Evaluation Committee
- Reviewer for: ICML 2019, ICLR 2021, 2019, NeurIPS 2018, 2019, IJCAI 2018, 2019, 2020
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
- With Madanlal Musuvathi and Todd Mytkowicz.
- We developed new techniques for automatic parallelization of large-scale logs processing algorithms.
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.