August 7, 2019
The technology stack remains a key issue in almost every kind of application you build. Projected bandwidth demand, Web app type, business goals, potential extensibility—all these variables have to be taken into account when considering the technology stack for your HR software.
The process of choosing the tech stack is no different when it comes to HR software development and is equally important to its future commercial success. Applications in that particular niche have specific demands that can best be met by a suitable composition of technology components.
At Monterail, we know how important this is for the development of your application. That's why we conduct Discovery Workshops with our clients, to better understand their needs, and which tech stack will be the most suitable for their products.
"We loved the extent of their expertise and topics we've covered: from design to choosing the tech stack and establishing the final project scope."Phillipa Hicks Sales & Marketing Director & Co-Founder at Seat Unique
Please note, however, that not all HR applications require equal scrutiny when it comes to their tech stacks. Simple apps that cater to a small user base and pack only a handful of features will most likely do well with whatever stack that adequately matches those needs.
So what kind of tech stack would be suitable for a complex multi-user HR application? Before answering that question, we have to analyze the most important characteristics of those apps and then cross-check them against technologies able to meet these demands.
Although there is no “wrong” technology stack and your HR software will work with any stack you choose, the possibilities of each configuration have great impact on the development process, as well as your app’s business performance.
From a business perspective, choosing an ineffective tech stack may hinder business expansion, while selecting the right tools may give you certain advantages over your competition.
How? With robust HR applications, picking the wrong technology can either hinder their future maintenance or extensibility or be a costly mistake to fix with the right stack.
For example, scaling complex apps to serve a constantly growing number of users is significantly more difficult and expensive with verbose programming languages and a highly dependent codebase. Traffic spikes and multiple concurrent tasks might also render an app unable to deliver undisrupted services to employees using it—a symptom suggesting a pressing need for horizontal or vertical scaling of infrastructure.
Other consequences of a poorly picked tech stack may include high downtime and system instability caused by bugs and crashes.
To prevent these issues, it’s best to choose technologies that are easy to maintain and scale—technologies that are also highly performant, using as few resources as possible to deliver high speeds.
Having analyzed your business needs, a good software development company will surely be able to provide you with all the necessary advice. Usually, they will run discovery workshops to find out the best technological (but not only) solutions and align your vision with their expertise.
There are many programming languages and frameworks which you might find suitable for your particular Human Resources software and the tech stack you select should depend on your particular needs.
Firstly, remember that a tech stack comprises the app’s infrastructure, while structurally an app consists of the backend and the frontend.
An app’s infrastructure should include:
If you’re looking for more details on the above components, have a look at our article on choosing a technology stack, which deals with the subject in more technical detail. In this article, we will focus on the structural components—the frontend and the backend—and show you some examples based on our experience with HR software development.
The backend (the server-side) governs the logic behind how a website works—it’s responsible for the communication between the client-side, the server-side, and all the components within the backend. The backend usually comprises server-side software and background processes.
Background processes improve user experience and application performance and are quite self-explanatory.
Server-side software, on the other hand, determines how the server, application, database, and other components in a Web app architecture communicate and work with each other.
Web app code can be written using a backend framework, which speeds up the development process. Each programming language has a number of frameworks based on it.
For example, Ruby on Rails is a Ruby Web development framework, and we actually used it to build the backend of Cooleaf—a performance incentive platform. Our developers decided to roll with Ruby on Rails, because the app needed to be responsive and up to current Web application standards, plus it simply matched the customer’s requirements. In addition, Ruby helped us quickly deliver a highly valuable MVP, giving Cooleaf a great business advantage.
The frontend is basically the client side, that is everything a user can see. It contains:
The HTML and CSS parts of the frontend can be built with frameworks, which contain standardized code packages that speed up development and add functional components.
The selection of frontend technologies essentially depends on the availability of documentation, programmers, out-of-the-box solutions, and, of course, your business needs.
In the Cooleaf project, we successfully wrote the frontend in Angular. This allowed us to build a cutting-edge platform, resembling modern social media platforms.
HR apps usually need at least a bit of interactivity to improve usability and user experience. In this case, lightweight JS tools such as Vue or React are excellent. Both have plenty of libraries to choose from, with a broad variety of UI features, which will help make the application user-friendly, interactive, and highly usable.
Another benefit of using solutions such as React Native is the ability to share even 80% of the whole codebase ( across the mobile and Web versions of the app), which decreases software development time and costs. That’s the technology we used for Guild - an award-winning cross-platform Web app for sharing knowledge among certain groups of professionals.
With interactive elements sprinkled only here and there, Phoenix HTML with partials in React or Vue will also do fine. In such a setup, you don’t have to build the frontend and the backend separately, thus there’s no need for state management and the development time is faster. Also, as the project grows, you can always add more interactivity.
Let’s now take a look at some successful HR applications and the technology stacks behind them.
Harvest is a time-tracking platform used by over 50 000 companies (including us!) also for invoicing and creating reports. Available as a Web and mobile app, it was built as one of the first Ruby on Rails Saas apps. Highly integrable - it even enables users to track time via Tweets.
Harvest is a robust tool built with Ruby, Rails, and Node.js in the tech stack.
Harvest Web interface for an employee
Harvest Web interface for a project manager
Xerpa is a Brazilian company providing services designed to simplify HR processes. The cloud-based solution is a robust platform for managing employee data, including onboarding, payroll calculation, and employee benefits administration. It has strong analytic capabilities with data visualization features and goes with a mobile version for user convenience.
You can find Python, React, Elixir, and Phoenix in Xerpa’s technology stack.
RolePoint is a SaaS solution for talent acquisition. RolePoint helps companies retain, acquire, and identify talents. The HR software has in-depth incentive management options and digital marketing features for boosting employee referrals. With built-in analytics, recruitment teams have a detailed insight into human capital.
RolePoint's software is used by more than 2 million employees and over 100 companies. To deliver uninterrupted services to such a large user base, RolePoint employs a variety of technologies, including Python and Elixir.
Teambit is an HR app focused on evaluating team engagement and employee performance by encouraging feedback. Employers using Teambit gain a deeper understanding of their teams thanks to the ability to analyze employee-submitted data. Alongside many other feedback-focused features, the platform is equipped with a custom survey wizard and a full-fledged employee social media platform.
Teambit is lightweight and fast, with Elixir and Node.js in the stack.
With a technology stack chosen with care and consideration, and backed by analyses compiled by professional developers and business analysts, a performant HR application can be an indispensable asset.
Yet, keep in mind that a technology stack is only one part of a Web app. The other part is a team of experienced Web developers who will know how to get the best out of each component in the tech stack and will use a combination of those components to build a highly performant and scalable Web app, with immaculate UI and UX that your people will love to use.