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.
🔗 Streamlit App: https://software-developer-salary-predictor-gkmzkxzgtujd6rspmllcfv.streamlit.app/
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
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
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
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 | 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 |
The deployed application allows users to:
- Select their profile information
- Choose technologies they work with
- Predict estimated annual salary instantly
- Python
- Pandas
- NumPy
- Scikit-learn
- XGBoost
- Streamlit
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
Clone the repository
git clone https://github.com/yourusername/software-developer-salary-predictor.gitNavigate into the project directory
cd software-developer-salary-predictorInstall dependencies
pip install -r requirements.txtRun the Streamlit app
streamlit run app.py- Add interactive EDA dashboard
- Improve UI/UX
- Include additional salary prediction factors
- Deploy model using Docker
- Integrate explainable AI (SHAP)
Shravan Kundap
Electronics & Telecommunication Engineering
Machine Learning | Data Analytics | AI