# Backend Developer Competency Evaluation System – Transition from Junior Advance to Semi-senior Level

This evaluation system is based on a points model:
- **Basic:** 1 point  
- **Intermediate:** 3 points  
- **Advanced:** 5 points  
- **Expert:** 7 points (applicable at the Senior level)

To advance from **Junior Advance** to **Semi-senior**, candidates must:
1. Achieve at least the minimum required level in each **Core** skill.
2. Reach a total minimum score across all evaluated skills.

---

## Transition Requirements: Skill Classification & Minimum Levels

### Core Skills (Mandatory for Advancement)
- **SQL:**  
  - **Required Level:** Intermediate (3 points)  
  *Demonstrates solid query writing and data modeling skills.*

- **OOP & Programming:**  
  - **Required Level:** Intermediate (3 points)  
  *Exhibits a strong grasp of object-oriented principles and programming structures.*

- **Java:**  
  - **Required Level:** Intermediate (3 points)  
  *Able to effectively use essential libraries and frameworks, with a sound command of the language.*

- **REST Services:**  
  - **Required Level:** Intermediate (3 points)  
  *Capable of designing and implementing robust RESTful services.*

- **Persistence Frameworks (JPA):**  
  - **Required Level:** Intermediate (3 points)  
  *Understands ORM principles and can manage entity relationships efficiently.*

- **Spring:**  
  - **Required Level:** Intermediate (3 points)  
  *Comfortable with dependency injection, controllers, and basic service layers.*

- **Transactions:**  
  - **Required Level:** Intermediate (3 points)  
  *Manages transaction scopes confidently in standard application scenarios.*

- **CI/CD:**  
  - **Required Level:** Intermediate (3 points)  
  *Has hands-on experience setting up and maintaining deployment pipelines.*

- **Design Patterns:**  
  - **Required Level:** Intermediate (3 points)  
  *Able to recognize and apply common design patterns beyond basic usage.*

- **Git:**  
  - **Required Level:** Intermediate (3 points)  
  *Efficiently manages version control with branching strategies in team settings.*

- **Test:**  
  - **Required Level:** Intermediate (3 points)  
  *Possesses solid knowledge in unit testing, integration testing, and TDD concepts.*

### Secondary Skills (Complementary)
- **Soft Skills:**  
  - **Required Level:** Intermediate (3 points)  
  *Strong communication, teamwork, and problem-solving abilities.*

- **Workstation:**  
  - **Required Level:** Basic (1 point)  
  *Optimized and well-configured development environment (IDEs, OS, etc.).*

- **Web:**  
  - **Required Level:** Basic (1 point)  
  *Basic familiarity with front-end technologies for simple integrations.*

- **Scrum:**  
  - **Required Level:** Basic (1 point)  
  *Familiarity with agile methodologies and Scrum practices.*

- **Logging:**  
  - **Required Level:** Intermediate (3 points)  
  *Demonstrates effective use of logging frameworks, configuration of log levels, and analysis of logs for debugging and monitoring.*

- **Building/Packaging:**  
  - **Required Level:** Basic (1 point)  
  *Knows how to generate builds and package applications effectively.*

- **Documentation:**  
  - **Required Level:** Basic (1 point)  
  *Capable of documenting code and development processes clearly.*

- **Spring Ecosystem:**  
  - **Required Level:** Intermediate (3 points)  
  *Familiarity with key components (e.g., Spring Boot, Spring Security) within the ecosystem.*

*Note: NoSQL is not considered a Core skill at this level.*

---

## Scoring Table

| Skill                                      | Current Level (Junior Advance) | Required for Advancement to Semi-senior | Minimum Points Required |
|--------------------------------------------|--------------------------------|-----------------------------------------|-------------------------|
| **SQL** (Core)                             | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **OOP & Programming** (Core)               | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Java** (Core)                            | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **REST Services** (Core)                   | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Persistence Frameworks (JPA)** (Core)      | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Spring** (Core)                          | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Transactions** (Core)                    | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **CI/CD** (Core)                           | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Design Patterns** (Core)                 | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Git** (Core)                             | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Test** (Core)                            | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Soft Skills** (Secondary)                | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Workstation** (Secondary)                | Basic (1)                      | Basic (1)                               | 1                       |
| **Web** (Secondary)                        | Basic (1)                      | Basic (1)                               | 1                       |
| **Scrum** (Secondary)                      | Basic (1)                      | Basic (1)                               | 1                       |
| **Logging** (Secondary)                    | Intermediate (3)               | Intermediate (3)                        | 3                       |
| **Building/Packaging** (Secondary)         | Basic (1)                      | Basic (1)                               | 1                       |
| **Documentation** (Secondary)              | Basic (1)                      | Basic (1)                               | 1                       |
| **Spring Ecosystem** (Secondary)           | Intermediate (3)               | Intermediate (3)                        | 3                       |

---

### Total Minimum Points Calculation

- **Core Skills Total:**  
  SQL (3) + OOP & Programming (3) + Java (3) + REST Services (3) + Persistence Frameworks (3) + Spring (3) + Transactions (3) + CI/CD (3) + Design Patterns (3) + Git (3) + Test (3) = **33 points**

- **Secondary Skills Total:**  
  Soft Skills (3) + Workstation (1) + Web (1) + Scrum (1) + Logging (3) + Building/Packaging (1) + Documentation (1) + Spring Ecosystem (3) = **14 points**

- **Overall Total Minimum Required:** 33 + 14 = **47 points**

---

## Validation Process for Advancement

To be eligible for advancement from **Junior Advance** to **Semi-senior**, a candidate must satisfy both conditions:

1. **Core Skills Requirement:**  
   The candidate must demonstrate at least the minimum required proficiency for each Core skill:
   - **SQL:** At least Intermediate (3 points)
   - **OOP & Programming:** At least Intermediate (3 points)
   - **Java:** At least Intermediate (3 points)
   - **REST Services:** At least Intermediate (3 points)
   - **Persistence Frameworks (JPA):** At least Intermediate (3 points)
   - **Spring:** At least Intermediate (3 points)
   - **Transactions:** At least Intermediate (3 points)
   - **CI/CD:** At least Intermediate (3 points)
   - **Design Patterns:** At least Intermediate (3 points)
   - **Git:** At least Intermediate (3 points)
   - **Test:** At least Intermediate (3 points)

   *If any one of these Core skills is below the required minimum, the candidate cannot advance—even if the overall score meets the threshold.*

2. **Total Points Requirement:**  
   The candidate’s overall score—calculated by summing the points from all evaluated skills—must be **at least 47 points**.  
   *For example, if a candidate’s total score is 46 points, they do not meet the threshold to advance.*

A candidate can only advance from Junior Advance to Semi-senior if both conditions are met.

---

[Back to the Main Backend Page](../backend.md)
