Adam Welc Adam Welc
Staff Engineer


MystenLabs
379 University Ave. #200
Palo Alto, CA 94301

Email: adam@adamwelc.org
RESEARCH In January 2022 I joined MystenLabs where I currently hold a position of Staff Engineer. My work is in the area of programming language design and implementation, with specific interests in performance evaluation and tuning, compiler and run-time system optimizations, and tooling. I have an extensive experience in working with with different types of virtual machines (ART, AVM, ORP JVM, HotSpot JVM, J9 JVM), compilers (GreenMarl, ASC, StarJIT), and other large and complicated frameworks and systems (ProGuard, D8, ReDex, Truffle framework, STM runtime for Intel's C/C++ compiler, PGX analytics engine). I am also an Associate Editor for the IEEE Software Magazine.
CONFERENCES
ICSE SEIP'23
Program Committee member International Conference on Software Engineering (Software Engineering in Practice track)
PPoPP'22
Program Committee member Symposium on Principles and Practice of Parallel Programming
OOPSLA'21
Program Committee member Conference on Object-Oriented Programming Systems, Languages, and Applications
ICSE SEIP'21 Program Committee member International Conference on Software Engineering (Software Engineering in Practice track)
OOPSLA'20
Program Committee member Conference on Object-Oriented Programming Systems, Languages, and Applications
GPCE'19 Program Committee member Conference on Generative Programming: Concepts & Experience
MoreVMs'19 Organizing Committee member Workshop on Modern Language Runtimes, Ecosystems, and VMs
OOPSLA'18 External Review Committee member Conference on Object-Oriented Programming Systems, Languages, and Applications
ISMM'18
Program Committee member International Symposium on Memory Management
MoreVMs'18 Organizing Committee member Workshop on Modern Language Runtimes, Ecosystems, and VMs
VMIL'17 Program Chair Workshop on Virtual Machines and Intermediate Languages
GPCE'17
Program Committee member Conference on Generative Programming: Concepts & Experience
MoreVMs'17
Organizing Committee member Workshop on Modern Language Runtimes, Ecosystems, and VMs
OOPSLA'15
External Review Committee member Conference on Object-Oriented Programming Systems, Languages, and Applications
ASPLOS'14
External Review Committee member International Conference on Architectural Support for Programming Languages and Operating Systems
DSLDI'14
Program Chair
Domain Specific Languages Design and Implementation
ASPLOS'13
Program Committee member
International Conference on Architectural Support for Programming Languages and Operating Systems
ECOOP'13
Program Committee member
European Conference on Object-Oriented Programming
PLDI'13
External Review Committee member
Conference on Programming Language Design and Implementation
CGO'13
Students Chair International Symposium on Code Generation and Optimization
DSLDI'13 Organizing Committee member Domain Specific Languages Design and Implementation
ECOOP'12 Workshops Chair European Conference on Object-Oriented Programming
CGO'12
Students Chair
International Symposium on Code Generation and Optimization
PLDI'12
External Review Committee member
Conference on Programming Language Design and Implementation
POPL'12 External Review Committee member Symposioum on Principles of Programming Languages
ECOOP'11
Program Committee member
European Conference on Object-Oriented Programming
CGO'11
Tutorials Chair
International Symposium on Code Generation and Optimization
CAP'10
Program Committee member
Workshop on Concurrency for the Application Programmer
ECOOP'10
Program Committee member
European Conference on Object-Oriented Programming
ISMM'10
Program Committee member
International Symposium on Memory Management
SPAA'10
Program Comittee member
Symposium on Parallelism in Algorithms and Architectures

PUBLICATIONS

[external,pdf] "Automated code transformation for context propagation in Go" Adam Welc
European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), August 2021

[external,pdf] " Optimistic Concurrency Control for Real-world Go Programs" Zhizhou Zhang, Milind Chabi, Adam Welc, Timothy Sherwood
USENIX Annual Technical Conference (ATC), July 2021

[external,pdf] "Profiling Android Applications with Nanoscope" Lun Liu, Leland Takamine, Adam Welc
Virtual Machines and Language Implementations (VMIL), November 2018

[external,pdf] " Optimizing R language execution via aggressive speculation" Lukas Stadler, Adam Welc, Christian Humer, Mick Jordan
Dynamic Languages Symposium (DLS), November 2016

[external,pdf] "Fast in-memory triangle listing for large real-world graphs" Martin Sevenich, Sungpack Hong, Adam Welc, Hassan Chafi
Workshop on Social Network Mining and Analysis (SNAKDD), August 2014

[external,pdf] "Graph analysis: do we have to reinvent the wheel?" Adam Welc, Raghavan Raman, Zhe Wu, Sungpack Hong, Hassan Chafi, Jay Banerjee
International Workshop on Graph Data Management Experiences and Systems (GRADES), June 2013

[external,pdf] "Early experiences in using a domain-specific language for large-scale graph analysis" Sungpack Hong, Jan Van Der Lugt, Adam Welc, Raghavan Raman, Hassan Chafi
International Workshop on Graph Data Management Experiences and Systems (GRADES), June 2013

[external,pdf] "Adaptive data parallelism for internet clients on heterogeneous platforms" Alessandro Pignotti, Adam Welc, Bernd Mathiske
Dynamic Languages Symposium (DLS), October 2012

[external,pdf] "Software transactional memory validation - time and space considerations" Adam Welc, Bratin Saha
Transactions on High-Performance Embedded Architectures and Compilers IV, December 2011

