tomuxmon / tomuxmon

profile

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

profile

Hi there 👋

My journey

I was born in Lithuania. I have 1 older sister and 2 older brothers. My parents are hard-working event this day, they never stop. I grew up with little supervision and thus I managed to retain my natural curiosity. At school, I was not a social type of person. I had a hard stance on my views and I was really hard to argue with. I had only one friend, an arm wrestler, a really good one. I loved Math and Physics classes a lot. Geometry was my thing, it felt like playing games. As an extracurricular activity, I joined computer classes early on. Geometry had to slide aside. After graduating from school I immediately started studying Computer Science. What a mistake. I was ready to study but not ready to take care of myself. The Food I ate was terrible and I have exhausted my body in a half a year. I could not take it anymore and drop out. Started again the next year and dropped out again. Young and stupid me. Then I joined the Lithuanian Armed forces. I swore I would never do it when I was younger, but here I am. The year was life-changing both physically and mentally. After a year I knew what I need to change in my life so I do not need to go to the army anymore 😃. I have finished my Bachelor's and Master's degree studies in Klaipėda. Being social was a thing for me now and I have joined Klaipėda University Student Union.

Professional life starts

While studying for a Master's degree I found myself a job at UAB Omega Technology. A great place to start. Norwegians being the founders even more so true. The main product in Omega365 is PIMS among others. But I was more fit to work on technology, not the products. Most of the time there I have spent on Appframe: a suite of tools and a framework to create products. I have gained tremendous amounts of knowledge and experience there (~9% of my life there 🤯). SQL Server is at the forefront in Omega365. Also, .Net is all over the place: on Servers, Windows UI, and Tools. Most of the time I spent in a technology department and tooling was my passion. I hope I have managed to contribute to the success of the technology and products they create.

  • I had an opportunity to learn SQL from the best. At some point they wanted me to rewrite the SQL template engine from .Net to SQL and I did. It was challenging and fun. A sneak peek at SQL Templates at the Omega 365 documentation site.
  • Implemented automatic tracking of the dependencies: database objects, .Net libraries, Windows Apps, Web Apps... It is like dependabot but for .Net and SQL Server only. To make it automatic I needed to dive into CIL disassembly and analysis. ILSpy was used extensively to learn how compiled DLLs look inside.
  • Have Created the initial version of the code analyzer a backend to write lints for your components. My passion led me to write initial lints for SQL. Used TSQL parser under the hood. Also authored some lints for .Net libraries using Cecil.
  • Had a blast implementing the updater for them (the initial version took 2 weeks to implement). Had a chance to use technologies created by myself as the SQL Templates mentioned earlier.
  • Contributed a lot to MSI and ClickOnce build tooling. Started using WIX toolset at the time. I must say ClickOnce is my least favorite tech out there. If you can, avoid it. WIX toolset on the other hand is great. As my hobby project, I have created a solution to author MSI packages for Godot executable

The pandemic Crysis

We all live our happy lives. And then we do not. For me, it felt like waking up from a dream. Not a bad one, but I knew I needed something else besides SQL server and .Net in my professional life. I left my happy life in Omega and started working for Vaultspeed. Automation is the thing they do. Specifically, they take on the task of porting your data models to DataVault. They have a solution to generate code so you do not have to write it by hand. The Tech stack at Vaultspeed is PostgreSQL with some Groovy code to do the code generation. Had a decent exposure to Postgres and fell in love with it. But the only thing I contributed is Spark Structured streaming proof of concept. It was a blast and an interesting opportunity. During the time I had a chance to remember Scala and adapted spark structured streaming JDBC sink to what Vaultspeed needs. They have a very rigid and I would say Academic structure of prototyping. I had to document my proof of concept end to end. Good thing I love documenting stuff 😃. Too bad it is not open source...

Kids booming

Work at Vaultspeed was 99% remote. I was working from home most of the time. Being at home means you get to see all your family around. Great for family bonding not so great for the business 😃. And so me and my wife, we wait for our third child... I have decided to leave Vaultspeed and take 1 year of child care. Planned so many things. A lot of spare time right?! When my daughter was 6 months I finally started getting some "spare" time. Being with my kids is great, but after my child care ends I still have to feed them. I took on my Rust journey seriously... And started creating games 😃.

Learning Rust

I tied a lot of things. Started with the Rust Book. Then jumped into rustlings exercises. Went on to the Exercism Rust track. Tried reading Rust in Action. Found Hands-on Rust and it clicked. Followed it through and the result is here. Then followed Bevy Minesweeper tutorial series, the result is here. Then I started my project - bevy roguelike. I got to write my own Rust code for the first time. Bevy engine felt right for me. You define some data structures in Rust and then write some functions to manipulate those data structures and the ones defined by Bevy. And that is it, simple and elegant. You can create any game with that. Now I am ready for the next level and starting to read Rust for Rustaceans. I know it is going to be fun!

Language usage Stats from GitHub

github stats

About

profile