sabbatical (Guildford, UK)
2020–2021
Joined the XMonad project as a
core maintainer. Contributed fixes, features. Reviewed pull requests and
helped 2 other people join the project. Directed a release. Launched
crowdfunding.
Implemented CI for taskwiki (taskwarrior
integration for vimwiki) using Docker and GitHub Actions. Contributed a
number of fixes and became a co-maintainer.
Improved Language Server Protocol support (rename, code actions)
in Async Lint Engine for
Vim.
Upped my Python skills, released strava-offline, strava-gear, arbtt-chart, foursquare-swarm-ical.
Software Engineer Altworx (Brno, CZ)
2019–2020
Collaborated on a real-time event processing system with physical
and cyber security applications.
Prototyped a 100× faster storage engine for the reality network
(time-travelling graph database).
Discovered, investigated and fixed several fundamental issues in
the event processing pipeline.
Addressed technical debt using static analysis tools (linting,
types) and a custom testing framework.
Tech: Elixir, PostgreSQL, Kafka, Docker, Jenkins,
BitBucket Pipelines
Principal Software Engineer GoodData (Brno, CZ)
2017–2019
Ran continuous integration and deployment infrastructure and
build tooling for 100 engineers.
Reviewed and merged hundreds of pull requests across multiple
repositories.
Sped up our JIRA deployment so much that I got Thank-you emails
from the grumpiest engineers.
Contributed patches to jenkins-job-builder
and python-jenkins.
Became a co-maintainer of both.
Made builds of dozens of components more reproducible, secure and
scalable using Docker.
Set up a merge queue for the legacy monolith with 4-hour
integration tests, saving its developers hours of wasted time every
week.
Built a tool for tracking individual test failures in JIRA,
helping developers of shared codebases.
Tech: Python, Perl, Bash, Jenkins, Zuul, Groovy, Java,
Docker, Puppet, RPM
Backend Software Engineer SQLdep (Brno, CZ)
2015–2016
Collaborated on a multi-dialect SQL parser and visual data flow
(lineage) analyzer.
Administered the CI infrastructure and introduced continuous
deployment for the backend.
Scaled the analyzer using parallel workers and a job queue. Set
up logging and monitoring.
Prototyped on-premise deployment of the cloud-first product for
customers in regulated industries.
Tackled tech debt: refactored the codebase into independent
components, sped up tests and builds.
Tech: Scala, Perl, SQL, Jenkins, Ansible
Technical Co-founder Briskat (Brno, CZ)
2014–2014
Developed a prototype of a high-performance interactive database
primarily for Online Analytical Processing, capable of processing
millions of rows in milliseconds on commodity hardware.
Used caching and data compression (with some pre-/post-processing
tricks to improve compression effectiveness) to reduce CPU work and
improve memory bandwidth utilization.
Designed data structures and algorithms for efficient data
storage, sorting, joining and querying.
Tech: Erlang, C, x86 ASM
Senior Software Engineer GoodData (Brno, CZ)
2011–2014
Developed a second-generation Extensible Analytics Engine (XAE),
the core of GoodData platform.
Built an optimizing compiler from Multi-Dimension Analytical
Query Language to SQL.
Tested the SQL backend against a reference implementation of the
semantics using QuickCheck.
Set up regression testing infrastructure using both synthetic and
production data. This ensured correctness, prevented performance
regressions and allowed us to run performance experiments.
Pioneered CI (test results within a minute of git push) and CD
(using Erlang hot code reloading).
Had my sleep interrupted due to production incidents less than 5
times: XAE uses small workers (microservices) with almost no moving
parts, serving millions of reports daily.
Promoted to Senior Software Engineer after we fully migrated to
the second generation XAE.
Tech: Perl, Erlang, Haskell, PostgreSQL, Jenkins,
Puppet, Splunk
Software Engineer Red Hat (Brno, CZ)
2006–2008
Maintained RHEL and Fedora packages for Bash, Dovecot, Cyrus
IMAP, BRLTTY.
Fixed Xorg freezing after 49.7 days (Windows 95, 98 famously had
that issue a few years earlier).
Added the boot-based timer into the Linux kernel to fix uptime
and process start times after sleep.
Fixed a hard to reproduce race in nss_ldap which led to users
seeing another user’s data (e-mails).
Promoted from Associate Software Engineer to Software Engineer
within 6 months.
Tech: C, Bash, RPM, CVS, Git
Programmer QNet CZ (Brno, CZ)
2002–2006
Built an Internet Service Provider portal backend which
configured iptables and traffic control (shaping) and showed live
per-customer traffic statistics.
Implemented a flexible role-based access control framework for
the frontend.
Shadowed the network administrator and technicians, later used
the knowledge while volunteering for the CZFree.Net
community network.
Tech: C++, PHP, Perl, iptables, Asterisk, CVS,
Subversion
Computer Science Masaryk University
(Brno, CZ) 2006–2013
Specialized in Parallel and Distributed Systems. Member of the ParaDiSe lab.
Redesigned the e-learning software for typesetting exam test
sheets: improved layout to avoid page/column breaks in multiple-choice;
added support for advanced formatting, images and mathematical formulae.
The system is still in use today. Tech: LaTeX, Haskell
Typeset the Brisk
Guide to Mathematics, a textbook for the undergraduate math
curriculum.
Teaching assistant for Introduction to Functional Programming;
Automata and Grammars.
Scientific Computing Universität Wien (Vienna,
AT) 2010