Lukas Steiblys
LinkedIn
Software engineer, hobby mathematician and musician.

This page is a description of my more notable personal projects and events ordered reverse chronologically. The page has gone through many iterations since 2004 and the projects have obviously grown in complexity and sophistication.

I had left on a tour of the United States in my travel trailer. You can read about my journey on lukas-travel.herokuapp.com. The content for the blog is created by me and my wife and mostly there is no distinction.

The journey took place from August, 2019 to approximately December 2021, with a five month break in Lithuania in 2021. We visited 46 states, and the majority of national parks and major cities in US.

I built a web application called mailguard.io that provided users with an email address for specifically receiving and storing receipts. This email address could then be used at retail or online stores instead of revealing your personal address.

The service filtered all other marketing emails and spam out and left only receipts so you could quickly access them from one place. However, there were a few problems with this idea:

  • Often the online shops then use your email address for automatic account creation and password recovery. Do we filter the password recovery emails or keep them?
  • There were few opportunities for organic growth in usage of the service. After the initial registration spike of my friends, neither registration, nor usage actually picked up.
After running the service for six weeks, I decided to shut it down.

On the other hand, I was happy that I had an opportunity to try out the Google Cloud Platform for the first time and play with some cool technologies. Screenshots of the web interface are below.

Technologies used: Google Cloud, App Engine, Python, Web Components

At one point, I was living in a San Francisco studio and I did not have enough space for a desktop monitor on my table. However, I needed more computing power than my laptop could provide so I decided to buy a desktop computer, hide it somewhere and connect to it remotely through the home network.

It was not easy to find the right solution for remote desktop streaming so I wrote a survey article of all the solutions I had tried myself. The article is on medium.com: Remote Desktop Solutions for Your Home

As my Uber for [x] idea in 2014, I built a package delivery service.

The idea was to tap into the Eastern Europe to UK package delivery market. There are a lot of packages moving west in unofficial looking vans together with people travelling to and from the UK on a budget. I wanted to make the search for a delivery company and actual pick-up coordination easier.

I spent a couple of months building a web application that fit the consumers who have packages and package delivery companies providing the service. I scraped local classified ads and built up a reasonable list of companies and their delivery locations. I had a fully working product.

The front page was a form that asked for your package information, such as the dimensions, and the destination address. The application could then search a geographical database based on the destination for companies that can deliver. On the package delivery company side, there was a profile where you could enter details about yourself and draw polygons of delivery locations.

It seemed to work and we did end up matching some customers with drivers and packages were delivered. However, there was still some human coordination and it was difficult to find reliable drivers. One idea was to build stronger partnerships with a filtered set of drivers. I did not have enough resources at the time to pursue the project further and I was living on the other side of the world so this project had to end.

Technologies used: Linux VPN, MongoDB with geographical search, Python, jQuery.

My thesis for the degree of MPhil in Applied Mathematics has finally been accepted. The title is "Iterative Methods for Solving Systems of Linear Equations: Hyperpower, Conjugate Gradient and Monte Carlo Methods". It is mostly about detecting and correcting errors in large scale computations caused by cosmic particles hitting CPU logic gates.

You can find the full document here.

Technologies used: Matlab, LaTeX, numerical linear algebra.

I finally finished the first version of a web application for solving multiple retail logistics problems:

  • Optimal work assignment and route planning for delivery drivers.
  • Tracking of visual appeal and presence of goods in store shelves.

For the first problem, there is a web UI for uploading the available work for the day. Once the work is uploaded, an optimization algorithm (k-means with some constraints and other heuristics) is executed to provide a possible solution to the travelling salesman problem. Afterwards, the human can adjust the work assignment and print out worksheets for drivers.

For the second problem there is a web UI for assigning stores to sales representatives who occasionally visit the retail locations. Then the sales representatives use an Android application for checking into stores based on their GPS coordinates, upload photos of goods in shelves and mark the quantity of each item still available. Once uploaded to the server, all of this data is available for further analysis in web reports.

This solution is currently used to manage thousands of locations and was being updated until 2017. A version of the landing page, although slightly outdated, is available here

Technologies used: Python, aiohttp, NumPy, Golang, Postgres, Docker, jQuery, Android, Java, microservices.

Javascript experiments with HTML5 canvas:

Technologies used: Javascript, HTML Canvas.

We have publicly released an Android 2D platformer game called "Hedgehog in the Fog". It is a family friendly game based on a russian story of the same name.

The game is available on Google Play and screenshots are below.

Technologies used: Android, C++, Java, Blender3D, Box2D physics.

A short music video I made while playing with Blender.

I went to Global GameJam'10 in London and our team made a 2D side-scrolling game titled "Natasha - Soviet Plumber Princess". The main theme of the GameJam was "deception" and there is plenty of deception in the game in the strange mechanics.

The link to the entry on the GameJam website is here and screenshots are below.

Here is a music video I spent a lot of time on. It was mostly done with Blender3D and some custom scripting for special effects. The music is by Spotless & Mill and the track name is "So Pure".

For something not related to computers, here is a bike restoration project. This was a bicycle that I received for my 11th birthday, I believe. It was starting to rust, the brakes would not work and overall it just needed attention. I diassembled the whole bicycle, sanded it down, repainted, lubricated what needs lubricating again and replaced some of the essential parts.

Then, a couple of months later, it was stolen. I am sure it has a different color now.

Below are before and after pictures.

"Yin" was the last demo I made so far. It was presented at NVScene 2008 demoparty in San Jose. I did not have a chance to attend in person though.

There was no central theme, but it did have some neat effects and a lot of the scenes were synchronized to music through frequency analysis. Also, I played around with advanced shadow mapping techniques.

I think there is some issue with the lower frequencies in the audio file so if you want to see it yourself, go easy on the volume:

Technologies used: Direct3D 10, C++.

A demo for the Breakpoint 2008 demoparty. I really love the mood in the initial scene:

Technologies used: Direct3D 9, C++.

This was my first demo that I presented at a demoparty at Assembly 2006. It placed 9th out of 14, which is a good result for the first attempt, I think. In addition, I was later awarded the prestigious 2006 scene.org award for Breakthrough Performance.

Interesting fact: during development, I found an Intel graphics driver bug, which is supposed to be very rare. I have not hit a driver bug since.

Technologies used: Direct3D 9, C++.

I had spent most of my time developing "game engines" or essentially working on low-level graphics functionality and never really building any actual game. So once I decided to use the simplest graphics libraries to make an actual game as quickly and effortlessly as I could.

I decided to make a 2D side-scrolling and shooting game. You play as a hero, who walks and jumps around the room shooting zombies. Nothing fancy, but it was something playable and possibly enjoyable.

I can think of a 100 ways I could improve the game today, but it is a part of history now.

The game runs in Windows and can be downloaded here.

Technologies used: C++, SDL.

The screenshots below are from some of my earliest experiments in computer graphics. I do not even know the dates of these screenshots anymore. I am posting them here for personal sentimental value and maybe a few laughs.

I remember those days as an excting time when the field of computer graphics was still making great leaps in real-time rendered image quality. Every game looked better than the previous one.

Technologies used: C++, DirectX, some physics engine.