About Me

A photo of myself.I was born in Opava, which is a medium-sized city located near Ostrava in the Czech Republic. Until I went to college, I lived with my family in Mokré Lazce, which is a small village near Opava. From 2001 to 2005, I attended Mendel Grammar School in Opava, from which I have graduated. After my graduation in 2005, I moved to Brno, where I studied at the Faculty of Information Technology, Brno University of Technology (FIT BUT). I finished my MSc. studies in 2010 and my Ph.D. studies in September 2014.

During my studies at FIT BUT, I started to enjoy theoretical aspects of computer science. The person who brought me into the magical world of theoretical computer science was prof. Alexander Meduna. His lectures about the basics of formal language theory woke my interest in this research area. Basically, formal language theory is a branch of mathematics that formalizes languages, such as natural or programming languages, and devices that define them strictly rigorously. I have done my bachelor’s thesis, master’s thesis, and dissertation thesis under his supervision. Jointly with prof. Meduna, I have written and published two books, eleven journal papers, and many other publications, such as conference contributions. For more details, see the Publications page.

My avatar.I have started with serious programming right after I entered FIT BUT – that is, in late 2005. Until then, I only did some basic Pascal and HTML coding. I can say with certainty that college ignited my passion for software development. I switched from Windows to Linux and started to learn shell and systems programming. When I think about it now (February 2014), the switch to Linux has been one of the best professional decisions I have ever made. As many other beginners, I started with Fedora and Kubuntu. After a few years, I moved to Debian, and since 2010, I have been happy with Arch Linux. I also switched from KDE to Fluxbox and from Kate to Vim. I do not regret any of these switches and I wonder what will be the next change.

I am currently employed at Avast, where I have been working on development of a retargetable decompiler used for platform-independent malware analysis in executable files. You can try our tool online. Together with my colleagues, we have published many conference papers on reverse engineering, with focus on decompilation. It is a process of converting binary files into high-level code, such as C. If you understand Czech, be sure to check out my talk on decompilation, entitled “From a hamburger to cow or how to get source code from binary files”. In our team, I am the leader of the back-end part of the decompiler. I am also in charge of server administration and development of our online decompilation service.

Apart from my studies and work in Avast, I enjoy writing posts to my English and Czech blogs, giving talks, developing open-source software, and reading technical stuff. I do not have a single favorite programming language, but C, C++, and Python are probably the three languages I know best.

General Interests

programming languages and practices, software development, open-source software, reverse engineering (decompilation), operating systems (Linux), theoretical computer science (formal languages)

Professional Career

  • Avast Software, Brno, CZ (09/2016 – *)
    Development of a retargetable decompiler used for platform-independent malware analysis in executable files.

    Development of a clustering framework for categorization of malware.

    • framework development (Python, C++)
    • online web service development (Python)
    • server administration (Linux)
  • AVG Technologies, Brno, CZ (04/2011 – 09/2016)
    Development of a retargetable decompiler used for platform-independent malware analysis in executable files.

    Development of a clustering framework for categorization of malware.

    • framework development (Python, C++)
    • online web service development (Python)
    • server administration (Linux)

    AVG Technologies was bought by Avast Software in 2016 and I have been employed by Avast since then.

  • Faculty of Information Technology BUT, Brno, CZ (07/2012 – 09/2014)
    Research at the Research Centre of Information Technology, within the National Supercomputing Center (IT4I).

    Research areas:

    • regulated formal models (grammars, automata, and grammar systems)
    • reverse compilation (decompilation), malware analysis
  • Faculty of Information Technology BUT, Brno, CZ (11/2010 – 09/2014)
    Teaching and research.

    Taught classes:

    • Formal languages and compilers
    • Introduction to programming systems
    • Principles of programming languages
    • Graph algorithms

    Research areas:

    • formal language theory, especially regulated grammars and automata
    • reverse engineering, especially reverse compilation (decompilation)
  • Fituška – A Private FIT BUT Student Forum (fituska.eu) (09/2006 – 08/2010)
    Administration, moderation, and development of a private forum for over 2 400 users students at the Faculty of Information Technology, Brno University of Technology.

    • PHP, MySQL, XHTML, CSS, JavaScript
    • phpBB
  • Calitko Project (calitko.org) (06/2007 – 10/2007)
    Development of an extensible software P2P framework for resource discovery and resource acquisition.

