Hi, I'm Roman Dobias, I am software developer, and I've devoted my last 15 years of life to computers.
From System programming through Computer Graphics and Computer Vision, I have always been interested in many fields of Computer Science.
I find challenge both in the creation of new products and their features, as well as in enhancing their quality.
I consider myself a goal-oriented individual, finding immense satisfaction in achieving set objectives. As evidence, you can witness me conquering 🇪🇸El Teide (3700m) in the image. :)
As for my hobbies, I like to spend my time learning about (non)technical concepts, history, reading books, and doing various sports such as running, cycling and box.
🇨🇿Brno University of Technology | 2018 - 2021
During my master's program, I explored a wide array of subjects, expanding my expertise from Theoretical Informatics and Abstract Structures (where proofs seemed to be around every corner) to more specialized areas including Voice Recognition, Multimedia formats and compression, and Computational Geometry.
Passed with honours.
🇩🇪Technical University Munich | 2019 - 2020
I spent two enriching semesters in the wonderful environment of Munich. Leveraging TUM's strong focus on automotive and engineering, I engaged in introductory courses covering Robotics and Deep Learning, as well as advanced classes in Computer Graphics and Object Detection/Tracking.
🇨🇿Brno University of Technology | 2015 - 2018
My undergraduate experience was characterized by a diverse study program encompassing various disciplines. From engineering fundamentals such as discrete and linear mathematics, and statistics, to hardware-related subjects including integrated circuits, MCUs, and FPGAs, I delved into a broad spectrum of knowledge.
Additionally, I explored software essentials like Assemblers, and ventured into the realm of computer science with courses on Artificial Intelligence and Compilers Theory.
Passed with honors
🇨🇿TESCAN 3DIM | 2023 -
Transitioning from the dynamic environment of the startup industry, I pursued a role in product development, aiming to refine my skills and specialize deeply to become an expert in my field.
🇨🇿SANEZOO | 2021 - 2023
Experience in a startup environment: Multiple roles at the same time, small teams. Spanning from software programming to Computer Vision R&D, and from prototyping with real-world robotic arms to deploying production-ready solutions to automotive customers.
Quickly acquired a range of technical skills as well as essential soft skills and valuable insights into the IT industry.
🇨🇿Codasip / Thermo Fisher | 2018 - 2021
Although I mostly focused on university studies, I had a chance to obtain practical experience while working as a C++ intern.
In Codasip, I've familired myself with C++ metaprogramming and templates.
At Thermo Fisher, I was taught the proper craft of a agile programming with strict merging policies, code reviews, CI/CD and Scrum process.
🇺🇸American Pool - VA, USA | summer 2017
A lifelong experience of serving as a pool lifeguard. Met many interesting people, enjoyed american diversity and mindset.
Grasp product (SANEZOO) | 2021 - 2023
While working at Sanezoo, I had a chance to collaborate on product called GRASP that helps customers in industrial automation to automate challenging task of picking various shiny 3D objects from pallets (more known as randomized 3D bin picking problem).
As the company was still rather in start-up phase and the team was small, I had a chance to serve multiple roles during the job, ranging from C++ development to algorithmic prototyping, project setup, on-phone/in-person customer support at factories, fine-tunning and solution optimization. The project had a wide range of technologies (which, of course, I did not master, but was able to apply succesfully).
Technologies: Linear algebra, C++, Boost, CUDA, Eigen, Pytorch, Thrust, OpenCV, TCP/IP, VAL3, Open3D, Python, Docker, Conan, CI/CD, Proto Buffers
Holographic injection (master thesis) | 2021
My master thesis was trying to solve the problem of porting existing graphical applications that used OpenGL to brand-new type of so-called autostereoscopic displays. These displays allow users to experience 3D perception without any necessity to use 3D glasses or headsets, by simply displaying different images, depending on the angle of sight (that's where 'holographic' originates from).
Most of the thesis thus revolved around hooking OpenGL's API calls and GLSL shaders, and replicating them so that the program would render the scene multiple times, under different angles.
Unfortunately, it turned out that this is impossible to do in general for all applications as the genericity of modern programmed pipeline rendering makes it hard to fully understand how transformation matrix is created by the programmer. However, the fixed pipeline was robust enough to be ported this way.
In addition to defending thesis, I also presented a short paper on student's conference Excell@FITVUT.
Technologies: Linear algebra, C++, OpenGL, GLSL
Lost Heaven Multiplayer | 2013-2015
My first large longterm project, mostly done during my high-school era, in collaboration with other two slovak guys that I'had met while playing online games. It was a non-profit game modification of well-known czech 3D PC game called Mafia:The City of Lost Heaven, released in 2002. Up to our knowledge, this was the second attempt in history of this game to bring multiplayer to the game by fans.
Being my most low-level project I've ever done, this project taught me how x86/32 bit architecture works, how processes can be manipulated using WindowsAPI, code patching, code caves, and so-called hooks. It has also sparked my life long interest in Assemblers and low-level programming. This was quite an overkill at the age of 17, prior to university studies, but we had a great motivation as we shared the interest in this game.
During its brigtest days, the multiplayer supported synchronization of on-foot player movement, cars, and weapons. It was a typical client-server architecture in which each player streams his own actions (movement, state of health, etc) and the server acts as a replicator of these events. The project was abandoned as we reached the boundary at which it's feasible to reverse engineer a game, and due to being unable to fix occuring bugs and crashes that were rooted in RE.
Technologies: C++, WinAPI, Assemblers, Reverse engineering, OllyDbg, RakNet, Squirrel, UDP, TCP/IP
Various small projects | 2007-2013
I've started my internet journey by creating fan websites just for fun for my favourite computer games such as Gothic or Company of Heroes.
Later, I started playing online games under nickname Romop5 such as SA-MP or Mu Online, and naturally, I first got into creating websites for this servers, later running own game server.
At this time, here is where my interest in programming has begun as it was neccessary to create or edit existing PHP scripts that would interact with game's database (typically MSSQL) and allow users to manage their account.
Technologies: HTML, CSS, PHP, MySQL
Online games: SA-MP, MTA SA, Gothic Multiplayer, Mu Online
System programming in C++, mesh processing, image processing, networking, GUI in Qt, wrappers for DL/ML.
Algorithmic complexity, data structures, concurrency, acceleration (OpenMP/CUDA), computer architectures
Readability. Code reviews. CI/CD. Testing.
Ing. Roman Dobiáš, IČO: 21613745, me@romandobias.net
© romandobias.net. All Rights Reserved. Design based on HTML Codex