![](./jsiek.jpg)
Jeremy Siek is a Professor of Computer Science in the School of
Informatics and Computing at Indiana University. Jeremy teaches
courses in programming, programming languages, compilers, logic, and
other areas of computer science. Jeremy designs new language features
to help programmers create and use software libraries and
domain-specific languages, especially generic and high-performance
ones. In particular, with Walid Taha, Jeremy invented the
gradual typing approach to mixing
static and dynamic type checking within the
same language. Prior to that, Jeremy co-authored the
Boost Graph Library
and attempted to add concepts to C++. Jeremy is a member of
the Center for Programming Systems at IU.
Office: Luddy Hall 3016, Blog, github,
CV, Mastadon: @jeremysiek@types.pl
, Blue Sky: jeremysiek.bsky.social
, google scholar
Deduce Proof Assistant
The Deduce proof assistant is an educational tool that helps students
to develop correct code. You can read about it on the web page for
Deduce and from a series of blog
posts
that I have been writing.
Phishing Scam: Research Assistant Position
There is an ongoing email phishing scam that is using my name. If you
receive an email offering you a job without first meeting with me in
person, please report it to phishing@iu.edu. Please do not send me
email to check whether it is legitimate. Thank you.
Books
Technology Transfer
I’ve been fortunate to see some of my ideas get used in the software industry:
- Microsoft created a gradually-typed dialect of JavaScript, called TypeScript.
- Facebook added gradual typing to PHP.
- Facebook created Flow, a static type checker for JavaScript.
Recent Papers and Talks
The full list is available on Google Scholar and DBLP.
Teaching
- P423/P523: Compilers (aka. Programming Language Implementation) Fall
2024, Fall 2023, Fall 2022, Fall 2021, Fall 2020, Fall 2018, Spring
2016, Spring 2014
- C343/H343: Data Structures Spring 2025,
Fall 2024, Spring 2024, Fall 2023, Fall 2022, Fall 2021, Fall 2019, Fall 2017, Fall 2016, Fall
2015, Fall 2014, Fall 2013
- B505/I500: Applied Algorithms Spring 2021
- B522: Programming Language Foundations Spring 2020, Spring 2015
- B629: Topics in PL: Denotational Semantics Spring 2018
- C++, Short and Sweet, an Online C++ Course for Beginners at Udemy.
Students
- Tianyu Chen (Ph.D. student, Gradual information flow types for security)
- Darshal Shetty (Ph.D. student, Gradual Dependent Types)
Alumni
- Andre Kuhlenschmidt (Meta, Software Engineer)
- Matthew Heimerdinger (Two Six Technologies, Research Scientist)
- Deyaaeldeen Almahallawi (Microsoft, Senior Software Engineer, Ph.D. thesis: Towards Efficient Gradual Typing via Monotonic References and Coercions)
- Kuang-Chen Lu (Brown Univ., M.S. thesis: Equivalence of Cast Representations in Gradual Typing)
- Michael M. Vitousek (Facebook, Ph.D. thesis: Gradual Typing for Python, Unguarded)
- Chris Wailes (Google, Software Engineer)
- Matteo Cimini (Assistant Professor, Univ. of Massachusetts Lowell)
- Spenser Bauman (Ph.D. student, Meta-tracing JIT for Racket)
- Di Zhong (Undergraduate Research, now Ph.D. student at Northeastern Univ.)
- Zeina Migeed (Research co-op from Northeastern, now Research Scientist at Meta)
- Steev Young (Undergraduate Research in Gradual Typing)
- Josie Bealle (Summer Research Opportunity in Computing)
- Andre Yuri (Summer Research Opportunity in Computing)
- Weiyu Miao (LinkedIn) Ph.D. thesis: Reflective Metaprogramming
- Geoffrey Belter (Apple) Ph.D. thesis: Efficient Generation of Sequences of Dense Linear Algebra through Auto-Tuning
- Shashank Bharadwaj (VMware)
- Jonathan Turner (Microsoft Typescript => Mozilla Rust => self employed)
- Erik Silkensen (Software Engineer, Meta)
- Neelam Agrawal (Senior Software Engineer, Google)
- Sri Teja Basava (Principal Software Engineer, National Instruments)
- Ian Karlin (Principal Engineer, HPC Ecosystems at NVIDIA)
- Justin Gottschlich (Parallel Computing Lab @ Intel Labs)
Ph.D. thesis: Invalidating Transactions: Optimizations, Theory, Guarantees, and Unification
- Moss Prescott (SlamData) M.S. thesis: Speaking for the Trees: a New (Old) Approach to Languages and Syntax
- Christopher Schwaab (Ph.D. student at the Univ. of St. Andrews)
- David Broman (Full Prof. at KTH Royal Inst. of Tech., Sweden)
Ph.D. thesis: Meta-Languages and Semantics for Equation-Based Modeling and Simulation