Short bio

My name is Ilja (pronounced as Ilya) Gubins. I'm a y.o. aspiring programmer. Most of my life I've spent in Riga, Latvia, where I've graduated University of Latvia with BSc Computer Science degree. After getting bachelors, I've started MSc Game and Media Technology at Utrecht University in Utrecht, Netherlands.

Currently, I'm in Rennes, France at Techicolor R&D France in Immersive Lab, doing internship and writing master thesis in "3D facial acquisition and animation for VR content". The internship is going to end in September 2017, and I expect to defend the thesis back in Utrecht before October 2017.

I have experience in Java (incl. Android), Javascript (incl. NodeJS), Python (mostly scientific and research), C++ (mostly embedded programming and graphics) and different frameworks for them, as well as some DevOps (Docker, Zabbix, Graphite) stuff.

For 2 years I've worked as a backend Java developer at Exigen Services Latvia and half a year as a frontend developer at In summer 2016 I've interned at Moving Picture Company as a FX Software Developer Intern.

You can find my full resume here: PDF

Feel free to contact me by any means listed in the sidebar.

Notable projects

Facebook Messenger history visualization (D3.js, SVG, HTML/CSS)

Using Facebook API and D3.js (javascript visualization library) I've created an interactive infograph of my FB Messenger usage patterns in 2016. Circle consists of 365 lines representing days, starting with 00:00 on the inside, and ending with 23:59 on the outside. Every received and sent message was plotted as a tiny transparent dash at the appropriate time, resulting in a detailed heatmap.

Interactive real-time OpenCL (incl. GPU) ray-tracer (C++, OpenCL)

As a part of Advanced Graphics course I've been given a task of creating interactive real-time OpenCL ray-tracer. Final version has:

Optimization of MCMAP (C++, SIMD)

During Optimization and Vectorization course we’ve received assignment to find an open-source project and optimize it. By applying various optimization techniques like changing algorithms, as well as applying SIMD and tuning compilation settings, we’ve made the application on average 306% faster comparing to original version.

Heartbeat monitor (Arduino/C, Node.js)

Participating in health related Garage48 Tallinn hackathon, our team created an Arduino-based heart monitor, that sends data via Bluetooth and stores it in a database, accessible through a web-based real-time dashboard, allowing remote monitoring and potential diagnosing.

Character animation motion capture (Vicon Blade, Autodesk Motionbuilder)

Final assignment of Computer animation course was to create a short CGI movie with the requirement of using motion capture for character animation in groups. Me and two of my coursemates have captured motion data in VHTLab mocap lab with 14 MX40 Vicon IR cameras and Vicon Blade software. After that, it was my responsibility to clean-up animations in Autodesk MotionBuilder and retarget them to the character in Unreal Engine 4. In the images below can be seen one of resulting animation, a character standing and looking up around holding the torch vertically.