Beginnings (Node.js)
At the beginning of our backend team, when STRV was a very small company, Node.js was a great technology to start with. All of our customers were small startups that needed a flexible team because their businesses were going through iterative changes. They also wanted everything to be developed fast. Most of our projects (if not all) were simple applications where backend was just API serving data. And for this use case, Node.js with Javascript was a great choice. But back then, it was a very new technology. We went in with curiosity, not quite knowing what to expect.
It turned out to be a great choice. In fact, it was a big driver of our success in the field of quickly growing startups in the U.S. Since then, Node.js has remained our backend’s bread and butter.
Tech Stack Expansion (TypeScript, Ruby)
A few years later, STRV started to attract bigger clients. These companies were still startups, but with greater plans, budgets and requirements. By the time they partnered up with us, many of them already had something built in Ruby. So, we hired a few Ruby developers to accommodate their needs.
Although we still work on some Ruby projects, we’ve never added it to our “official” tech stack. It simply isn’t something our backend developers want, and it doesn’t bring any added value to the table. Don’t get us wrong; Ruby is a great language. But for our use cases of developing API for apps and webs, Node.js covers all bases and we’re already highly proficient in that area. So, no need to mess with a good thing.
Still, as our clientele evolved, it was only natural that our developers also start using Typescript to cover more complex projects and to add some fresh wind to our daily routine — while still sticking with what we do best (Node.js). Today, we still use both Javascript & Typescript on our Node.js projects.
Current State (Node.js, C#, Golang, Python)
In the past two years, we’ve observed two crucial facts:
First, we don’t have a niche. Our clients are a mixture of startups, mid-sized companies and big players like Microsoft — which means that our use cases have been and will continue to be more varied than just basic backend API. And second, of the about 30 developers on our team, every person is unceasingly eager to learn new technologies. Combining these two realities, we decided to take the logical step and expand our tech stack.
Our starting point was, “What do our developers want?” because we believe that people excel at what they love to do. Once we had this information, we compared it with what our clients want. And that’s how we arrived at what we have right now:
Node.js - Covering most cases — which are APIs delivering data to web and mobile apps. It’s easy to use, fast to develop and flexible.
C# - To cover the needs of our biggest clients and fintech solutions, which it does well thanks to its robustness and strongly-typed nature.
Golang - To cover the increased popularity of this language in the US. Also great for microservices, performance-oriented backends, and IoT. It’s easy to learn and we love it.
Python - Two words: Machine Learning.
One more thing to mention here. There has been a demand for two other languages: PHP and Java. However, we’ve decided that, for now, we will not be working with these technologies. Our team prefers working with other technologies, and we always prioritize what our engineers want. We listen to our people; that’s the main factor behind our decisions, and it’s what’s proven to bring the best results.
The Future?
We always make sure to keep up with the latest technologies and trends. Currently, we are experimenting with Elixir and Rust, but so far we are not using them in production.
The race for the next big thing in technology won’t be stopping anytime soon. Who knows what STRV’s backend tech stack will look like in the future. If you want to help us define it… join our backend team.