Hello, World! ☀️
- 🇸🇰 I come from Slovakia, a tiny country in Europe with delicious food.
- 🇳🇱 I’ve lived in the Netherlands since 2018, when I started my bachelor in Computer Science.
- 👩💻 I enjoy puzzling over all things related to the structure and quality of software projects,
from programming languages to software architecture to devops. - 🧬 In 2024, I started pursuing a PhD with Jesper Cockx on type-driven development.
- 🏢 You can usually find me in office 3.E.420 of Building 28 at the TU Delft.
- 💡 I like
- sporty things: 🏃♀️ running 🚴 cycling 🏂 snowboarding ⛸️ ice skating
- nerdy things: 🧙 (fantasy) books 🎲 board games 🎮 video games
- computer things: 🎅 advent of code
- unusual things: 🍀 irish dance
- artsy things: 📷 photos 🤘 music
🧪 Research
[2026] The Way of Types: A Report on Developer Experience with Type-Driven Development
ICPC '26Static type systems are a well-established tool for preventing basic software errors, with more advanced ones providing strong guarantees of program correctness. Additionally, type systems encourage a “types first, implementation later” developer workflow known as “type-driven development” (TyDD). However, current widespread TyDD practices are based on simple type systems with limited expressivity, and the advanced tools being developed by researchers are not making it into mainstream programming languages. To determine
how current practitioners experience the use of type-driven development andwhat inhibits its adoption by a wider range of developers , we conducted a survey with 130 participants from various backgrounds, asking them to describe their experience with current TyDD tools. According to them, TyDD canguide ,communicate , andverify program implementation, but is currently limited by usability issues and missing features. Based on these results, we recommend that advanced TyDD tools be made available to a wider range of developers by investigating and addressing these limitations, with a focus on increasing expressivity while preserving usability.
Pre-Print
[2025] Property-Based Testing Across Four Environments in Open-Source Repositories
Pre-PrintProperty-based testing (PBT) is a valuable technique for assessing software correctness, and its adoption differs across contexts. In this work, we examine how PBT is used in open-source repositories across three languages and four frameworks: Java with
jqwik, Python withHypothesis, and Rust withproptestandQuickCheck. Our study reveals that PBT is used to test a variety of systems and usually verifies one of the following properties: adherence to a contract, equivalence with an oracle, or expected behaviour of errors. We found that developers use a combination of customised generators and post-hoc alterations to control the property input, and they write non-trivial logic to verify the properties, often with multiple assertions along various execution paths. Though these patterns are common across the four environments, notable differences emerge from the specific tooling support of each framework and the capabilities of the underlying language. Based on these similarities and differences, our findings point to potential research directions aimed at facilitating developer adoption of PBT.
[2025] Pinpointing the Learning Obstacles of an Interactive Theorem Prover
ICPC '25 (Distinguished Paper Award)Interactive theorem provers (ITPs) are programming languages which allow users to reason about and verify their programs. Although they promise strong correctness guarantees and expressive type annotations which can act as code summaries, they tend to have a steep learning curve and poor usability. Unfortunately, there is only a vague understanding of the underlying causes for these problems within the research community. To pinpoint the exact usability bottlenecks of ITPs, we conducted an online survey among 41 computer science bachelor students, asking them to reflect on the experience of learning to use the Agda ITP and to list the obstacles they faced during the process. Qualitative analysis of the responses revealed confusion among the participants about the role of ITPs within software development processes as well as design choices and tool deficiencies which do not provide an adequate level of support to ITP users. To make ITPs more accessible to new users, we recommend that ITP designers look beyond the language itself and also consider its wider contexts of tooling, developer environments, and larger software development processes.
Pre-Print DOI
[2024] How Novices Perceive Interactive Theorem Provers (Extended Abstract)
ICFP SRC '24 (Second Place)Interactive theorem provers (ITPs) are known to have a steep learning curve and poor usability. This hinders their spread into commercial software development, wasting their potential to improve software quality. To understand what makes them inaccessible to novices, we conducted an online survey among bachelor students, asking them to list the obstacles they encountered while learning Agda. Analysis of the results revealed design choices and tool deficiencies which do not provide an adequate level of support to beginner nor advanced users. These observations point to one prominent point of improvement: providing a more accessible and sturdy infrastructure for ITP programmers.
TyDe '24
Extended Abstract TyDe Talk Poster Slides Haskell Interlude
[2023] Bringing Formal Verification into Widespread Programming Language Ecosystems (MSc Thesis)
TU DelftFormal verification is a powerful tool for ensuring program correctness but is often hard to learn to use and has not yet spread into the commercial world. This thesis focuses on finding an easy-to-use solution to make formal verification available in popular programming language ecosystems. We propose a solution where users can write code in an interactive theorem prover and then transpile it into a more popular programming language. We use Agda2HS as a case study to determine what challenges users find in using such a tool, improve selected features, and then conduct a user study to evaluate the usability. We find that detailed documentation, support for commonly-used features in the target programming language, features that facilitate verification, integration of the tool into the target ecosystem, and user studies are necessary for the accessibility of such a tool.
Repository
🧑🎓 Students
- Georgi Nihrizov
- Hole-Driven Development for Ownership Types
- MSc Thesis
- Ruben Backx
- A Grounded Theory Study of "How Interactive Theorem Prover Programmers Write Code"
- MSc Thesis
- Jim van Vliet
- Generating Property-Based Tests from Unit Tests
- MSc Thesis
- Property-Based Testing in the Wild!
- Antonios Barotsis: Property-Based Testing in Open-Source Rust Projects
- Max Derbenwick: Property Based Testing in Rust, How is it Used?
- David de Koning: Property-Based Testing in Practice using Hypothesis
- Harald Toth: Exploring Property-Based Testing in Java
- Ye Zhao: Property-Based Testing in Haskell
- BSc Theses
- Maria Khakimova
- Enhancing Proof Assistant Error Messages with Hints: A User Study
- MSc Thesis
- Correct-by-Construction Implementation of Type Checkers
- Charlie Ciaś: Correct-by-Construction Implementation of Typecheckers
- Mariusz Kicior: An Exceptional Type-Checker
- Vincent Pikand: Eliminating bugs in type inference algorithms by describing them with precise types
- Miloš Ristić: Correct-by-Construction Type-Checking for Algebraic Data Types
- Vince Szabó: Correct-by-construction Type Checking for Substructural Type Systems
- BSc Theses
🖋️ Personal Blog
by category!
📷 Pretty Pictures
by meGlenfinnan Viaduct
Glenfinnan, Scotland
07 July 2025
Eagle's Nest Lookout
Calabogie, Canada
02 May 2025
Dunguaire Castle
Kinvarra, Ireland
15 July 2023
Puffin!
Isle of May, Scotland
11 July 2025
Edinburgh Castle
Edinburgh, Scotland
27 July 2024
Puffins!
Isle of May, Scotland
11 July 2025
Cliffs of Moher
County Clare, Ireland
15 July 2023
Chata pri Zelenom plese
Vysoké Tatry, Slovakia
21 July 2021
Old Man of Storr
Isle of Skye, Scotland
08 July 2025
Paragliders
Dolomiti, Italy
25 December 2025
Sheep!
Heemskerk, The Netherlands
17 December 2022
Parc Guëll
Barcelona, Spain
01 September 2022
Modern Art
Delft, The Netherlands
03 June 2022
Metro Madness
Lisbon, Portugal
24 July 2019
Ring of Kerry
Waterville Beach, Ireland
17 July 2023
Parliament House
Budapest, Hungary
26 October 2023
Catedral de Sevilla
Seville, Spain
21 July 2019
BalPol
Delft, The Netherlands
28 May 2020
Real Alcázar de Sevilla
Seville, Spain
21 July 2019
Basílica de la Sagrada Família
Barcelona, Spain
31 August 2022
Catedral de la Almudena
Madrid, Spain
27 July 2019
Sunsets & Surfing
Moliets-et-Maa, France
09 August 2021
Giraffe!
Murchison Falls National Park, Uganda
30 December 2019
A Winding Way
Kibale National Park, Uganda
28 December 2019
