Become a part of the ROI Hunter Engineering Team!

Our Engineering Department is hiring! Please check out the list below for the roles we are actively hiring for, or shoot us an email at denisa.mehesova@roihunter.com to discover other opportunities. We’re always excited to chat with enthusiastic candidates!

Open engineering roles

Don’t see your role here? No worries. We’d still love to hear from you if you’re a Java Developer, Kotlin Developer, Python Developer, QA Engineer, Data Engineer, or DevOps.

david_new_-06

So, what is engineering like at ROI Hunter?

Meet David, Head of Engineering. We asked him to give you some insight into what it’s like to work as a developer at ROI Hunter.

Hi, I'm David, and I wrote the content here. 👋 I don't enjoy formalities, so if you're curious about anything we do at ROI Hunter, don’t be shy! You can reach out to me with any questions you have as if we’re already friends or colleagues. 😉

2022-02-16

Karel Schindler

Founder & CEO

Our story & vision

The modern world is driven by data, yet not everyone is able to leverage that new knowledge.

We've seen a company where the marketing team was hitting their targets and celebrating, while the warehouse was full of unsold goods. Unsurprisingly, the company bankrupted.

This happened because that company operated in silos. Each team had their own piece of data, but they never put together the full picture. They trusted the algorithms of Facebook and Google to promote the best products, but had very little visibility or control over what was really happening.

We created ROI Hunter to fix that.

We’ve built a platform where:

  • We plug in all the data sources and build smart product segments with actionable insights.
  • Marketers use the insights to tweak the campaigns, the visuals, or the products they offer.
  • Each such change produces new data and automatically refines the segments and insights.

How it all started

At the beginning, ROI Hunter was a nameless internal tool for managing Facebook Ads. It was quite challenging to run ads at scale back in the day, so we built a few scripts for that. Then those scripts became pages, we added a database, and the whole thing started to look much more like a product.

That's when Facebook noticed us and invited our CEO to their London office. We were using their API heavily (some would even say aggressively), which is why our CEO, Karel, expected a scolding. Instead, we were offered to become an official Facebook Marketing Partner! That allowed us to have direct contact with Facebookers, be involved in feature development, and gain early access to all their new things. 🤩

So we put together a dedicated development team, built a proper brand for the product, and started successfully selling it.

As we gathered more experience from the partnership, as well as from our clients, it became clear that there's opportunity to build much more – Something that's not just another tool for ads management, but something that covers all e-commerce marketing activities, leverages the data, and bridges the gap between teams. 🚀

Who we’re looking for

Hiring_Microsite-02 2

🕊️ You are not ideological about technology
You understand that technology is just a tool we use for achieving our goals. There are always trade-offs, and nothing is perfect.
It is great to be opinionated, but there's no room for being dogmatic. You should be open to exploring new tech, but if there are some files in the repo that don't follow the latest best practises, it shouldn't keep you up at night.

🤗 You care
You care about others, the company, the goals, the codebase, the product - about everything. You are curious, involved, and you’re not afraid to speak your mind or roll up your sleeves when needed.

🤝 You are a team player
Building a product is a team sport. You enjoy collaborating cross-functionally to achieve shared goals, and you care about learning, growing, and helping others to do the same. You communicate well, especially in an environment where some people work remotely, and you’re happy to give and receive constructive feedback.

💪 You want to build a great product
You always put users first, understand them (often better than they understand themselves), and are innovative. You also accept trade-offs, see the business implications, and are in for the long haul, not just a one-off contract.

🚀 You want to make an impact
Our mission is to affect the global e-commerce economy. To get there, everyone needs to do their best. You should always be asking yourself "Is this the most important thing I can work on?" and speak up if the answer is "no.”

🕵 You are a thoughtful problem solver
For any problem, you always start by understanding the context, the root causes, and the implications. You consider different approaches before writing any code. You can also decompose tricky problems into clean steps, and you're comfortable asking for help when you get stuck.

📈 You want to work at a scale up
In scale ups, things change as the company grows and matures. We experiment, reorganise, build things and processes, only to scratch everything that doesn't prove to be helpful.
On the other hand, the scale up environment enables individuals to participate in actually building the company and the product. You can try a lot of things, get involved, find your passion, get really close to the business, and have an incredible and visible impact.

🎓 You own your growth
We don't believe in pushing anyone into anything. The company and your colleagues are there to support you in any way needed, but it's ultimately you who decides whether you grow your skill set and how. You can focus fully on tech, but you can also touch leadership, product management, design, and more.

read more on how we build our product

How we build our product

A great thing about ROI Hunter is that we build our own product. We started from scratch and everyone in the company is continuously shaping the platform we build and the experience our clients have.

We value drive and genuine care for our clients.

That’s why instead of receiving a pixel-perfect design, the developers are paired with designers to iterate and build together. And instead of exact feature specifications, they are presented with the business context and the boundaries given by product managers, always with enough space for interpretation and creative thinking.

💡 A large portion of how we operate is inspired by the Shape Up framework used at Basecamp.

icons-76 1

BUILDING

The core of building things is writing code - no surprise there. 😀

Our tech stack is fairly common. We use Git workflow with feature branches, but instead of waiting for the whole feature to be complete, we merge and deploy incremental changes when possible.