[external,pdf] "Safe nondeterminism in a deterministic-by-default parallel language" Robert L. Bocchino Jr., Stephen Heumann, Nima Honarmand, Sarita V. Adve, Vikram S. Adve, Adam Welc
Symposium on Principles of Programming Languages (POPL), January 2011

[external,pdf] "Generic Workers - towards unified distributed and parallel JavaScript programming model" Adam Welc, Richard L. Hudson, Tatiana Shpeisman, Ali-Reza Adl-Tabatabai
International Workshop on Programming Support Innovations for Emerging Distributed Applications (PSIEtA), October 2010 (collocated with SPLASH 2010)

[external,pdf] "Towards transactional memory semantics for C++" Tatiana Shpeisman, Ali-Reza Adl-Tabatabai, Robert Geva, Yang Ni, Adam Welc
Symposium on Parallelism in Algorithms and Architectures (SPAA), August 2009

[external,pdf]
"NePalTM: design and implementation of nested parallelism for transactional memory systems" Haris Volos, Adam Welc, Ali-Reza Adl-Tabatabai, Tatiana Shpeisman, Xinmin Tian, Ravi Narayanaswamy
European Conference on Object-Oriented Programming (ECOOP), July 2009


[external,pdf] "xCalls: safe I/O in memory transactions" Haris Volos, Andreas Jaan Tack, Naalem Goyal, Michael M. Swift, Adam Welc
European Conference on Computer Systems (EUROSYS), April 2009


[external,pdf] "Design and implementation of transactional constructs for C/C++" Yang Ni, Adam Welc, Ali-Reza Adl-Tabatabai, Moshe Bach, Sion Berkowits, James Cownie, Robert Geva, Sergey Kozhukow, Ravi Narayanaswamy, Jeffrey Olivier, Serguei Preis, Bratin Saha, Ady Tal, Xinmin Tian
International Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), October 2008

[external,pdf] "A uniform transactional execution environment for Java" Lukasz Ziarek, Adam Welc, Ali-Reza Adl-Tabatabai, Vijay Menon, Tatiana Shpeisman, Suresh Jagannathan
European Conference on Object-Oriented Programming (ECOOP), July 2008

[external,pdf] "Irrevocable transactions and their applications" Adam Welc, Bratin Saha, Ali-Reza Adl-Tabatabai
Symposium on Parallelism in Algorithms and Architectures (SPAA), June 2008

[external,pdf] "Kicking the tires of software transactional memory: why the going gets tough" Richard M. Yoo, Yang Ni, Adam Welc, Bratin Saha, Ali-Reza Adl-Tabatabai, Hsien-Hsin S. Lee
Symposium on Parallelism in Algorithms and Architectures (SPAA), June 2008

[external,pdf] "Practical weak-atomicity semantics for Java STM" Vijay Menon, Steven Balensiefer, Tatiana Shpeisman, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Bratin Saha, Adam Welc
Symposium on Parallelism in Algorithms and Architectures (SPAA), June 2008

[external,pdf] "Single global lock semantics in a weakly atomic STM" Vijay Menon, Steven Balensiefer, Tatiana Shpeisman, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Bratin Saha, Adam Welc
Workshop on Transactional Computing (TRANSACT), February 2008

[external,pdf] "Revocation techniques for Java concurrency" Adam Welc, Suresh Jagannathan, Antony L. Hosking
Concurrency and Computation – Practice and Experience, October 2006

[external,pdf] "Transparently reconciling transactions with locking for Java synchronization" Adam Welc, Antony L. Hosking, Suresh Jagannathan
European Conference on Object-Oriented Programming (ECOOP), July 2006

[external,pdf] "Safe futures for Java" Adam Welc, Suresh Jagannathan, Antony L. Hosking
International Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), October 2005

[external,pdf] "Improving virtual machine performance using a cross-run profile repository" Matthew Arnold, Adam Welc, V.T. Rajan
International Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), October 2005

[external,pdf] "A transactional object calculus" Suresh Jagannathan, Jan Vitek, Adam Welc, Antony L. Hosking
Science of Computer Programming, August 2005 

[external,pdf] "Preemption-based avoidance of priority inversion for Java" Adam Welc, Antony L. Hosking, Suresh Jagannathan
International Conference on Parallel Processing (ICPP), August 2004 

[external,pdf] "Transactional monitors for concurrent objects" Adam Welc, Suresh Jagannathan, Antony L. Hosking
European Conference on Object-Oriented Programming (ECOOP), June 2004 

[external,pdf]"A semantic framework for designer transactions" Suresh Jagannathan, Jan Vitek, Adam Welc, Antony L. Hosking
European Symposium on Programming (ESOP), European Joint Conferences on Theory and Practice of Software (ETAPS), March-April 2004

EDUCATION

PhD in Computer SciencePurdue UniversityComputer Science Department, March 2006
Advisors: Antony L. Hosking and Suresh Jagannathan
[pdf] "Concurrency abstractions for object-oriented programming languages using optimistic protocols"

MS in Computer Science, Purdue University, Computer Science Department, May 2003
Advisor: Antony L. Hosking

MS in Computer SciencePoznan University of Technology, Institute of Computing Science, May 1999
Advisor: Jerzy Brzezinski

PERSONAL You can find some personal information, updates on (more or less) recent activities and even some pictures here.