Senior Full Stack Engineer
Swappie Oy
Mar 2023 to Jan 2025 - 1 yr 9 mos
- At Swappie I was a mentor, a hacker, and an architect. I have lead and built beautiful site features using HTML, CSS, Typescript, React over the Express.js backend. Built services with Node.js, Django, PostgreSQL, Redis. Deployed, monitored and maintained all of the above with Github CI/CD, Kubernetes, Datadog and Google Cloud.
- Led the team during migration of ~3m customers and their data (10m+ records in total) from one marketing platform to another. Designed and developed a python and then (when we inevitably hit the python limits) Node.js program (were able to consistently hit API limits of the marketing platform, pushing Node.js limits). As a result our marketing team became more efficient with the existing data on a new platform increasing the YoY growth of sales.
- Hosted biweekly mentorship sessions where I brough relevant tech news, libraries, features, ideas. We would learn and research it with the team discovering new ways of improving our stack or solving current problems.
- Brought down the amount of time from PR (pull request) to production, our entire CI/CD pipeline, from ~50 minutes to ~15 saving lots of time for developers as well as a substantial amount of money for the business. Two weeks spent on it allowed all 6 teams to move much faster in delivering features and helped immensely in rare moments when the site is down and the fix is needed to be deployed "yesterday".
- Made swappie.com load 2x faster reducing LCP (time to render the largest portion of the screen, - CWV metric) by moving all of our svg usage to build time. Wrote a webpack plugin for it, changed how site is being built and deployed. These changes improved swappie.com SEO positions and helped to save costs on infrastructure during peak load, not to mention the improved user experience.
- Developed custom infallible Redis client to ensure the website stays online even when our Redis servers are down. This ensured very high availability of the site no matter the external conditions.
Senior Full Stack Engineer
Cavai
Oct 2020 to Jun 2022 - 1 yr 8 mos
- At Cavai I played a key role in researching and developing solutions for changing video advertisements real-time. Think changing a bag's color to anything viewer desires. It was meant to give Cavai customers a wide variety of options when connecting their chat bots with the visuals as a part of consumer facing creatives.
- Designed and developed a solution for changing any video realtime as it's playing in the browser using WebGL, shaders, GLSL (shader language) and Typescript to facilitate everything. It used RGB channels of the original video as an input + black and white object outlining video stream as input. Later added Three.js to abstract the low level parts.
- Designed and developed an inter-iframe communication framework based on a ads-friendly spec to help the business run those ads on videos as a third party integration. Used Typescript extensively to write the core, later provided native integration with our main-to-go framework for rendering UI, which was Vue.js at the time.
- Rewrote an existing solution for building, bundling and storing creative apps which run on the customer's side to make the process a lot more efficient in terms of time it takes to bundle everything as well as its bundle size. Used Typescript and Node.js with tight AWS S3 integration as the storage backend. Also wrote more than 3000 tests to cover the entire process using Typescript and ava.js testing framework.
Full Stack Engineer
Katana
Feb 2019 to Mar 2020 - 1 yr 1 mos
- At Katana I found myself in the midst of a fairly complex project involving real-time dashboard with websockets, ag-grid, React.js and Javascript on the server side with Loopback.js framework at its core.
- Convinced CTO and the rest of the team of importance to write all new code in Typescript and convert old code to Typescript as we go. It is obvious to us now, but back in 2019 it was still highly debatable, however I saw a huge potential in having Typescript as a baseline and brought this idea as a company-wide standard.
- I am passionate, I am proactive: in the first two weeks of me working at Katana, I have recognized that the team would really benefit from a certain eslint plugin that would enforce a concrete set of rules around working with React.js, Redux.js and their selectors. Implemented that plugin, integrated it into the team, again, convincing everybody how important it is to stop wasting time arguing about how things should be done and simply enforce the one way we choose together on the tools level.
- Had a 26 hour marathon building an autocomplete component in React.js and Typescript from scratch specifically designed for Katana needs. It had just the right fuzzy find based autocomplete, keyboard actions, scrolling, searching, all that Katana missed in its reach UI when using standard autocomplete components. As a result our customers got much more productive when interacting with the grids in their dashboard (of which there are many) solving many complaints they had.
- Took an initiative and the leading role in adding support for Typescript into our build tooling at the time. Rewrote lots of moving parts off of the create-react-app based template we had. As a result we had full Typescript support for React.js frontend and Node.js based backend while preserving bundle correctness for the end user.
Frontend Engineer
I-Sepp OU
Dec 2017 to Aug 2018 - 8 mos
- At I-Sepp, an Estonia based company, I have worked on several projects. I was adding features, fixing bugs, maintaing old code. Participated in planning together with the stakeholders and the clients. Javascript and jQuery as well as HTML and CSS were my go to tools.
- Used Vue.js, Javascript, HTML, CSS to build booking app for the Rahvusooper Estonia (National Theatre of Opera and Ballet of Estonia), where actors could use an interactive calendar view to book spaces for practising as well as gear needed.
- Used Vue.js, Javascript, HTML, CSS to build a prototype app for the debt enforcement and collection agency.
Backend Engineer
Cloudator
Aug 2017 to Nov 2017 - 3 mos
- In the 4 months that I have spent at Cloudator I was able to lead a small team of 3 to build a plugin system for the large Payroll solution Cloudator was building. It allowed customers to have custom code integrate with their payroll instance to do various things differently or to react to certain events. Our job was to decide how to bundle, store and deploy as well as how to invoke these plugins at runtime. We used a lot of Node.js V8 sandbox machinery and an extensive building tooling to achieve that. After an initial version of it was done, I received a better offer from elsewhere and decided to move on.
Full Stack Engineer
Legendary Social Advertise
Dec 2015 to Aug 2017 - 1 yr 8 mos
- I was one of the founders who also was the only tech one, so I did everything from scratch, alone. This project was a very important one in my career, because by implementing it from 0% to 100% I learned my way around coding on a serious level.
- Used HTML, CSS, Express.js to create multipage server rendered dashboard for us founders where we would manage our social media groups. This included scheduling our posts in bulk, creating those posts in different languages, while integrating seamlessly with facebook via their API.
- Designed, planned and implemented the building/bundling process and deployment using lots of messy bash code. It was horrible code, but at the end it worked allowing me as the chief of engineering basically to monitor all our instances (just like Kubernetes is allowing to do it nowadays), restart them, deploy new versions of our services.
Frontend Engineer
Alvadi.ee
Aug 2015 to Apr 2016 - 8 mos
- My job at Alvadi.ee was focused on creating pixel perfect HTML, CSS and some Javascript versions of what designer would give me. I also created custom bundling solution allowing us to view implemented designs and experimental prototypes without the need to run the full backend for it.