Viktor Kuroljov

Senior Full Stack Software Engineer

EU Citizen. Based in Tallinn, Estonia

Senior Full Stack Engineer

Swappie Oy

to - 1 yr 9 mos

  • At Swappie I was a mentor, a hacker, and an architect. I led and built beautiful site features using HTML, CSS, TypeScript, and React on top of an Express.js backend. I built services with Node.js, Django, PostgreSQL, and Redis, then deployed, monitored, and maintained all of the above with GitHub CI/CD, Kubernetes, Datadog, and Google Cloud.
  • Led the team during the migration of ~3M customers and their data (10M+ records in total) from one marketing platform to another. Designed and developed a Python program and then, when we inevitably hit its limits, a Node.js version that consistently saturated the marketing platform's API while pushing Node.js to capacity. As a result, our marketing team became more efficient with the existing data on a new platform, increasing YoY sales growth.
  • Hosted biweekly mentorship sessions where I brought relevant tech news, libraries, features, and ideas. We would learn about and research them as a team, discovering new ways to improve our stack or solve current problems.
  • Brought the time from PR (pull request) to production—our entire CI/CD pipeline—down 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 six teams to move much faster in delivering features and helped immensely in rare moments when the site was down and a fix needed to be deployed "yesterday".
  • Made swappie.com load 2x faster, reducing LCP (the Core Web Vitals metric for rendering the largest portion of the screen) by moving all of our SVG usage to build time. I wrote a webpack plugin for it and changed how the site was built and deployed. These changes improved swappie.com SEO positions and helped save infrastructure costs during peak load, not to mention the improved user experience.
  • Developed a 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

to - 1 yr 9 mos

  • At Cavai I played a key role in researching and developing solutions for changing video advertisements in real time. Think changing a bag's color to anything the viewer desires. It was meant to give Cavai customers a wide variety of options when connecting their chatbots with visuals as part of consumer-facing creatives.
  • Designed and developed a solution for changing any video in real time as it played in the browser, using WebGL, shaders, GLSL (shader language), and TypeScript to facilitate everything. It used the RGB channels of the original video as input, plus a black-and-white object-outline video stream. Later added Three.js to abstract the low-level parts.
  • Designed and developed an inter-iframe communication framework based on an ad-friendly spec to help the business run those ads on videos as a third-party integration. Used TypeScript extensively to write the core, then provided native integration with our go-to framework for rendering UI, which was Vue.js at the time.
  • Rewrote an existing solution for building, bundling, and storing creative apps that run on the customer side, making the process far more efficient in both bundling time and bundle size. Used TypeScript and Node.js with tight AWS S3 integration as the storage backend. Also wrote more than 3,000 tests to cover the entire process using TypeScript and the AVA testing framework.

Full Stack Engineer

Katana

to - 1 yr 2 mos

  • At Katana I found myself in the midst of a fairly complex project involving a real-time dashboard with WebSockets, AG Grid, React, and JavaScript on the server side, with the LoopBack framework at its core.
  • Convinced the CTO and the rest of the team of the importance of writing all new code in TypeScript and converting old code to TypeScript as we went. It is obvious to us now, but back in 2019 it was still highly debatable. However, I saw huge potential in having TypeScript as a baseline and brought this idea in as a company-wide standard.
  • I am passionate, I am proactive: in my first two weeks working at Katana, I recognized that the team would really benefit from a certain ESLint plugin that would enforce a concrete set of rules around working with React, Redux, and their selectors. I implemented that plugin and 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 at the tooling level.
  • Had a 26-hour marathon building an autocomplete component in React and TypeScript from scratch, specifically designed for Katana's needs. It had just the right fuzzy-search autocomplete, keyboard actions, scrolling, and searching—all that Katana missed in its rich UI when using standard autocomplete components. As a result, our customers became much more productive when interacting with the grids in their dashboard (of which there are many), resolving many complaints they had.
  • Took the initiative and the leading role in adding TypeScript support to our build tooling at the time. Rewrote lots of moving parts from the Create React App-based template we had. As a result, we had full TypeScript support for the React frontend and Node.js-based backend while preserving bundle correctness for the end user.

Frontend Engineer

I-Sepp OÜ

to - 9 mos

  • At I-Sepp, an Estonia-based company, I worked on several projects. I added features, fixed bugs, and maintained old code. I participated in planning together with the stakeholders and clients. JavaScript and jQuery, as well as HTML and CSS, were my go-to tools.
  • Used Vue.js, JavaScript, HTML, and CSS to build a 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 practicing as well as the gear they needed.
  • Used Vue.js, JavaScript, HTML, and CSS to build a prototype app for a debt enforcement and collection agency.

Backend Engineer

Cloudator

to - 4 mos

  • In the four months I spent at Cloudator, I was able to lead a small team of three to build a plugin system for the large payroll solution Cloudator was building. It allowed customers to integrate custom code with their payroll instance to do various things differently or react to certain events. Our job was to decide how to bundle, store, deploy, and invoke these plugins at runtime. We used a lot of Node.js V8 sandbox machinery and extensive build tooling to achieve that. After an initial version was done, I received a better offer from elsewhere and decided to move on.

Full Stack Engineer

Legendary Social Advertise

to - 1 yr 9 mos

  • I was one of the founders and the only technical one, so I did everything from scratch on my own. 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, and Express.js to create a multipage server-rendered dashboard for the founders, where we would manage our social media groups. This included scheduling our posts in bulk and creating them in different languages while integrating seamlessly with Facebook via its API.
  • Designed, planned, and implemented the build/bundling process and deployment using lots of messy Bash code. It was horrible code, but in the end it worked, allowing me as the chief of engineering to monitor all our instances (just like Kubernetes does nowadays), restart them, and deploy new versions of our services.

Frontend Engineer

Alvadi.ee

to - 9 mos

  • My job at Alvadi.ee focused on creating pixel-perfect HTML, CSS, and some JavaScript versions of what the designer would give me. I also created a custom bundling solution that allowed us to view implemented designs and experimental prototypes without needing to run the full backend.