Artem Pelenitsyn Homepage

По-русски


     

Education: PhD in Computer Science from Northeastern University (NEU PRL, 2023).

Alma mater: Southern Federal University, I.I. Vorovitch Institute of Mathematics, Mechanics and Computer Sciences (MMCS, Мехмат).

Current Activities: Post Doc Researcher with Prof. Milind Kulkarni at PurPL, Purdue University.

Contacts: a​@​pelenitsyn.top, Calendly.

🇺🇦 As a Russian national, I strongly condemn the war started by the Russian government in Ukraine on February 24th 2022.

Research Bio

I am broadly interested in programming languages and compilers, and do occasional detours into HPC.

While on postdoc with Milind at Purdue (2023–now), I am looking into making irregular computations (tree traversals) more efficient via compilation or algorithm design for recent hardware. Our main topics are:

During my PhD at Northeastern (2018–2023) and RA at Czech Technical University (2017–2018), I was assessing the design and implementation of the Julia programming language (OOPSLA ‘18, OOPSLA ‘21, VMIL ‘23). I’m still looking into Julia’s notion of type stability — the topic of my PhD dissertation.

During my teaching appointment at SFedU (2011–2016), I was working on generic programming techniques (PCS’15) and adviced students on topics in functional programming: datatype-generic programming (TFP’18 presentation and draft), monads for structuring effects (TMPA’17), linear types for expressing resource management and quantum computing.

During my graduate studies at SFedU (2007–2012, MSc in 2009), I worked on improving software designs for computer algebra and error-correcting codes in C++ using generic and metaprogramming (Prikl.Inf.’11, in Russian).

More on my professional history can be found in my Curriculum Vitæ.

Programming Languages in The Real World™

I’m interested in programming (or, more generally, “software”) languages as they pertain to software and systems, e.g. programming languages’ ecosystems (especially, Haskell and Julia’s ones), build systems and software package managers (especially, the Nix package manager and NixOS), verified software via interactive theorem provers and dependent types (Coq, Agda, Idris), modal editing (in the spirit of vi) and (Doom) Emacs, Linux and Open Source Software. Check out: