Kacper Bąk, Ph.D.


Welcome, here you can find a bit about myself and the stuff I have been doing.

I am a senior research engineer at Quantstamp. Prior to that I was a senior software engineer at MathWorks (MATLAB). I have expertise in software modeling, verification, and blockchain security. I have been building and breaking software for over two decades.

I received Ph.D. in Computer Science (2013) from University of Waterloo. I did software engineering research under the supervision of Prof. Krzysztof Czarnecki. I hold B.Sc. in Computer Science (2009) from Warsaw University of Technology.


Blockchain Solutions and Security Audits (2017-...)

At Quanstamp our goal is to help develop and secure decentralized internet. I work on distributed ledger solutions and perform security audits of smart contracts, blockchains, and dapps. We review code via manual and automated methods. We also do lightweight modeling and formal verification. We developed a dapp for smart contract scans.

I have been helping with building and leading teams at Quantstamp. I help to design and improve our internal processes, provide auditor training, and interview job candidates. I also work with our business development team and interact with external clients. Sometimes I attend crypto-related conferences.

Advanced Software Development (2013-2017)

Previously, I joined MathWorks to bring software research and model-based software development into practice. I worked on projects that facilitated software modeling and code generation techniques. The projects found a wide adoption within the company and boosted the productivity of engineers.

  • MF0: class-based modeling framework with modeled services.
  • Class Modeling: native support for associations management in MATLAB.
  • Clam: a web-based class modeling editor for MATLAB.
  • Dependency Viewer: a web-based dependency viewer for Simulink models.
  • Diagram Framework: framework for generating graph-based graphical editors.

Software Engineering Research (2009-2013)

In GSD Lab I did research in automated software engineering for my Ph.D. My objective was to improve tools and processes for managing software product lines. I focused on modeling languages and variability. Modeling is akin to programming but more abstract. In programming, languages describe programs; in modeling, languages describe models. My work contributed to two such languages: Clafer and Common Variability Language.

  • Clafer: a unified language for modeling and analysis of variability in software product lines.
  • Common Variability Language (CVL): OMG standard proposal for specifying and resolving variability.
  • Example-Driven Modeling (EDM): approach that systematically uses explicit examples for eliciting, modeling, verifying, and validating complex business knowledge.

Past Projects (1998-2009)

As a teenager I spent my free time coding programs in the assembly language. I also did a good deal of software cracking and reverse engineering, and got interested in cryptography and computer security. As an undergrad I enjoyed building satellites.

  • Certificateless Cryptography: implementation of a crypto scheme for my final-year project.
  • RSat: remote satellite testing system. Part of Electrical Ground Support Equipment for PW-Sat.
  • PW-Sat: the first polish pico-satellite. Software for On-Board Computer and Communications.
  • ESEO: software for On-Board Data Handling. OBDH Core team coordinator.
  • BOBAS 2 stratospheric balloon with GPS receiver. Software for On-Board Computer.

"If you're not failing, you're not trying hard enough."