Skip to content
View radrow's full-sized avatar
🐓
No more subgoals.
🐓
No more subgoals.

Highlights

  • Pro

Organizations

@warsztatywww @aeternity @erlscripten

Block or report radrow

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
radrow/README.md

Radosław Rowicki

A computer scientist by passion and profession. Graduate at the University of Warsaw, master's degree, currently a PhD student at DTU Compute.

GitHub radrow Linkedin radrow Stack Exchange reputation

Top Langs

Skills

Areas

  • Functional programming
  • Compiler construction
  • Type theory
  • Blockchain
  • Formal verification

Technologies & lanugages

  • Advanced: Haskell, Erlang, Coq
  • Semi-advanced: C#, Rust
  • Intermediate: Python, Prolog

Natural languages

  • Mothertongue: Polish
  • Fluent: English
  • Communicative: German

Professional experience

2023–present — PhD Student at DTU Compute

  • Researching methods for verification of distributed systems
  • Teaching assistance in computer science master's courses

2019–present — Erlang Developer at æternity blockchain

  • Developing a compiler for a smart contract language
  • Developing tooling for smart contract development
  • Developing a virtual machine for smart contracts
  • Conducting technical interviews and onboarding new members

2021–2022 — Software Engineer at Microsoft Corporation

  • Developed the server behind Business Central 365
  • Maintained site reliability

2018 — Haskell & Elm Developer Intern at Vacation Labs

  • Introduced a new booking infra for the company's services
  • Introduced Elm to the codebase

Education

2023–2026 (est.) Technical University of Denmark

  • Research project: "Hyben - Hybrid Verification of Heterogeneous Message-Passing Applications"
  • Formalised methods of distributed deadlock detection via black-box monitors
  • Mechanised theoretical results in Rocq
  • Implemented tools for deadlock detection in gen_server-based systems: DDMon and DDTrace

2019–2022 University of Warsaw

Master's degree in computer science.

2020–2021 Ludwig Maximilian University of Munich

Student exchange programme

2016–2019 University of Warsaw

Bachelor's degree in computer science


Selected projects

PhD related

  • ddmon — A prototype tool for distributed deadlock detection in Erlang/Elixir systems based on the gen_server behaviour. Implemented as black-box proxy monitors. Works as a drop-in replacement for the gen_server module.
  • ddtrace — Another distributed deadlock detecting tool for generic servers in Erlang, but this time based on observing monitors that do not require any intervention in the code of the monitored process. Instead, uses built-in trace facility to make deadlock verdicts based solely on incoming and outgoing communication.
  • dlstalk — Fully mechanised formalisation of a deadlock detecting algorithm via proxy monitors. Specifies syntax and semantics of monitored and unmonitored services and networks and proves transparency and preciseness of deadlock verdicts. ddmon is the implementation of this model.

Work related

  • aesophia — I developed the Sophia smart contract language for the æternity blockchain.
  • aerepl — I designed and implemented a Read-Eval-Print Loop and debugger for the Sophia language.
  • aerepl-web — Web interface for æREPL implemented by me.
  • aeserialization-rust — I rewrote core components of the æternity blockchain in Rust.
  • tree-sitter-aesophia — I implemented a Tree-sitter grammar for æternity's smart contract language.
  • erlscripten — I took key part in the erlscripten project, which aims to port Erlang applications to the frontend of web applications by transpiling it into PureScript.
  • erlscripten/purescript — For the erlscripten project I did a lot of tinkering in the source generator and optimizer of PureScript's compiler. My work resulted in a few contributions to the original project:
    • #4006 — I identified and fixed a performance issue in one of PureScript's AST transformations.
    • #3968 — I proposed changes to how tail-call optimizations are triggered (unmerged).

University related

  • radlang — An interpreter of a Haskell-like language. Supports type classes, full type inference, higher kinded types, for notation for monads and lazy evaluation.
  • latte — An x86 compiler for a Java-like OOP language. Implements class inheritance, polymorphism via virtual methods and some simple optimization techniques.
  • satisfaction — A SAT solver implementing CDCL and DPLL algorithms written in Rust as an assessment task for courses at LMU.
  • VAE-CF — Bachelor's thesis project. A variational autoencoder for collaborative filtering written in Tensorflow. Created in cooperation with NVIDIA Corporation to optimize it for their hardware and infrastructure.
  • tftp-client-coq — A TFTP client written in Coq/OCaml. Provides proofs for compliance with the RFC standard.
  • Tiny-Semantics — A simple CPS-styled interpreter of an imperative language written in Haskell.
  • instant-compiler — A calculator-like language compiler that targets LLVM and JVM.

Independent / personal

  • i3hloc — A customizable, parallelized scheduler for the i3status status bar for i3 WM. Written in Haskell.
  • fizzbuzz-coq — A super defensive joke implementation of the Fizz Buzz problem written as a sophisticated proposal to the state-of-the-art implementation. Written in Coq to prove correctness of every step of the algorithm. Obfuscation warning.
  • blockchain-toy — A simple centralized blockchain implementation written in Haskell.
  • Iris — I provided the Iris Mopidy frontend with Polish localization.

Pinned Loading

  1. erlscripten/erlscripten erlscripten/erlscripten Public

    Erlang to PureScript transpiler. Run Erlang in the browser!

    Erlang 114 2

  2. radlang radlang Public

    A functional programming language intepreter with typeclasses, full type inference and lazy evaluation

    Haskell 3

  3. mkfilipiuk/VAE-CF mkfilipiuk/VAE-CF Public

    Variational Autoencoder for Collaborative Filtering implementation in TensorFlow

    Python 24 9

  4. satisfaction satisfaction Public

    A performant and elegant implementation of CDCL and DPLL SAT solving algorithms

    Rust 2

  5. aeternity/aesophia aeternity/aesophia Public

    Stand alone compiler for the Sophia smart contract language

    Erlang 53 20

  6. ddtrace ddtrace Public

    Distributed deadlock detection via asynchronous (pitch)black-box monitors

    Erlang