Resume-aware faculty matching

Find professors who actually fit you

Review faculty evidence in public, then use the workspace to turn your background into a shortlist, outreach, and meeting prep.

Profile-awarePaper evidenceSix agents
Jan Vitek

Jan Vitek

· Professor

Northeastern University · Software Engineering

Active 1975–2026

h-index49
Citations8.5k
Papers35337 last 5y
Funding$8.0M

Academic metrics are sourced from OpenAlex and public funding records; values may differ from Google Scholar.

See your match with Jan Vitek — sign in to PhdFit.Sign in

About

Jan Vitek is a professor in the Khoury College of Computer Sciences at Northeastern University, based in Boston. His research has led to advances in the theory and practice of modern programming systems, including languages such as Objective-C, JavaScript, and data analytics languages like R, with applications in information security, memory management, and real-time safety critical systems. Vitek led the team that developed the first real-time Java virtual machine to be deployed on a drone designed by Boeing. Prior to joining Northeastern University, he was a professor and faculty scholar at Purdue University, as well as a co-founder of Fiji Systems and 0xdata. He holds a leadership role in the programming language community as the former chair of the ACM Special Interest Group on Programming Languages, and has served as vice-president of AITO and of the IFIP WG 2.4 on Software Technology. Vitek also chairs the steering committee of the PLDI conference and has been involved in the steering committees of several other prominent conferences.

Research topics

  • Computer Science
  • Parallel computing
  • Operating system
  • Programming language

Selected publications

  • Formally verified speculation and deoptimization in a JIT compiler

    Proceedings of the ACM on Programming Languages · 2021 · 38 citations

    Senior authorCorresponding

    Just-in-time compilers for dynamic languages routinely generate code under assumptions that may be invalidated at run-time, this allows for specialization of program code to the common case in order to avoid unnecessary overheads due to uncommon cases. This form of software speculation requires support for deoptimization when some of the assumptions fail to hold. This paper presents a model just-in-time compiler with an intermediate representation that explicits the synchronization points used f…

  • Contextual dispatch for function specialization

    Proceedings of the ACM on Programming Languages · 2020 · 30 citations

    Senior authorCorresponding

    In order to generate efficient code, dynamic language compilers often need information, such as dynamic types, not readily available in the program source. Leveraging a mixture of static and dynamic information, these compilers speculate on the missing information. Within one compilation unit, they specialize the generated code to the previously observed behaviors, betting that past is prologue. When speculation fails, the execution must jump back to unoptimized code. In this paper, we propose a…

  • Type stability in Julia: avoiding performance pathologies in JIT compilation

    Proceedings of the ACM on Programming Languages · 2021-10-15 · 13 citations

    articleOpen accessSenior author

    As a scientific programming language, Julia strives for performance but also provides high-level productivity features. To avoid performance pathologies, Julia users are expected to adhere to a coding discipline that enables so-called type stability. Informally, a function is type stable if the type of the output depends only on the types of the inputs, not their values. This paper provides a formal definition of type stability as well as a stronger property of type groundedness, shows that grou…

  • Reusing Just-in-Time Compiled Code

    Proceedings of the ACM on Programming Languages · 2023-10-16 · 8 citations

    articleOpen accessSenior author

    Most code is executed more than once. If not entire programs then libraries remain unchanged from one run to the next. Just-in-time compilers expend considerable effort gathering insights about code they compiled many times, and often end up generating the same binary over and over again. We explore how to reuse compiled code across runs of different programs to reduce warm-up costs of dynamic languages. We propose to use speculative contextual dispatch to select versions of functions from an of…

  • Designing types for R, empirically

    Proceedings of the ACM on Programming Languages · 2020-11-13 · 7 citations

    articleOpen accessSenior author

    The R programming language is widely used in a variety of domains. It was designed to favor an interactive style of programming with minimal syntactic and conceptual overhead. This design is well suited to data analysis, but a bad fit for tools such as compilers or program analyzers. In particular, R has no type annotations, and all operations are dynamically checked at run-time. The starting point for our work are the two questions: what expressive power is needed to accurately type R code? and…

Recent grants

Frequent coauthors

  • Filip Pizlo

    Apple (United States)

    27 shared
  • Christian Damsgaard Jensen

    Technical University of Denmark

    26 shared
  • Gerhard Goos

    Lancaster University

    25 shared
  • Jan Van Leeuwen

    Netherlands Institute for Radio Astronomy

    25 shared
  • Suresh Jagannathan

    22 shared
  • David Pichardie

    22 shared
  • Olivier Flückiger

    Northeastern University

    21 shared
  • Francesco Zappa Nardelli

    21 shared

Labs

  • Khoury College of Computer SciencesPI

Similar researchers at Northeastern University

  • Resume-aware match score
  • Save to shortlist
  • AI-drafted outreach

See your match with Jan Vitek

PhdFit ranks faculty by your research interests, methods, and publications — grounded in their actual work, not templates.

  • Free to start
  • No credit card
  • 30-second signup