I am a compiler developer with 5+ years of experience. I am currently working as a software engineer at DFINITY.
I am interested in all aspects of programming language design and implementation.
DFINITY, Software Engineer (Rust). Jun 2020 - current
I am currently working at DFINITY as a Software Engineer (Rust).
Well-Typed, Haskell consultant. Jan 2018 - Jun 2020
I was one of the maintainers of the Glasgow Haskell Compiler (GHC). I started contributing to GHC in 2015 and I spent between 30 and 40 hours a week working on GHC between January 2018 - Jun 2020.
Some examples of my work:
I worked on the design and implementation of a new concurrent garbage collector for GHC. Our work was presented at MuniHac 2018. The GC is shipped with GHC 8.10.
I debugged and fixed many tricky bugs. Some examples are:
Picus Security, Software Engineer (Haskell). Jan 2017 - Jan 2018
Shipped 30,000+ lines of Haskell (excluding comments and whitespace) implementing most of the server and client programs. Designed wire protocols (for client-server communication) and REST APIs (for UIs).
Microsoft Research, Cambridge. Research Intern. 2016 Summer
Worked with Simon Peyton Jones on various GHC projects. Two of the bigger projects are: designing and implementing a new intermediate language for GHC (to replace Core), and implementing a new representation for sum types. The latter is and available to users with -XUnboxedSums flag in GHC 8.2.1 and later.
Indiana University, Master of Science in Computer Science. 2015 - 2016
Started as a PhD student but switched to masters. Worked with the programming language team, with focus on optimizing Haskell. Some of the other interests during this time: multi-stage programming, partial evaluation, supercompilation, JIT compilation.
Runtime Verification. 2014, 4 months
Worked on K Framework as a software engineer. Maintained ktest (testing framework), and worked on implementation of a new intermediate language.
Google Summer of Code for Haskell. 2014, 3 months
Soostone - 2014, 3 months
Worked as Haskell Software Engineer.
Formal Systems Laboratory, University of Illinois at Urbana-Champaign. 2013, 3.5-month internship
Worked on K Framework, a rewrite-based executable semantics framework for programming languages, type systems and formal analysis tools. Advised by Prof. Grigore Roşu.
Ozyegin University, Istanbul, Turkey. 2013, 3.5-month internship
Developed an interpreter for a statically typed multi-staged programming language with subtyping, row polymorphism, and type inference. Performed extensive literature reading. Implemented in OCaml. Advised by Prof. Barış Aktemur.
OBSS, Istanbul, Turkey. 2012, 3.5-month internship
Developed a simple static analysis tool for GrayMound, a Java framework based on J2EE and an Eclipse plugin.
TUBITAK (The Scientific and Technological Research Council of Turkey), Kocaeli, Turkey. 2010, 4-week internship
Developed a web UI for PiSi, package manager of Pardus (a GNU/Linux distribution).
Ryan R. Newton, Ömer S. Ağacan, Sam Tobin-Hochstadt, Peter Fogg. Parallel Type-checking with Haskell using Saturating LVars and Stream Generators. Published at PPoPP 2015. [link]
Edward Z. Yang, Giovanni Campagna, Ömer S. Ağacan, Ahmed El-Hassany, Abhishek Kulkarni, Ryan Newton. Efficient communication and Collection with Compact Normal Forms. Published at ICFP 2015. [link]
Michael D. Adams and Ömer S. Ağacan. Indentation-sensitive parsing for Parsec. Published at Haskell Symposium 2014. [link]
Indiana University - Bloomington, Indiana, USA. Masters in Computer Science. 2015 - 2016.
TOBB University of Economics and Technology - Ankara, Turkey. BSc in Computer Engineering. 2009 - 2014.