Petr Maj

I am a PhD student at FIT CTU in Prague, advised by Jan Janousek. Formerly, I worked in Silicon Valley for 0xdata co-founded by Cliff Click on distributed scalable big data analytics and SN Systems in Bristol, UK on SONY Playstation 3 and PS Vita compilers & toolchains.

I am interested in design, analysis and optimalization of programming languages (mostly dynamic, currently R), big code & synthesis and embedded systems.

I hold masters degree from FEE CTU in Prague, I have been a graduate student at Purdue, IN, and I have spent a year at the University of Bristol, UK.

Papers & Posters

  • A fast abstract syntax tree interpreter for R

    Kalibera T., Maj, P., Morandat, F., Vitek, J.; VEE 2014

  • testR – R language test driven specification poster

    Maj P., Kalibera T., Vitek J.; UseR! 2013, Best technical presentation award.

  • A family of real- time Java benchmarks

    Kalibera, T., Hagelberg, J., Maj, P., Pizlo, F., Titzer, B. and Vitek, J.; Concurrency and Computation: Practice and Experience, 23: n/a. Doi: 10.1002/cpe.1677, 2011

  • Schism: Fragmentation-Tolerant Real-Time Garbage Collection

    Pizlo F., Ziarek L., Maj P., Hosking A., Vitek J., Blanton E.; PLDI 2010

  • High-level Programming of Embedded Hard Real-Time Systems

    Pizlo F., Ziarek L., Blanton E., Maj P., Vitek J.; EuroSYS 2010


  • 2017
    ECOOP Artifact Evaluation
  • 2016
    ECOOP SV co-chair
  • PLDI Artifact Evaluation
  • 2015
    ECOOP Housing chair
  • 2014
  • 2013
    UseR! Best technical poster award
  • DALI (Dynamic Languages for Scalable Data Analytics) by invitation
  • 2010
    VEESC (Virtual Execution Environments for Scientific Computing) by invitation
  • 2009


Work Experience

  • 2013 - 2015 : Researcher in the field of virtual machines (independent contractor)

    Author of FlaiR – a static and dynamic analysis framework for the R language. One of the developers of the FastR VM and runtime for the R language. Responsible for the static and dynamic analysis of the R code and related optimizations. Author of TestR framework for R language test driven specification, testing and benchmarking R Vms. Design and implementation of continuous program analysis framework, optimizations and invalidation. Mentoring junior researchers.

  • 2012 : Senior Developer at 0xdata. inc.

    Working on the design & implementation of almost all parts of the distributed non SQL big data store and analytics framework including core messaging, user-level API, distributed execution, initial implementation of R-like distributed queries on the cloud system.

  • 2010 - 2012 : Compiler Engineer at SNSystems Ltd.

    Responsible for correcting bugs & developing new features for the SN compiler that is used by most developers for Sony Playstation 3, PSP and PS Vita. Apart from the compiler, also responsible for implementing PS Vita assembler from scratch (main developer).

Full CV is also available.


  • Build a JIT with LLVM (PLISS 2017, Fall 2016), with Jan Vitek and Oli Fluckiger

    Source code available at github.

  • Code Generation (Spring 2017, Spring 2016) TA

    Theoretical and practical aspects of an optimizing compiler backend implementation (using LLVM). MI-GEN (in Czech)

  • LLVM Compiler System (CTU, Fall 2016)

    Introduction to the LLVM compiler and its use as an optimizing JIT for dynamic languages (MI-LCF).

  • Programming Paradigms (Fall 2016) TA

    λ calculus, Lisp and Prolog. BI-PAA (in Czech)
    I am also teaching english version.

Please arrange consultations for current courses by email.

I have always enjoyed teaching and in the past, I taught Java, C++, Virtual Macgines and Embedded systems at university, or high school level. In 2015 I was awarded Google CodeWeek funding for embedded programming for high school kids at Arcibiskupske Gymnazium in Prague.

Petr Maj

Department of Theoretical Computer Science
Faculty of Information Technology, Czech Technical University
Thakurova 9, 16000 Praha 6
Czech Republic

h-index: 4