For most of my career, I have been a software engineer who has liked to design, write, and optimize low-level code (currently defined as C
or C++
).
My preferred shell is a debugger prompt.
My favorite theater of operations is the unpleasantness of reality.
Microsoft taught me how to be an operating systems engineer who knows a thing or two about systems performance and security. Meta (a company formerly known as Facebook) enabled me to refine those skills in a different context. Ironically, I now work on various things related to Linux (kernel) internals.
As of March 2024, I am a Principal Engineer at Amazon (AWS EC2 Nitro team). It feels good to be back and act as a "man who is actually in the arena" and not just a random poser who talks about software engineering. You can read more about the Nitro System here or look at publicly available resources.
Physically, I live in Seattle suburbia (Washington, USA).
My academic ties were associated with the University of Groningen (Netherlands). I defended my dissertation on October 17, 2023. Majority of my research was related to the insanity of code reviews. My dissertation received the MSR 2024 Distinguished Doctoral Research Award. The speed of code reviews matters! ;-)
My thesis supervisors were Dr. Ayushi Rastogi and Prof. Paris Avgeriou from the Bernoulli Institute for Mathematics, Computer Science and Artificial Intelligence at the University of Groningen in Netherlands. I was part of the Software Engineering and Architecture research group. A preprint of every recent research paper I have written and accepted by arXiv is available there for free.
Resources I found helpful in pretending to be a semi-functioning Ph.D. candidate.
My research projects focus on empirical challenges coming from the existing large-scale software projects in industry. The key qualifier for me is the practical application of results. Any study I am involved with must be eventually useful for software engineers.
- Niklaus Wirth's "A Plea for Lean Software" is still one of my favorite CS papers.
- Read "Producing wrong data without doing anything obviously wrong!" and ponder about how complicated it is to produce valid results.
- Read "Thoughts on applicability" to understand why there is such a disconnect between academics and practitioners.
- Gunnar Kudrjavets. 2024. Debunking the Myths of Code Velocity: The Elusive Search for Speed. ACM SIGSOFT Software Engineering Notes, Volume 49, Issue 3.
- Gunnar Kudrjavets, Aditya Kumar, Jeff Thomas, and Ayushi Rastogi. 2024. The Devil Is in the Command Line: Associating the Compiler Flags With the Binary and Build Metadata. In the 46th International Conference on Software Engineering (ICSE 2024). SEIP Track. April 14-20, 2024, Lisbon, Portugal.
- Gunnar Kudrjavets, Aditya Kumar, Jeff Thomas, and Ayushi Rastogi. 2024. What Do You Mean by Memory? When Engineers Are Lost in the Maze of Complexity. In the 46th International Conference on Software Engineering (ICSE 2024). SEIP Track. April 14-20, 2024, Lisbon, Portugal.
- Marija Franka Žuljević, Antonija Mijatović, Stjepan Ljudevit Marušić, Gunnar Kudrjavets, Ivan Buljan, and Darko Hren. Mystical and Affective Aspects of Psychedelic Use in a Naturalistic Setting: A Linguistic Analysis of Online Experience Reports. In Journal of Psychoactive Drugs. 2023.
- Gunnar Kudrjavets and Ayushi Rastogi. Does Code Review Speed Matter for Practitioners?. 2023. Published in Empirical Software Engineering as an open access article. To also appear in ICSE 2024 as a journal-first paper.
- The thesis: The Need for Speed: Increasing the Code Review Velocity.
- Gunnar Kudrjavets. 2023. "Reflections on a career at Microsoft between 2000 and 2015." Invited talk at Microsoft Development Center Estonia. April 4, 2023, Tallinn, Estonia. Virtual.
- Gunnar Kudrjavets, Aditya Kumar, and Ayushi Rastogi. 2023. What Warnings Do Engineers Really Fix? The Compiler That Cried Wolf. In Proceedings of MSR '23: Proceedings of the 20th International Conference on Mining Software Repositories (MSR 2023). Industry Track. May 15-16, 2023, Melbourne, Australia.
- Gunnar Kudrjavets, Nachiappan Nagappan, and Ayushi Rastogi. 2023. Are We Speeding Up or Slowing Down? On Temporal Aspects of Code Velocity. In Proceedings of MSR '23: Proceedings of the 20th International Conference on Mining Software Repositories (MSR 2023). May 15-16, 2023, Melbourne, Australia.
- Gunnar Kudrjavets and Aditya Kumar. 2023. Optimizing the Compiler's Memory Usage? Let Us Implement a Basic Profiler First!. The slides are here. At LLVM CGO 2023 (Seventh LLVM Performance Workshop at CGO). February 25, 2023. Montreal, Canada.
- Gunnar Kudrjavets, Ayushi Rastogi, Jeff Thomas, and Nachiappan Nagappan. 2023. Who Ate My Memory? Towards Attribution in Memory Management. In Proceedings of The 45th International Conference on Software Engineering (ICSE 2023). SEIP track. May 14-20, 2023, Melbourne, Australia.
- Best Disruptive Paper Award: Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, and Ayushi Rastogi. 2022. When malloc() Never Returns NULL -- Reliability as an Illusion. In 33rd IEEE International Symposium on Software Reliability Engineering (ISSRE 2022).
- Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, and Ayushi Rastogi. 2022. There Ain’t No Such Thing as a Free Custom Memory Allocator. In 38th IEEE International Conference on Software Maintenance and Evolution (ICSME 2022).
- Gunnar Kudrjavets, Ayushi Rastogi, Jeff Thomas, and Nachiappan Nagappan. 2022. On Quantifying the Benefits of Dead Code Removal. Extended abstract. In 38th IEEE International Conference on Software Maintenance and Evolution (ICSME 2022).
- Gunnar Kudrjavets, Jeff Thomas, Nachiappan Nagappan, and Ayushi Rastogi. 2022. Is Kernel Code Different From Non-Kernel Code? A Case Study of BSD Family Operating Systems. In 38th IEEE International Conference on Software Maintenance and Evolution (ICSME 2022).
- Gunnar Kudrjavets, Jeff Thomas, and Nachiappan Nagappan. 2022. The Evolving Landscape of Software Performance Engineering. In Proceedings of Evaluation and Assessment in Software Engineering (EASE '22). ACM, New York, NY, USA.
- Gunnar Kudrjavets, Aditya Kumar, Nachiappan Nagappan, and Ayushi Rastogi. 2022. Mining Code Review Data to Understand Waiting Times Between Acceptance and Merging: An Empirical Analysis. In Proceedings of MSR '22: Proceedings of the 19th International Conference on Mining Software Repositories (MSR 2022). ACM, New York, NY, USA.
- Gunnar Kudrjavets, Nachiappan Nagappan, and Ayushi Rastogi. 2022. Do Small Code Changes Merge Faster? A Multi-Language Empirical Investigation. In Proceedings of MSR '22: Proceedings of the 19th International Conference on Mining Software Repositories (MSR 2022). ACM, New York, NY, USA.
- Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, and Ayushi Rastogi. 2022. Quantifying Daily Evolution of Mobile Software Based on Memory Allocator Churn. In Proceedings of The 9th International Conference on Mobile Software Engineering and Systems (MobileSoft '22). ACM, New York, NY, USA.
- Gunnar Kudrjavets, Nachiappan Nagappan, and Ayushi Rastogi. 2022. The Unexplored Treasure Trove of Phabricator Code Reviews. In Proceedings of MSR '22: Proceedings of the 19th International Conference on Mining Software Repositories (MSR 2022). ACM, New York, NY, USA.
- Gunnar Kudrjavets, Aditya Kumar, Nachiappan Nagappan, and Ayushi Rastogi. 2022. The Unexplored Terrain of Compiler Warnings. In Proceedings of The 44th International Conference on Software Engineering (ICSE 2022). ACM, New York, NY, USA.
- Member of the Shadow PC (program committee) for 2022 Mining Software Repositories Conference.
- PC member for the ICSME 2022 Industry Track.
- PC member for the ICSME 2022 Joint Artifact Evaluation Track and ROSE Festival Track.
- PC member for the MSR 2023 Data Showcase Committee within the Data and Tool Showcase Track.
- PC member for the ICSME 2023 Industry Track.
- PC member for the ICSME 2023 Artifact Evaluation Track and ROSE Festival.
- PC member for the Demonstrations Track of the ESEC/FSE 2024.
- PC member for the ICSE 2024 Technical Briefings program.
- PC member for the ICSME 2024 Industry Track.
- PC member for the ICSE 2025 Software Engineering in Practice (SEIP) Track
- PC member for the MSR Awards Committee - MSR 2025
Keywords: Empirical Software Engineering; Assertions; Memory Management; Mining Software Repositories; Systems Programming
- Studying for FAANG interviews.
- All things memory management.
- An irrational passion of mine: compiler warnings.
- Various topics in software development.
- From when I used to work on a MySQL storage engine.