In order to do that safely, each pull request needs to be reviewed from another developer, and it needs to pass various checks, such as tests, codestyle, or linting. Every pull request is also deployed on a testing subdomain where anyone can see the changes, which is especially useful for quick feedback from designers or product managers.

On top of that, each team has slightly different habits and rituals. Some do daily standups while some prefer weekly wrap-ups, and some do incremental demos, whereas some do a bigger showcase when the whole thing is finished.

We promote the best practises, but at the same time we don't force anything. As long as the team works efficiently, they're free to use whatever works best for them.

icons-75

The rhythm

The Product and Engineering Departments work in cycles of 6+2 weeks in sort of a dual-track system. During the six weeks, the Engineering Teams focus on building and delivering, while the Product Team researches topics for the next cycle.

The remaining two weeks are a cooldown. There are no plans for this period, and the developers are free to work on whatever they feel is important. During that time we take a look at what was delivered, discuss the inputs from the product team, agree on the next steps and commit to another six weeks of building.

icons-77

Planning

The job of our product managers is to find ways to make ROI Hunter a better product. They talk to our clients, experiment, dig in the data and eventually come up with their ideas of what we should build.

Those ideas are written down in a brief document that describes the business context, the problem, the key elements of the solution, and a few other things.

This is where developers come into play. We usually have some idea about who could work on what based on their field of expertise, so we ask those devs to give their feedback on the proposal. They are usually the smartest people in the room, and their questions and notes are super valuable.

Only when we feel that we've sorted everything out, and there are no surprises or blank spots, do we proceed to actually committing. The CEO and other stakeholders greenlight the plans for the upcoming six weeks, and we get to work.

Tech stack and tools

Frontend

image 2
Rectangle 27
image 3
image 5
image 6

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.

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 lives 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

image 7
Rectangle 43
image 8
image 9
image 10
image 11
image 12
image 13

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

image 14
image 15
image 16
image 17
image 18
image 19
image 20
image 21

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 are 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. These 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, depending on whichever fits the best.

Tools

image 22
image 23
image 24
image 25-1
image 26
image 27
image 28

We like smart IDEs such as VSCode or those from the 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.

For task tracking, we use Jira + Service Desk. It can be cumbersome sometimes, but it does the job, and we already have quite a few integrations set up (e.g. marking tasks as deployed or calculating bug score).

On the company level, we use the Google Workplace products (Gmail, Calendar, Drive, Meet, etc.), and our most common way of communication is via Slack.

Check out our Engineering Teams

We split our engineers up into different teams. Read about each team below:

martin_veselovsky_new

Martin Veselovský

Dev Lead

The Feed Team

The word represents a product feed - it's how our clients tell us which product they offer and what their attributes are. The team is responsible for processing that data, applying some magic to it (such as enhancing the images with dynamic templates), and pushing the changes to the marketing channels.

Some of our clients offer tens of millions of products in their stores, and the Feed Team ensures we always have the correct data on time.

Petr_Suchy_new

Petr Suchy

Dev Lead

The Insights Team

The team focuses on integrating all relevant data sources, processing the data, and presenting the insights. Translated to the client perspective - they allow our clients to click a button to connect the data and then see which products or ads are performing well or poorly.

This team's speciality is building the data warehouse in BigQuery and using its data in reporting.

ondrej_parizek_new

Ondřej Pařízek

Dev Lead

The Google Team

While Google is still establishing itself as a first class citizen within the platform, the people on the Google Team have plenty of experience with Google APIs. They built a spin-off called ROI Hunter Easy and most recently transformed into a team dedicated to expanding ROI Hunter features to Google solutions.

ondrej_pumprla_new

Ondrej Pumprla

Dev Lead

The Core + Facebook Team

Big Facebook features are how ROI Hunter historically started, which is why the scope is closely tied to the core of the platform. These days, the Core part is becoming more important, because it provides a stable foundation for all other features.

Still, there is nobody in the company that has deeper knowledge of Facebook APIs than these guys.

Product and Engineering Teams

These two departments work closely together and collaborate on a daily basis. Their common goal is to implement the company vision and strategy in the most efficient and sustainable way.

While the Engineering Department consists of the four teams + DevOps, the Product Department is responsible for product research and management, product design, and customer support.

ICYMI above – Our Engineering Department is hiring! Please check out the list below for the roles we are actively hiring for, or shoot us an email at denisa.mehesova@roihunter.com to discover other opportunities. We’re stoked to hear from enthusiastic candidates!

Open engineering roles

Don’t see your role here? No worries. We’d still love to hear from you if you’re a Java Developer, Kotlin Developer, Python Developer, QA Engineer, Data Engineer, or DevOps.

Need more convincing to join us? See what our clients say about our product through our G2 Badges!

CatalogManagement_HighPerformer-1
CatalogManagement_QualityOfSupport-1
Cross-ChannelAdvertising_EaseOfAdmin-1
Cross-ChannelAdvertising_Enterprise_EaseOfDoingBusinessWith-1
Cross-ChannelAdvertising_Enterprise_HighPerformer-1
Cross-ChannelAdvertising_Enterprise_Total-1
Cross-ChannelAdvertising_Leader-1
Cross-ChannelAdvertising_Mid-Market_HighPerformer
Cross-ChannelAdvertising_Nps-1
Cross-ChannelAdvertising_Small-Business_EaseOfAdmin
Cross-ChannelAdvertising_Total
MarketingAnalytics_Europe_HighPerformer