Beginner Employee Onboarding Task: Local Setup + Saayam Practice Data Validation & Analysis
#264 aperta il 10 ago 2026
Metriche repository
- Star
- (1 stella)
- Metriche merge PR
- (Metriche PR in attesa)
Descrizione
Description
Welcome to the Saayam Data Engineering & Analytics team!
Before starting work on real Saayam tasks, please complete this beginner-friendly onboarding exercise. The goal is to make sure your local development environment is ready and to give you hands-on practice with a small synthetic dataset similar to the type of data you may work with in Saayam.
This task has three parts:
- Verify your local Python and data environment.
- Explore and validate a synthetic Saayam practice dataset.
- Perform a few basic analytics calculations and create a visualization.
Important
- This is a local-only onboarding exercise.
- Do NOT use production, development, or real Saayam user data.
- Do NOT connect to AWS RDS, Lambda, or any Saayam production resources.
- Do NOT commit or push your notebook, scripts, credentials, or output files unless specifically requested.
- The provided dataset is synthetic and contains no real beneficiary, volunteer, contributor, or organization information.
- Never place passwords, database credentials, API keys, or AWS credentials directly inside Python files or notebooks.
- Once this task is completed successfully, you may begin working on assigned Saayam issues.
Part 1: Local Environment Check
Create a Python file named:
check_env.py
The script should:
-
Print the installed Python version.
-
Print the installed versions of:
- pandas
- numpy
- matplotlib
- scikit-learn
- psycopg2, if installed
-
Check whether Jupyter Notebook/JupyterLab is available.
-
Check whether PyTorch is installed.
-
If PyTorch is installed, print whether GPU/CUDA is available.
-
Handle missing libraries without crashing.
If required packages are missing, install them using:
pip install pandas numpy matplotlib scikit-learn psycopg2-binary jupyter
Expected Output Example
Python version: 3.12.2
pandas version: 2.2.2
numpy version: 1.26.4
matplotlib version: 3.9.0
scikit-learn version: 1.5.1
psycopg2 version: 2.9.9
Jupyter available: True
PyTorch installed: True
GPU available: False
Exact version numbers may be different.
Part 2: Explore the Saayam Practice Dataset
Use the provided synthetic file:
saayam_employee_practice.csv(attached here)
The dataset can contain columns similar to:
record_id
contributor_name
team
task_type
hours_worked
task_status
created_date
completed_date
Example teams may include:
- Data Engineering
- Data Analytics
- AI/ML
- Frontend
- Backend
- QA
Example task statuses may include:
- CREATED
- IN_PROGRESS
- COMPLETED
- BLOCKED
Open a new Jupyter Notebook and complete the following tasks.
1. Load the Dataset
Load the CSV file using pandas.
2. Preview the Data
Display:
- First 5 rows
- Number of rows
- Number of columns
- Column names
- Data types
3. Perform Basic Data Quality Checks
Check for:
- Missing values
- Duplicate rows
- Duplicate
record_idvalues - Negative or zero
hours_worked - Unexpected task statuses
Print a small summary of your findings.
Example:
Total records: 50
Missing values: 2
Duplicate records: 1
Invalid hours records: 0
Unexpected statuses: 0
Do not immediately delete or modify bad records. First identify and report them.
Part 3: Basic Saayam Analytics
Using pandas, calculate the following.
1. Contributor Count
Find the number of unique contributors.
Example:
Total contributors: 18
2. Total Hours Worked
Calculate the total number of hours worked.
Example:
Total hours worked: 326
3. Hours by Team
Group the dataset by team and calculate total hours worked by each team.
Example:
Data Engineering 82
Data Analytics 74
AI/ML 68
Frontend 44
Backend 39
QA 19
4. Team With the Highest Workload
Identify the team with the highest total hours.
Example:
Team with most hours: Data Engineering - 82 hours
5. Top Contributors
Sort contributors by their total hours worked and display the top 5.
Example:
Top Contributors:
1. Priya Kapoor - 38 hours
2. Rohan Singh - 34 hours
3. Maria Lopez - 31 hours
4. John Smith - 29 hours
5. Aisha Khan - 27 hours
6. Task Status Distribution
Count how many tasks are in each status.
Example:
COMPLETED: 24
IN_PROGRESS: 12
CREATED: 9
BLOCKED: 5
7. Completion Rate
Calculate:
Completion Rate =
Completed Tasks / Total Tasks × 100
Example:
Task completion rate: 48.0%
8. Average Hours per Task
Calculate the average hours worked per task.
Example:
Average hours per task: 6.52 hours
Part 4: Create Basic Visualizations
Create the following charts using matplotlib.
Chart 1: Total Hours by Team
Create a bar chart showing:
- X-axis: Team
- Y-axis: Total Hours Worked
- Title:
Total Hours Worked by Team
Chart 2: Task Status Distribution
Create a bar chart showing the number of tasks in each task status.
Title:
Task Status Distribution
Make sure the charts have:
- Clear title
- Axis labels
- Readable labels
- Appropriate figure size
Part 5: Write a Short Analysis
At the bottom of the notebook, write 3–5 observations about the dataset.
For example:
Observations:
1. Data Engineering recorded the highest number of working hours.
2. Approximately 48% of tasks have been completed.
3. A small number of records contain missing values and should be reviewed before analysis.
4. The top five contributors account for a significant portion of the overall recorded hours.
5. Blocked tasks should be reviewed to determine whether there are recurring workflow issues.
Your observations should be based on your actual results.
Bonus Task — Optional
If you are comfortable with Python, create a reusable function:
def get_team_summary(df):
The function should return a summary containing:
- Total contributors
- Total tasks
- Total hours
- Average hours per task
- Completed tasks
- Completion rate
- Team with the most hours
Example output:
{
"total_contributors": 18,
"total_tasks": 50,
"total_hours": 326,
"average_hours_per_task": 6.52,
"completed_tasks": 24,
"completion_rate": 48.0,
"highest_workload_team": "Data Engineering"
}
This is similar to how backend analytics functions may eventually prepare summarized data for dashboards or APIs.
Acceptance Criteria
The onboarding task is complete when:
check_env.pyruns successfully locally.- Python and required libraries are available.
- The dataset loads successfully in Jupyter Notebook.
- First 5 rows and dataset information are displayed.
- Contributor count is calculated.
- Total hours are calculated.
- Data quality checks are completed.
- Hours are grouped by team.
- The highest-workload team is identified.
- Top 5 contributors are displayed.
- Task status distribution is calculated.
- Completion rate is calculated.
- Average hours per task is calculated.
- At least two visualizations are created.
- 3–5 observations are documented.
- No real Saayam data is used.
- No credentials are included in the code.
- No connection is made to production or AWS resources.
Deliverables
For this onboarding exercise, keep the following files locally:
employee_onboarding/
│
├── check_env.py
├── saayam_employee_practice.csv
└── saayam_employee_practice.ipynb
Unless your team lead specifically requests otherwise, these files should not be pushed to the Saayam repository.
Next Steps
After completing this onboarding task:
- Inform your team lead that the local environment setup is complete.
- Confirm that the practice dataset analysis runs successfully.
- Review the Saayam repository structure and contribution guidelines.
- Pull the latest
mainbranch. - Create a separate branch for your assigned issue.
- Begin working on your first real Saayam task.
Welcome to the Saayam team!