Ilya Sergey C URRICULUM V ITÆ May 26, 2015 Contact information IMDEA Software Institute Campus Montegancedo ´ Madrid, Spain 28223 Pozuelo de Alarcon, E-mail: [email protected] Homepage: http://ilyasergey.net Office: +34-91-101-2202 Ext. 4126 Research interests Design and implementation of programming languages, software verification, concurrency, certified programming, type theory, static program analysis, abstract interpretation, functional programming. Education KU Leuven, Leuven, Belgium. November 2008–November 2012. Ph.D. in Computer Science, November 2012. • Thesis title: Operational Aspects of Type Systems • Advisor: prof. Dave Clarke • Area of study: Programming languages and type systems Saint Petersburg State University, Saint Petersburg, Russia. 2003–2008. M.Sc. in mathematics and computer science, Dept. of Mathematics and Mechanics, GPA 5.0/5.0, June 2008. • Thesis title: Extraction of musical notation from a musical signal • Advisor: prof. Andrey E. Barabanov • Area of study: Signal processing Saint Petersburg Lyceum 239, Saint Petersburg, Russia. 2001–2003. High school degree with specialization in physics and mathematics. Employment IMDEA Software Institute, Madrid, Spain Post-doctoral Researcher. Started December 2012. • Developing models and logics for reasoning about concurrent programs; Microsoft Research, Cambridge, UK Research Intern, Programming Principles and Tools group. July–September 2012. • Refactoring and formalizing the demand analyser in Glasgow Haskell Compiler; • Developing and formalizing a modular cardinality analysis for Haskell; JetBrains Inc., Saint Petersburg, Russia Software Engineer, IntelliJ IDEA team. March 2007–December 2012 (off-site since November 2008). • Front-end compiler implementation for IDE support of Scala, Groovy, Clojure; • Implementation of program analyses and refactorings; Intern, IntelliJ IDEA team. September 2006–March 2007. • Scala front-end compiler implementation for IDE support; Page 1 of 6 OpenWay, Saint Petersburg, Russia Summer School Intern. June 2006–September 2006 • Developed a Java ME-powered client for mobile banking; Informational Systems for Business, Saint Petersburg, Russia Software Engineer. August 2005–June 2006. • Developed a Java EE-powered database audit system; • Maintained a PHP-powered web service for futures market; • Oracle 9i PL/SQL scripting; Publications and manuscripts Journal articles 1. Pushdown Flow Analysis with Abstract Garbage Collection J. Ian Johnson, Ilya Sergey, Christopher Earl, Matthew Might and David Van Horn Journal of Functional Programming, volume 24, issue 2-3, pages 218–283, May 2014. 2. A correspondence between type checking via reduction and type checking via evaluation Ilya Sergey and Dave Clarke Information Processing Letters, volume 112, issue 1-2, pages 13–20, January 2012. Conference articles 1. Mechanized Verification of Fine-grained Concurrent Programs Ilya Sergey, Aleksandar Nanevski and Anindya Banerjee 36th ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2015), 58/303 ≈ 19% accepted. 2. Specifying and Verifying Concurrent Algorithms with Histories and Subjectivity Ilya Sergey, Aleksandar Nanevski and Anindya Banerjee 24th European Symposium on Programming (ESOP 2015), 33/115 ≈ 29% accepted. 3. Communicating State Transition Systems for Fine-Grained Concurrent Resources Aleksandar Nanevski, Ruy Ley-Wild, Ilya Sergey and Germ´an Andr´es Delbianco 23rd European Symposium on Programming (ESOP 2014), 27/109 ≈ 25% accepted. 4. Modular, Higher-Order Cardinality Analysis in Theory and Practice Ilya Sergey, Dimitrios Vytiniotis and Simon Peyton Jones 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2014), 51/220 ≈ 23% accepted. 5. Monadic Abstract Interpreters Ilya Sergey, Dominique Devriese, Matthew Might, Jan Midtgaard, David Darais, Dave Clarke and Frank Piessens 34th ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2013), 46/267 ≈ 17% accepted. 6. Introspective Pushdown Analysis of Higher-Order Programs Chrisopher Earl, Ilya Sergey, Matthew Might and David Van Horn 17th ACM SIGPLAN International Conference on Functional Programming (ICFP 2012), 32/88 ≈ 36% accepted. 7. Calculating Graph Algorithms for Dominance and Shortest Path Ilya Sergey, Jan Midtgaard and Dave Clarke 11th International Conference on Mathematics of Program Construction (MPC 2012), 13/27 ≈ 48% accepted. Ilya Sergey Curriculum Vitæ Page 2 of 6 8. Gradual Ownership Types Ilya Sergey and Dave Clarke 21st European Symposium on Programming (ESOP 2012), 28/88 ≈ 32% accepted. Peer-reviewed workshop articles 1. Deriving Interpretations of the Gradually-Typed Lambda Calculus ´ Alvaro Garc´ıa P´erez, Pablo Nogueira and Ilya Sergey ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation (PEPM 2014) 2. Fixing Idioms – A recursion primitive for applicative DSLs Dominique Devriese, Ilya Sergey, Dave Clarke and Frank Piessens ACM SIGPLAN 2013 Workshop on Partial Evaluation and Program Manipulation (PEPM 2013) 3. Towards Gradual Ownership Types Ilya Sergey and Dave Clarke International Workshop on Aliasing, Confinement and Ownership (IWACO 2011) 4. From type checking by recursive descent to type checking with an abstract machine Ilya Sergey and Dave Clarke Eleventh Workshop on Language Descriptions, Tools and Applications (LDTA 2011) 5. Automatic refactorings for Scala programs Ilya Sergey, Dave Clarke and Alexander Podkhalyuzin The First Scala Workshop - Scala Days 2010 6. A semantics for context-oriented programming with layers Dave Clarke and Ilya Sergey International Workshop on Context-Oriented Programming (COP 2009) Book chapters 1. Ownership Types: A Survey ¨ Dave Clarke, Johan Ostlund, Ilya Sergey and Tobias Wrigstad. Aliasing in Object-Oriented Programming: Types, Analysis and Verification, Springer, 2013. Lecture notes 1. Programs and Proofs: Mechanizing Mathematics with Dependent Types Ilya Sergey Lecture notes with exercises, available at http://ilyasergey.net/pnp. Technical reports 1. A correspondence between type checking via reduction and type checking via evaluation. Accompanying code overview. Ilya Sergey and Dave Clarke. CW Reports, volume CW617, KU Leuven, 2012. 2. Dominance Analysis via Ownership Types and Abstract Interpretation. Ilya Sergey and Dave Clarke. CW Reports, volume CW615, KU Leuven, 2011. 3. Gradual Ownership Types. Ilya Sergey and Dave Clarke. CW Reports, volume CW613, KU Leuven, 2011. 4. Scripting an IDE for EDSL awareness. Ilya Sergey and Dave Clarke. CW Reports, volume CW608, KU Leuven, 2011. 5. Automatic refactorings for Scala programs. Ilya Sergey and Dave Clarke. CW Reports, volume CW577, KU Leuven, 2010. Ilya Sergey Curriculum Vitæ Page 3 of 6 Other manuscripts 1. Implementation of Gradual Ownership Types for Java using Attribute Grammars (in Russian). Ilya Sergey. Software Engineering, issue 6, pages 49–79, Saint Petersburg State University publishing, 2011. 2. Extraction of musical notation from musical signal (in Russian). Ilya Sergey and Andrey Barabanov. Phonetical Lyceum, issue 4, Faculty of Philology and Arts, Saint Petersburg State University publishing, 2009. 3. Implementation of JVM-based languages support in IntelliJ IDEA. Ilya Sergey. International Workshop on Multiparadigm Programming with Object-Oriented Languages (MPOOL 2008). Teaching Saint Petersburg State University, Saint Petersburg, Russia Course Designer, Summer School Lecturer. August 2014. Programs and Proofs: Mechanizing Mathematics with Dependent Types • Developed and delivered a course on interactive theorem proving using the Coq proof assistant, including lecture notes and exercises. KU Leuven, Leuven, Belgium Teaching Assistant. October 2011–January 2012. Comparative Programming Languages (B-KUL-H04L5A) • Developed and delivered an assignment for programming in Racket. • Assisted exercise sessions on C and Scala programming. Teaching Assistant, Guest Lecturer. October 2009–January 2010 and October 2010–January 2011. Formal systems and their applications (B-KUL-H04H8B) (Dutch: Formele Systemen en hun Toepassingen) • Developed lectures on functional programming in Scala. • Developed an assignment for type theory implementation in Scala. Academic service Program committees: • 25th European Symposium on Programming (ESOP 2016) • International Workshop on Scripts to Programs (STOP 2015) • 16th International Symposium on Principles and Practice of Declarative Programming (PPDP 2014) • The Fifth Annual Scala Workshop (Scala 2014) Reviewing for journals: TOPLAS (2014, 2015) Conference/workshop refereeing: DISC 2015, ECOOP 2015, ESOP 2015, POPL 2015, GPCE 2014, ICFP 2014, CSF 2014, PROLE 2013, SAIRP 2013, CC 2013, ESOP 2013, POPL 2013, CPP 2012, ECOOP 2012, NFM 2012, ESOP 2012, DSL 2011, IWACO 2011, Coordination 2010, Coordination 2009. Artifact evaluation committees: ECOOP 2014. Invited speaker at PPDP 2013. Ilya Sergey Curriculum Vitæ Page 4 of 6 Selected seminar presentations, invited and technical talks • Anatomy of mechanized reasoning about fine-grained concurrency May 2015, Dagstuhl Seminar 15191 on Compositional Verification Methods for Next-Generation Concurrency, Schloss Dagstuhl, Germany • Programming and Proving with Concurrent Resources - April 2015, University College London, UK - March 2015, Microsoft Research, Cambridge, UK • Programming with Proofs April 2015, Google, London, UK • Towards Structured Mechanized Verification of Fine-Grained Concurrent Programs January 2015, The First International Workshop on Coq for PL at POPL 2015, Mumbai, India • Formal Mathematics as a Branch of Computer Science August 2014, Sociological Institute of the Russian Academy of Sciences, Saint Petersburg, Russia • State Transition System alternative to Linearizability January 2014, Concurrency Yak at POPL 2014, San Diego, CA, USA • Monadic Abstract Interpreters (Invited Talk) September 2013, 15th International Symposium on Principles and Practice of Declarative Programming (PPDP 2013), Madrid, Spain • Communicating State Transition Systems for Fine-Grained Concurrent Resources - April 2014, 1st Microsoft Research and IMDEA Software Institute Collaboration Workshop (MICW 2014), Madrid, Spain - September 2013, 2nd ACM SIGPLAN Workshop on Higher-Order Programming with Effects (HOPE 2013), Boston, MA, USA • Static Analysis and Code Optimizations in Glasgow Haskell Compiler December 2012, SPb Functional Programming meetup, Saint Petersburg, Russia • Gradual Ownership Types December 2011, Entropy Meeting, PL Group, Aarhus University. Aarhus, Denmark. • Scripting an IDE for DSL awareness, November 2009, Devoxx 2009, Antwerp, Belgium • Clojure support in IntelliJ IDEA, June 2009, The Bay Area Clojure User Group meetup. San Francisco, CA, USA. • Cross-Language Development in IntelliJ IDEA, April 2009, JAX 2009, Mainz, Germany • Cross-Language Development Experience on the JVM, December 2008, Devoxx 2008, Antwerp, Belgium Awards and scholarships • Vladimir Potanin Federal Scholarship Program winner (2004, 2005, 2007) Visiting fellowship Aarhus University, Aarhus, Denmark Visiting PhD student. September–October 2010 and November–December 2011. Host: prof. Olivier Danvy. ´ Ecole Polytechnique F´ed´erale de Lausanne, Lausanne, Switzerland Visiting PhD student. August 2009. Host: prof. Martin Odersky. Ilya Sergey Curriculum Vitæ Page 5 of 6 Selected software Founder and maintainer of the La Clojure plugin for IntelliJ IDEA Sources available at http://github.com/JetBrains/la-clojure/ More software is available at GitHub: http://github.com/ilyasergey Technical skills • Programming languages (strong knowledge): Java, Scala, Haskell, Racket/Scheme/Clojure • Proof assistants/dependently typed languages: Coq, Agda • Other programming languages: Standard ML, Groovy, Python, OCaml, Erlang, C, C++, Prolog, Refal, Ruby, PHP, (PL/)SQL Language skills English (fluent), Dutch (fluent, B2 CEFR, NT2 complete), Spanish (fluent, B1 CEFR), French (fluent, B2 CEFR), Danish (basic, A1 CEFR), Russian (mother tongue). References Aleksandar Nanevski Assistant Research Professor IMDEA Software Institute [email protected] Olivier Danvy Associate Professor Aarhus University [email protected] Dave Clarke Senior Lecturer Uppsala University [email protected] Simon Peyton Jones Principal Researcher Microsoft Research Cambridge [email protected] Matthew Might Associate Professor University of Utah [email protected] David Van Horn Assistant Professor University of Maryland [email protected] Ilya Sergey Curriculum Vitæ Page 6 of 6
© Copyright 2024