I’m an MSc student in Computer Science at the Faculty of Electrical Engineering and Computing (FER), University of Zagreb. At the moment I mostly work on mathematical morphology, making it fast on GPUs and differentiable in PyTorch.

A lot of what I write ends up as a library. Two CUDA packages for PyTorch are on PyPI so far, next to a few Linux and IDE tools I first wrote for myself.

Focus

Languages
Python · C++ · CUDA · Rust · Kotlin
ML & vision
PyTorch (custom CUDA ops) · Triton · OpenCV
Systems
Linux · CMake · Meson · Docker

Competitions

Jun 2026 – Sep 2026

Kaggle · Computer vision

Silver medal · top 1.5%

Biohub: Cell Tracking During Development

Detecting and tracking zebrafish cells in 3D over time during early embryonic development. My solution is an ensemble of three small 3D U-Nets with a transformer linker on top. Most of the gain came from handling the sparse labels: only about 1 in 28 cells is annotated, so out of the box the model learns that most real nuclei are background.

59th of 3,947 teams

ML & Research

Jun 2026 – present

CUDA · C++ · PyTorch

Morphottention

Attention for PyTorch with the dot product replaced by a morphological operation. The forward and backward passes are Flash-attention-style CUDA kernels, so the full attention matrix is never stored. It works with autograd, and a standard ViT can use it without other changes.

Jun 2026 – present

PyTorch · CUDA · C++

serron

Differentiable erosion, dilation and the operators built from them, plus learnable morphological layers, for PyTorch. With flat structuring elements the CUDA kernels run a separable van Herk–Gil–Werman scan, so forward and backward cost O(1) per pixel at any window size. Eroding an 8×3×512×512 batch with a 127×127 window takes 0.25 ms on an H100. Plain PyTorch needs 81 ms, CuPy 2.0 ms.

Mar 2026 – present

Research · PyTorch

Lesion Segmentation in Dermoscopic Images Using FCN with Mathematical Morphology Enhancements

Plain FCNs segment skin lesions with fragmented masks and lose thin structures. We added learnable morphology to fix that: differentiable morphological layers inside the network, a boundary-aware loss, and morphological post-processing. On ISIC2018-T1 a stripped-down FCN with these changes reaches a Dice of 0.9070. That beats the original challenge submissions, later FCN methods and several larger U-Net and Transformer models, at a fraction of their compute. I led the team of five and wrote the morphological layers, the loss, preprocessing and evaluation.

Paper awaiting publication · code on acceptance

Open Source

Most of these I wrote for myself first and published later. I still use them and maintain them regularly.

Oct 2026 – present

Python · matplotlib

kx-plot

Matplotlib plots in one line for notebooks. A short spec string like “scatter-grid-leg” sets the plot kind, theme and options, and an unknown token raises an error. It has 15 plot kinds, 7 themes and colour-blind-safe palettes. The only dependencies are matplotlib, numpy and pandas, so it also works offline in Kaggle competition notebooks.

Sep 2026 – present

Python · Linux

bt-dualboot

Syncs Bluetooth pairing keys between Linux and Windows so paired devices survive a dual-boot switch.

Jul 2026 – present

Kotlin · IntelliJ Platform

IssueHub

A JetBrains IDE plugin for working on GitHub and GitLab issues from inside the editor.

Mar 2026 – present

Python · C++ · PAM

SecureEye

A fork of Howdy, the face-login module for Linux, rebuilt so the recognition stack no longer runs inside PAM. A small C++ PAM module sends one request over a Unix socket to an unprivileged daemon and fails closed to the password prompt. It unlocks the session and approves sudo, and ships as packages for Debian/Ubuntu, Fedora and Arch.

Oct 2025 – Jan 2026

Django REST · React · PostgreSQL

BullBear

A paper-trading platform for stocks and ETFs, built by a team of six for FER’s Software Engineering course. Users trade on live market data, follow their portfolio, compete on return leaderboards and share “Mini-Funds”. I led the team and worked across the stack. CI/CD, deployment and the database were mine, as was a caching layer that batches market-data requests in cycles to stay under the data provider’s rate limits.

Education

2026 – 2028

University of Zagreb, Faculty of Electrical Engineering and Computing (FER)

MSc, Computer Science (in progress).

2023 – 2026

University of Zagreb, Faculty of Electrical Engineering and Computing (FER)

BSc, Computer Science.

Thesis: Memory efficiency of self-attention mechanisms in vision transformer architectures.

2019 – 2023

XV Gymnasium (MIOC), Zagreb

High-school diploma, Mathematics & Computer Science.

Linux & Open Source Club · competitive-programming team (InfoKup, HONI, ACSL).

Languages

  • CroatianNative
  • EnglishFull professional proficiency

Elsewhere

Packages