A salary estimator for IT professionals, leveraging Deep Learning, Azure Functions and React.
This project aims to provide an approximate calculation of the sallary that an IT proffesional living in Greece can expect to receive, based on their profile.
The inputs taken into consideration include:
- Years of experience
- Company Size
- Work Model (Hybrid/Remote/On Premise)
- Are of Expertise (Front/Backend Development, Mobile, DevOps, CyberSecurity...)
- Languages & Technologies
This project consists of three main main components:
- The Notebook, used to create the model
- The Back-End application to perform the calculation
- The Front-End application for the user to interact with
The notebook used to create this project is based on sn_salary_forecast_2020 by Theodoros Ntakouris. The datased used to train the model is the 2022 Developer Salary Questionnaire by the Social Nerds. I would like to thank both, as this project would not have been possible.
The notebook is developed using Keras and Jupyter Notebook. The main differences in this notebook is the implementation of a dynamic filtering system to filter-out entries that contain data not relevant to Greece, and the implementation of procedures to manage data not present in the 2020 dataset. Executing the notebook results in the creation of a model, which can be exported for use in the Back-End.
The model generated by executing the notebook, is utilized in the server-side part of the application. The Back-End portion consists of a single Azure function that gets executed whenever a POST request is submitted to the relevant end-point. The function is implemented using Python and deployed using Azure Functions as a serverless API (in case the name did not give it away).
The Front-End portion of the application is a simple, single-page application, developed using React. The web-page is responsible for performing initial input validation for the data provided by the user, submitting the calculation request to the Azure Function and displaying the results. The Front-End portion is deployed using Github Pages.