Education

  • Ph.D. @ Faculty of Information Technology BUT, Brno, CZ (2010 – 2014)

    • Study specialization: Computer Science and Engineering
    • Dissertation topic: One-Sided Random Context Grammars (theoretical computer science)
    • Dissertation thesis defended in September 2014
  • Master’s Degree @ Faculty of Information Technology BUT, Brno, CZ (2008 – 2010)

    • Study specialization: Information Systems
    • Thesis topic: On Erasing Rules in Regulated Grammars (theoretical computer science)
    • Final state examination, red diploma
  • Bachelor’s Degree @ Faculty of Information Technology BUT, Brno, CZ (2005 – 2008)

    • Study specialization: Information Technology
    • Thesis topic: Canonical Derivations in Programmed Grammars (theoretical computer science)
    • Final state examination, red diploma
  • Mendel Grammar School, Opava, CZ (2001 – 2005)

    • Graduation exam

Research

My main research interests are

  • formal language theory, especially regulated grammars and automata
  • reverse engineering, especially reverse compilation (decompilation)

I have published (authored or co-authored)

  • 2 books
  • 2 book chapters
  • 16 international journal papers
  • 10 international conference papers
  • 3 international conference posters
  • 5 student competition contributions
  • 3 theses

For more details, see the Publications page. Also, see my researchgate.net profile.

Awards

  • Dean’s award for an excellent dissertation thesis and Ph.D. study results, FIT BUT, Brno, 2014
  • Rector’s award for excellent results obtained during the Ph.D. study, BUT, Brno, 2013
  • Joseph Fourier Prize, Prague, 2013, 5th place (computer science, student competition)
  • Student EEICT 2013, Brno, 1st place (computer science, student competition)
  • Student EEICT 2012, Brno, 1st place (computer science, student competition)
  • Student EEICT 2011, Brno, 1st place (computer science, student competition)
  • Dean’s award for an excellent master’s thesis, FIT BUT, Brno, 2010
  • Student EEICT 2010, Brno, 3rd place (computer science, student competition)
  • Dean’s award for an excellent bachelor’s thesis, Brno, 2008
  • Student EEICT 2008, Brno, 2nd place (computer science, student competition)
  • International Young Physicists’ Tournament, Leoben, Austria, 2004, 3rd place (physics, team competition)
  • Becario Challenge, Prague, 2003, 3rd place (physics, team competition)

Technical Skills

Software development: structural and object-oriented programming, version control systems (Git), wiki and issue tracking systems (Trac, Redmine), build automation (CMake, Make), testing, test-driven development

Disciplines: application programming, systems programming, web application programming

Operating systems: Linux (user and server admin), Microsoft Windows (user)

Programming environment: Arch Linux, Fluxbox, Konsole + Tmux, Bash, Vim, Firefox + Vimperator. My configuration files are available on GitHub.

Programming Languages

Some of the programming languages I have experience with:

  • C – basic knowledge of C89, C99, and C11
  • C++ – intermediate knowledge of C++98, C++11, and C++14
  • Python – intermediate knowledge of Python 2 and 3
  • Rust – rudimentary knowledge of Rust 1.x
  • Bash – basics of Bash 4
  • PHP – basics of PHP 5–7
  • SQL – basics of SQL (MySQL, MariaDB)
  • LaTeX – basics of LaTeX, documentations, papers, and presentations (Beamer)
  • Other – basics of JavaScript, Java, Haskell, Prolog, Vimscript, x86 assembler

Natural Languages

  • English – professional working proficiency
  • German – elementary proficiency
  • Czech – native speaker

Hobbies

technical literature, movies, music, mountain bike, nutrition

Contact

You can contact me at s3rvac@gmail.com or through any of the websites below.

 LinkedIn Stack Overflow Github Reddit