Business acumen is one part of the formula. But building a SaaS app is not a job for a lone wolf. Every founder needs a great team to get to the top of the food chain. But who do you have to have on such a team?
A SaaS developer is a mysterious beast. Many claim to have seen them, but only few understand what exactly makes them different. So, here’s your quick guide to SaaS programmers from a CTO of a SaaS development company (and a huge fan of nature documentaries!).
Table of Contents:
- The ecosystem: what are SaaS apps?
- The species: who is a good SaaS developer?
- The diet: how much does it cost to hire a SaaS developer?
- Habitat: where to hire SaaS developers?
Imagine a boundless green pasture, full of marvelous unicorns. Stripe, Canva, Revolut are all SaaS businesses. But when you ask people to describe what SaaS is exactly, you’ll often get a blank stare. It’s not simply a business model in which users pay a subscription in exchange for a digital service. Flexibility, cost efficiency, reliability, and regular automatic updates are all hallmarks of SaaS solutions. Consequently, most SaaS applications share the following technical features:
Modern SaaS applications have an architecture where one app deployment serves many users. Each of these tenants can have limited rights to customize the software.
Different tenants might have radically different requirements. That’s why easy customization is so important, especially for B2B and B2B2C applications.
Take, for example, Choo i Skyen – a custom SaaS CRM and Membership Management System that serves dozens of communities and business associations in the Nordics region. Each of these organizations has a different structure and membership needs so the application has extensive customization options:
- Web portal with a customizable design for each tenant.
- Easy way to set up hierarchical structures for members. You can group users by location, interests, departments, and so on. The app supports nested user roles and rights.
- Premium features like extensive payment reports that are hidden for most tenants.
- The ability to hide extra features if a tenant doesn’t need them, and so on.
Supporting 10K+ enrollments a year with a SaaS Member Management System [read the case study]
Single Sign-On (SSO)
A typical enterprise uses more than 140 different SaaS solutions. Implementing a Single Sign-On allows employees to log in once and use all their authorized systems.
If you want multiple tenants to use your SaaS system, it should be accessible 24/7. Many SaaS companies aim to have an availability of 99.9%.
SaaS users can access your app throughout the day. That’s why providing them with services should happen without human interaction using pre-configured procedures. It’s just as important to have automated de-provisioning – revoking the tenant’s access when they decide to stop using your SaaS application.
SaaS traffic can vary significantly and have unpredictable spikes. To save costs, your infrastructure should automatically increase or decrease the computational resources available for usage.
Rate limiting and Quality of Service
Many companies have users that are more important than others. We once worked with a large recruiting agency where one such person was responsible for almost ⅓ of the company’s revenue. Rate limiting ensures such users don’t suffer from traffic spikes, while the rest enjoy a relatively smooth performance.
SaaS software should log business transactions for analysis and audit purposes. It’s important to ensure compliance with company policies and relevant regulations like GDPR and HIPAA when making audit logs.
When it comes to hard skills, most developers at SaaS companies are no different from your average software engineer. You just have to ensure they know the important stuff (which I’ll discuss below). Yet if you want to succeed as a SaaS company, you need to find people with what I call a product mindset.
So let’s take a look at the key technical skills for a SaaS programmer.
Understanding of modern architectural patterns
A SaaS developer should have a strong understanding of architecture patterns like microservices and monolithic architecture. They should be aware of the pros and cons, implementation features, and limitations.
Monolithic architecture is a more traditional way to build applications. This approach takes all the different components of an application and packs them into a single, inseparable codebase. Monoliths are simple to develop and test, but have lots of other drawbacks (see the table below).
Microservice architecture divides an application into semi-independent modules based on their function. So you can have a shopping cart microservice, a checkout microservice, and so on. All of these services can have a separate database and a tech stack that’s optimal for the task at hand.
Microservices create complex interactions between modules using Application Programming Interfaces (APIs) or event-driven programming. This complicates testing and debugging. At the same time, you can develop SaaS services independently, which simplifies onboarding and improves the development speed.
Strong understating of frontend development frameworks
There’s no one-size-fits-all solution when it comes to choosing the technology for developing SaaS solutions. Every project is different. Every company has different functional and non-functional requirements that will determine the optimal tech stack for a project. By the way, if you have trouble selecting an optimal tech stack for your project, I highly recommend using SaaS development consulting from MindK.
For starters, a SaaS developer should know some of the frameworks and libraries used in SaaS apps. Usually, the choice comes down to Vue vs React or Angular. While the first two technologies are great for B2C SaaS, Angular is almost a must-have for large enterprise projects like CemaSYS. It’s a powerful and modern framework that has an error-proof structure for SaaS projects right out of the box.
To contribute to your project, a SaaS engineer should also have practical experience in creating highly accessible and available applications.
CemaSYS, a SaaS environmental reporting software used by Forbes Global 2000 companies [explore the case study]
Backend & API development experience
When it comes to backend development, the choice is much wider. Many SaaS applications use Java, Python, and even PHP (sigh) as the main server-side language. At MindK, we prefer Node.js. It is great for developer productivity, project costs, and application speed.
Node.js also has a ton of frameworks that are used in SaaS product development. A minimalistic Express.js has somewhat lost its popularity to the likes of NestJS. Such frameworks have lots of powerful architectural solutions right out of the box. It borrows three base components from Angular – Providers, Controllers, and Modules. NestJS uses the latter to solve issues with complex architectural hierarchies. As NestJS has a lot in common with Angular, SaaS engineers can easily switch between the backend and frontend.
APIs play a huge role in SaaS development. They allow microservices to talk to each other and integrate your app with third-party systems. The latter can be one of the main competitive advantages for SaaS software, according to Gartner Research VP Massimo Pezzini.
This is one of the reasons why we like to use the API-first approach in which you build the entire application around its APIs. To achieve this, a SaaS developer should know:
- API protocols like Representational State Transfer (REST), Simple Object Access Protocol (SOAP), Google Remote Procedural Call (gRPC), or Graph query language (GraphQL).
- API-first design (designing an API based on the needs of target developers).
- API frameworks (for example, NestJS, AdonisJS, Express.js).
- JSON/XML data formats.
- HTTP/HTTPS, the main transport protocol used by APIs.
- API security measures like OAuth2 and OpenID and API traffic control methods.
- Deep understanding of application scalability and flexibility.
If you want to learn more on the topic, check out our in-depth article on API development.
Database management skills
There is no database that could fit all the use cases in the SaaS market. In many cases, software architects will pair each microservice with a different database (DB) optimized for the task at hand. That’s why, a SaaS programmer should know modern relational databases (MySQL/PostgreSQL), and non-relational DBs (MongoDB/ArangoDB).
Strong understanding of web app security and attention to quality
Unlike your usual web applications, SaaS software products require frequent updates (to test ideas and satisfy customers). This reduces the testing cycles, increases the need for automation, and raises the bar for developers.
SaaS applications also feature greater customization for tenants, which increases the number of testing scenarios. Quality of service becomes a huge challenge with many tenants having entirely different expectations about the app. That’s why, a good SaaS engineer will pay attention to the application quality with practices like test-driven development (TDD), and the like.
They also need to have a strong understanding of web app security. For this purpose, SaaS software developers must have experience with different security audit services and tools like SonarQube, Wapiti, and Arachni.
Knowledge of cloud computing
SaaS lives in the cloud. There are a lot of modern platforms to choose from like Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GPC). Each of them has a myriad of features you need to take into account when building a SaaS app. A small difference in settings here, a small change there and your hosting costs can go down from $5K a month to just $2K (a real scenario that happened in one of our recent projects).
So if you work with AWS, your developers need to know:
- AWS Lambda for serverless computing.
- AWS Aurora, RDS, DynamoDB, DocumentDB for cloud-based database services.
- AWS Cognito for user authentication.
- AWS S3 for data storage.
- API gateway for API development.
- Simple Queing Service (SQS) for mesage queuing.
- Simple Notification Service (SNS) for push notifications.
- Simple Email Service (SES)
- CloudWatch for monitoring and logging.
That’s a lot of knowledge to pack, so we encourage our SaaS developers to go through AWS certification.
AWS cost-saving features reduced the infrastructure costs by $14K/month for a major SaaS company from the US [read the case study]
SaaS companies are like baby turtles. Statistics show that SaaS firms with a CAGR of 20% have just an 8% survival rate. So you need to grow fast or risk a quick death. 2021 Growth Hackers Report outlines that growth remains the main challenge for most SaaS-ers. To grow in the packed SaaS market, you need to build a team with a strong product mindset.
Agile and Lean development mindset
A product mindset is first of all about succeeding in Agile environments.
Very few engineers have experience working in truly cross-functional teams. This means that if your developers have no tasks for today, they should help the QA engineer finish their tests or work closely with the designers on the product’s UX. Such an approach requires a flexible mindset. Your developers should be comfortable with having a wide range of duties in a team setting.
At MindK, we first tried the Scrum framework 7 years ago on a few small projects. The results impressed us so much that MindK adopted Agile at the company level – from marketing to accounting. Its main benefit is that Scrum offers a structured approach to the often chaotic and unpredictable SaaS markets.
However, Scrum is not for everyone. It has no Project Managers to babysit the developers, so Agile only works with mature and experienced teams. Each team member needs to take ownership over the entire project and pay attention to the work of their teammates. If you need help in adopting the Agile approach at your company, I highly recommend requesting an Agile software development consultation from MindK.
Collaboration and teamwork
A product mindset is also about having great soft skills. In Agile teams, there can’t be a situation where the Product Owner only talks to a Project Manager while the engineers sit silently in the background. Great SaaS developers are responsible workers, good communicators, and technical advisors who can work with multiple stakeholders.
With remote and outsourced teams, the ability to communicate in English across time zones becomes a critical factor. At MindK, we try to remove any communication barriers on our SaaS projects. This can mean inviting client representatives to our Daily Scrum meetings, encouraging direct communication with engineers, and organizing Sprint Reviews where every team member demos some part of the finished software.
SaaS product development is all about growth. Many SaaS companies use the so-called North Star Metric (NSM) to track sustainable growth. It is a single metric that reflects the main value your product generates for target users.
To improve your NSM, SaaS developers need to have a deep understanding of your most loyal customers. Delighting such users is key to SaaS growth. So a great SaaS engineer isn’t just a person that writes efficient code. They’re a highly engaged specialist with a user-centric mindset, a good understanding of UX best practices, and attention to detail.
As you can see, SaaS developers have to know a lot of different things. So don’t get surprised if you see higher costs associated with top-notch SaaS programmers. As with other niches, salary expectations depend on multiple factors:
- Seniority/years of experience.
- Technology stack.
- Geographical location, and so on.
Median SaaS developer salary (annual)
When hiring SaaS engineers, you have 3 options:
- In-house developers.
- Freelance engineers.
- Developers at a professional SaaS development agency.
Hiring in-house engineers gives you complete control over the project. You can handpick every single developer, ensure a perfect culture fit, and create a motivated SaaS product team that cares about the success of your company.
Yet, hiring in-house engineers can be expensive. Really expensive.
In the US, the tech sector has the highest turnover so retaining good engineers can be a huge pain.
Freelancers are on the opposite end of this spectrum. They’re more affordable and easier to find on the global market. A big downside is that not all of them have good work ethics. They might divide their attention between several projects and disappear in the middle of a Sprint. In fact, previous negative experience with freelancers is one of the top reasons companies might hesitate to outsource software development.
SaaS development agencies are slightly more expensive than freelancers. After all, every company has to earn a living. Regardless of the contract type they use. Yet unlike freelancers, SaaS development companies have their reputation at stake when starting to work on a client’s project. Your success becomes their success. This is also one of the reasons such companies prefer long-term partnerships (at MindK, for example, the average relationship with a client lasts 5+ years).
The SaaS developer is a fascinating species. They aren’t just qualified engineers that can write efficient code. Good SaaS engineers are true startup animals. They live and breathe to deliver more value to your customers.
When searching for SaaS engineers, you’ve got three options – hire and retain all specialists in-house, scour freelance platforms for precious SaaS specialists, or contact a full-cycle SaaS development agency like MindK.
Our teams have been building SaaS apps for almost 10 years. With our team augmentation services, you can hire an experienced SaaS developer to become a part of your team in under 3 weeks. They adopt your company’s culture, engineering practices, and tools while you take care of project management.
You can also hire an experienced team at MindK to develop a SaaS product from start to finish. So drop us a line to arrange a free consultation with our tech experts.