Here's a highlight of the tech and tools we use. If you're interested in a longer list, head over to our Stackshare profile.

Frontend

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Our frontend tech stack is fairly common. Its key part is the combination of Typescript + React + Redux. More specifically, we happily use Redux Toolkit and follow its best practices. To be fully transparent, there's still around 20% of the code that hasn't been converted to Typescript. Here's why we're not rushing to fully type everything.

We test our frontend using Cypress (107 tests) and unit tests (1578 tests). Besides green tests, each pull request is also automatically checked by ESLint and prettier.

Most of the code live in our main repo, but there is also UIKit (our own design system of basic elements such as inputs and dropdowns), image editor and video editor. Those are published as separate packages. We are considering using NPM workspaces, but haven't made the decision yet.

Backend

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

The backend of ROI Hunter is not a single app, but rather a collection of services of various sizes, languages and technologies. That's because we want to use the right tool for the job.

At the same time, we're aware of the risk of using too many different approaches. The stack we use the most is Kotlin/Java in combination with Spring Boot and Postgres database. But there's also Kotlin + Mongo, Python + Elasticsearch, Nodejs + Redis and others.

It's not expected of everyone to know every tech we use in detail. The knowledge typically varies across teams. But it offers a great opportunity of upskilling as a backend developer.

Infrastructure

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Most of our code is packaged in Docker and runs in Kubernetes provided by Google Cloud platform. We are heavily invested in the cloud and our backend developers have full control over the workloads. There is a dedicated devops to help, but in general, you're expected to be able to run and troubleshoot the code you write.

To support that, we use tools like Graylog, Sentry and Grafana. Those provide observability and help us debug issues.

All our code is versioned and lives in Github. For PR checks and deployments, we use Github Actions, Google Cloud Build or Jenkins, whichever fits the best.

Tools

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

We like smart IDEs such as VSCode or those from IntelliJ family because they help us write better code. But everyone is still free to use whatever works best for them, as long as the quality doesn't suffer.