Skip to content

ShravanK45/software-developer-salary-predictor

Repository files navigation

💼 Software Developer Salary Predictor

An end-to-end Machine Learning project that predicts the annual salary of software developers based on their professional profile, technology stack, experience, education, and work preferences.

The application is built using Python, Scikit-learn, XGBoost, and Streamlit, allowing users to interactively estimate developer salaries through a clean web interface.


🚀 Live Demo

🔗 Streamlit App: https://software-developer-salary-predictor-gkmzkxzgtujd6rspmllcfv.streamlit.app/


📌 Project Overview

This project uses data from the Stack Overflow Developer Survey to build a salary prediction model.

The complete machine learning pipeline includes:

  • Data Cleaning
  • Exploratory Data Analysis (EDA)
  • Feature Engineering
  • Outlier Handling
  • Data Transformation
  • Model Training
  • Hyperparameter Tuning
  • Model Evaluation
  • Model Deployment using Streamlit

📊 Dataset

Source: Stack Overflow Developer Survey

Target Variable:

  • Annual Developer Salary

Features Used:

  • Age
  • Education Level
  • Work Experience
  • Country
  • Industry
  • Remote Work Preference
  • Developer Role
  • Programming Languages
  • Databases
  • AI Models Used

⚙️ Data Preprocessing

The dataset was processed using the following techniques:

  • Removed missing and inconsistent values
  • Ordinal Encoding for Education Level
  • Age Range converted into representative numerical values
  • One-Hot Encoding for:
    • Country
    • Industry
    • Remote Work
    • Developer Type
  • Multi-label feature engineering for:
    • Programming Languages
    • Databases
    • AI Models
  • Standard Scaling for Work Experience
  • Outlier Removal using the 99th Percentile
  • Log Transformation of Salary

🤖 Machine Learning Models

The following regression models were trained and evaluated:

  • Linear Regression
  • Decision Tree Regressor
  • Random Forest Regressor
  • XGBoost Regressor

Hyperparameter tuning was performed using RandomizedSearchCV.


📈 Model Performance

Model R² Score
Linear Regression 0.4049
XGBoost (Tuned) 0.4035
Random Forest (Tuned) 0.3974
XGBoost 0.3792
Random Forest 0.3504
Decision Tree -0.1651

🖥️ Streamlit Application

The deployed application allows users to:

  • Select their profile information
  • Choose technologies they work with
  • Predict estimated annual salary instantly

🛠️ Technologies Used

  • Python
  • Pandas
  • NumPy
  • Scikit-learn
  • XGBoost
  • Streamlit

📂 Project Structure

software-developer-salary-predictor/
│
├── Notebooks
    ├── Datacleaning.ipynb
    ├── EDA.ipynb
    ├── SalaryPrediction.ipynb
├── app.py
├── predict.py
├── salary_predictor_artifacts.pkl
├── requirements.txt
├── README.md
└── Dev_Salary_Cleaned.csv

▶️ Installation

Clone the repository

git clone https://github.com/yourusername/software-developer-salary-predictor.git

Navigate into the project directory

cd software-developer-salary-predictor

Install dependencies

pip install -r requirements.txt

Run the Streamlit app

streamlit run app.py

📌 Future Improvements

  • Add interactive EDA dashboard
  • Improve UI/UX
  • Include additional salary prediction factors
  • Deploy model using Docker
  • Integrate explainable AI (SHAP)

👨‍💻 Author

Shravan Kundap

Electronics & Telecommunication Engineering

Machine Learning | Data Analytics | AI

About

An end-to-end Machine Learning project that predicts the annual salary of software developers based on their professional profile, technology stack, experience, education, and work preferences.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors