NodeFlair sets out to connect developers with their dream companies so they can code at where they love! The road to achieving their dream job can be challenging, and after speaking to users, we gained a big insight - job candidates view salary compensation as a crucial factor, with 90% of them caring about salary details when switching jobs.
Unfortunately, many companies don’t disclose salary in a job listing, possibly due to the fact that openly discussing salary in Southeast Asia is considered a taboo. For companies that do include salary details, this information is not trusted by job seekers due to biased reviews or lack of verification. Hence, the challenge is to provide tech talents with salary information that is trustworthy, accurate and reliable.
Here is where NodeFlair Salaries comes in to offer job candidates the latest, updated salary information in the Tech market. Candidates will also be able to filter salaries according to Seniority, Specialisation and Company over thousands of jobs, allowing for a more tailored experience! Most importantly the salary data provided is trustworthy and reliable, having been drawn from verifiable user-submitted data such as offer letters or payslips. User-submitted salaries are also rounded off to the nearest whole number, and sensitive information such as names, contact details and official work titles are removed to protect anonymity and encourage more submissions.
For NodeFlair Salaries, we carry out computation across data to derive meaningful insights. The data comes from multiple sources such as user-submitted salaries, past job listings, as well as external sources such as MyCareersFuture.
Below are examples of some data sources we deal with. Do note that for the purpose of this article, the data sources are simplified into 3 attributes (a, b, c)
As different data sources have different attributes and types, we need to transform them into the same structure and type in order to perform our computations.
While it doesn’t look as complicated now, we can only imagine the horror if this thing extends to many more data sources, or if the number of attributes increased is much larger! So while the code works for now, the Salary class is doing too much of the work just to process the data from different sources, which is not ideal.
We came across Scenic, which is a way to use Database Views with ActiveRecord. This was exactly what we needed!
With Scenic, we are able to bring the power of SQL views to our Rails application without having to switch our schema format to SQL. It also provides a convention for versioning views that keeps your migration history consistent and reversible, and avoids having to duplicate SQL strings across migrations.
Now, we are able to move the passing Postgres query to set up the view (as shown below).
We are also able to get a much simpler Salary class!
At first glance, the code appears much longer and you have to run additional DB migrations, but this brings a number of benefits.
According to a Glassdoor survey, 70% of employees believe pay transparency is good for employees’ overall satisfaction, resulting in improved engagement and job performance provided the salaries are considered fair. Transparency within a company - not just in regard to salary but in all areas - builds trust, which is also a key aspect of employee satisfaction.
When employees are in the dark about each others’ pay, they tend to assume they are underpaid. Of course, employees will only be happy if they’re being paid fairly, and knowing their colleagues’ salaries allows them to fight to close the gap. On the other hand, one who doesn’t know that they are being paid less or unfairly is unable to negotiate for higher pay - an issue that is more common than we think. In a cutthroat job market, companies instituting pay transparency may also gain a competitive advantage in the marketplace. Job seekers may be drawn to apply for positions where the salary range is shared early and openly. Furthermore, organizations can retain high-performing employees with pay visibility which assures them that they are being paid fairly for the work they do.
Here at NodeFlair, we want to be a place which embraces a set of shared goals in improving salary transparency, not just by consuming this information but also contributing to it, and this is why NodeFlair Salaries exists!