2020 wasn’t kind to any business. Some companies were forced to review their operations, while others had to solve tasks they had never faced before. CTOs are challenged with disruptive technology, the need for multiple clients (web, desktop, mobile), and a faster-to-market approach. So how do you make your larger-than-life ERP work for you in 2021? By moving to microservices.
In one of our previous articles, we have already discussed the benefits and weaknesses of both monolithic and microservices architecture. In this article, we will focus on two major things: how to find top microservices developers and what team composition works best for microservices development.
Buckle up, we have an exciting journey ahead!
How to find the best microservices developers?
So, where do you begin your transition to microservices? By finding a reliable team of microservices developers that will have your back. And here's how to do that.
Opt for outsourcing
As of January 2021, the US job market had 64,700 job opportunities for software developers. Europe doesn't fall behind with almost 50,000 jobs unfilled. Due to the high competition for tech talent, an average staffing time in the US or the UK varies between 6 and 12 weeks, sometimes even more. Considering the fact that you will have to hire a relatively large team, you will not only lose time on recruitment and onboarding, but you could also lose money waiting for the perfect candidates.
That is why we recommend outsourcing this type of work. It helps you focus on your business's needs, and your outsourcing partner will take care of the rest.
Keep reading: How to hire the best offshore software developers: Guide
Choose an outsourcing destination wisely
Understanding the competition for tech talent and your need for a rather large team, it is smart to choose an outsourcing destination with a significant tech talent pool and vast experience in outsourcing. Let's take Eastern Europe as an example. The combined tech talent pool exceeds 1M developers and top providers have development centers in one or several countries.
Large tech talent pool and excellent reputation is only one part of a success. Understanding of a particular business domain also plays a crucial role in a successful migration to microservices. Choose a region with versatile technical and industry expertise. Reputable destinations (like Eastern Europe) have various experts to satisfy the needs of almost any project.
Look for the vendors’ expertise
Migrating massive enterprise-level applications to microservices requires previous experience with such type of work. So while choosing a vendor, make sure to look for a company with previous experience with microservices for enterprises. You should also choose a company with a robust technical portfolio that includes cloud, DevOps, and data projects.
Focus on vendors with a versatile tech stack
As we have previously mentioned, microservices allow you to work with virtually any programming language or tech stack. However, the recent study  shows that JS/TypeScript, Java, .NET, and Python are among the most widely used programming languages when it comes to microservices.
Choose a vendor with strong Cloud expertise
Another critical aspect is the deployment destination. The same report  shows that AWS is leading when it comes to deployment, however, the situation is rather far from a monopoly. Other service providers have their share of the market, along with private clouds or independent servers.
We would also like to address another trend that has been around for some time. Serverless technologies mean that you rely less on your own code, configs, etc., and use opportunities offered by the cloud provider. This approach is often used as a part of cloud-native development and can reduce costs significantly and help you hire less personnel.
Nearly half of microservices developers report either using or have used this approach recently. And it seems like this tech trend is here to stay.
Data expertise is a must
One more thing that is critical in your selection process is previous experience with data projects. Monolithic architecture often comes with a centralized database. It’s usually locked-in certain technology, has vertical scaling and a single point of failure. On top of that, such databases are extremely hard to modernize. So the challenge here is to decentralize data stores, provide independent scalability, and fail-proof the process. Also, you will most likely need help with data cleanup, as old and large systems are full of inconsistencies in data (manual fixes in DB, bad migrations, ETL runs, etc.). Nowadays, most companies are moving from building pipelines using ETL tools to using Kubernetes for data processing. So make sure to check for data expertise, while selecting your tech partner.
Choose developers with a strong technical background
While a particular tech stack might vary, depending on existing infrastructure, there are specific qualifications that an excellent microservices developer should have. Here's an example of such qualification for a mid-level to a senior specialist:
- Proficient in a required programming language;
- Understanding of DDD principles;
- Have a solid understanding of RESTful Services, Event-Driven Development, simple message buses, event streams.
- Experience with cross-system communication (REST, GraphQL, SOAP, etc.).
- Preferably cloud technologies: AWS or other cloud providers, Docker, Kubernetes (EKS), RDS, S3.
- Previous experience with serverless architecture would be a bonus.
- For senior and lead positions, knowledge of system design, software architectures, and fundamental design principles behind a scalable and secure application is necessary.
- Experience working with agile processes (Scrum, Kanban, etc.)
- Also, for small- to midsize projects, where there will be no dedicated DevOps team, hands-on experience in developing and deploying microservices solutions to Cloud infrastructure would be a huge advantage.
Opt for developers with excellent soft skills
And while finding developers with a particular skill set is rather simple, you should also remember that they need to have specific soft skills to be effective as microservices developers.
- Strong analytical and problem-solving skills. The ability to point out, analyze, and solve an issue independently would help developers work more effectively.;
- Commitment to life-long learning. Microservices allow you to introduce new features or incorporate new technologies almost instantly. So, developers should be ready to learn and use this knowledge in their work quickly.
- Good English. If you are outsourcing your microservices development, good command of English is a must. Working with microservices requires a lot of active communication between developers, architects, business analysts, and other members of the process.
So we have covered soft and hard skills that great microservices developers should have, discussed aspects of vendor selection. The next question is how many developers should you hire? Let's see!
What team structure would work best for microservices development?
Understanding what happens when moving from a monolith to microservices is crucial for understanding how the processes run and how teams are built.
So you begin with an existing legacy application that is typically massive. The first stage is decomposition. You separate an existing infrastructure into modules or parts. You still keep all the connections are relations within the code but check for code duplication. This step helps to make the code more stable, compact, and easier to support. Stage two is called decoupling. In simpler terms, you are severing the existing connections, turning your modules into independent microservices. It helps to make parts of the application easy to manage (support, replace, etc.)
So instead of a large application, developers are working with a service that has a narrow function and a strict place in the business process. How do these changes affect the scope of work for microservices developers, and what roles are crucial for effective microservices development? What should a microservices developer know?
Microservices developers: Roles and responsibilities
The typical team composition resembles the one in traditional software development. However, there is a slight difference in roles while working with microservices.
In microservices development, a software architect (SA) is responsible for designing the microservices application. Not only does SA have to plan decoupling and decomposition of the monolith, but they should also understand the needs of a specific business domain and match microservices to the processes in the company. The architect is also responsible for selecting the proper methodology and technology for event store, service registry, service discovery, containers for various services, and their implementation. This expert also chooses the most suitable integration techniques, such as API gateways for service registry, throttling, orchestration, etc.
The architect also acts as a single point of truth (SPOT) regarding questions, requirements, and business logic, and the overall roadmap.
This team typically consists of a Product Owner, Product Managers, and Business Analysts whose job is to turn business needs into technical requirements. They are also responsible for communicating business needs to development teams and managing budgets according to current needs.
For successful work, each team should be responsible for the end-to-end development of one or two microservices. Any team should be small ( between 5 and 9 people), autonomous, and loosely coupled. The smaller your services are the better -ilities can be achieved (including maintainability, testability, and deployability). If you follow agile methodologies, team composition would include a Scrum master, developers, and QA engineers.
DevOps or an infrastructure team
For a smaller project, one DevOps expert might be enough. However, if we are talking about midsize to large projects like ERPs, you might need to have a team of infrastructure experts. Not only do they take care of CI/CD, but they also manage things like the cost for environments.
DBA*. Depending on the type and size of the projects and system load, you may require the services of a database administrator.
So while moving from a monolith, you align your developers to microservices they will be working with .
If you choose to outsource your microservices development, your provider will help you find and hire the team to fit your needs best. We often recommend hiring a dedicated development team, as it is perfect for long-term projects. It allows to have full control over the development, preserve knowledge, and save money.
Why hire microservices developers at N-iX?
N-iX is an Eastern European software development service company that helps businesses across the globe expand their engineering capabilities and develop successful software products.
- Our teams have experience building secure microservices architectures. We help businesses safely transition to the cloud and enable client teams to become more flexible and agile. Our developers cooperated with many large companies to refactor their legacy platforms to more efficient microservices.
- N-iX has strong cloud expertise. We built cloud agnostic and cloud-native solutions for over a dozen of clients from the US, the UK, and Europe.
- We have extensive expertise in DevOps services, including Cloud adoption (architecture, migration, optimization), building and streamlining CI/CD processes, security issues detection/prevention (DDOS & intrusion), firewall-as-a-service, and more.
- Our portfolio includes dozens of successful data projects, including Big Data, Data Science, and Data Analytics.
- N-iX complies with international regulations and security norms, including ISO 27001:2013, PCI DSS, ISO 9001:2015, GDPR, and HIPAA, so your sensitive data will always be safe.
- We have 18 years of experience in the IT market and build long-lasting, strategic partnerships with our clients.
Featured case studies
- Our client, RateSetter, is a fintech leader that offers a P2P lending platform, needed to expand their development capabilities and migrate their solution from a monolith to the microservices architecture. We designed the concept of the microservices architecture that comprises over 80 microservices. Our development team worked on 10 subsystems, including UI and logic update, to maintain the user application. As a result, we improved the solution's overall scalability, decreased time-to-market, and made it easier to adopt new technologies.
- Another client is a large Japanese company operating through e-commerce, fintech, and mobile segments. For the past year, we have been working on a system that integrates with the client's private cloud and comprises 10+ microservices. The solution is highly scalable and high-load tolerant. It can process hundreds of thousands of transactions close to real-time. Also, it has integrated capabilities for Data Science and automated Machine Learning.
- Our client (under NDA) is a Global Fortune 100 multinational engineering and technology company from Germany. The challenge was to redevelop an existing legacy platform and make it scalable and efficient. As a part of the process, our Solution Architect designed and presented a new cloud-native infrastructure for this platform along with the roadmap for its implementation. We have also introduced DevOps pipelines, CI/CD processes, and helped our client to add new features, such as anomaly detection (SaaS), NLP for document verification, and data mining and sensor data processing. This project is in active development right now. Microservices architecture makes it easy to scale the solution fast to more than 400+ warehouses in more than 80 countries.
- Vable, a UK information management company, needed a dedicated development team to modernize their on-premise solution. As an existing system was not flexible or scalable, the decision was made to develop a new product based on microservice architecture. Now, this solution consists of over 50 microservices. We worked on the microservice architecture and ported some of the previous software components to a new cloud-based platform. Now, this system can be easily scaled if the company decides to enter a new business sector. It also can withstand any number of users.
- Currencycloud is a global B2B platform delivering cross-border payments as a Service. N-iX experts worked as a part of the clients’ in-house team, engaged in transitioning to microservices and migration of all the services to the fully-managed Kubernetes cluster. While the deployment of these microservices is on the client’s side, we are responsible for their development. The adoption of microservices architecture improved the overall scalability and allowed for faster development cycles.
- State of Microservices 2020 Report. (2020, July 15). https://tsh.io/state-of-microservices/
- Conway’s Law: How to dissolve communication barriers in your API development organization by Paul Logan. https://medium.com/better-practices/how-to-dissolve-communication-barriers-in-your-api-development-organization-3347179b4ecc
- A Modern Data Architecture for Microservices by Amazon Web Services