# Backend Developer Competency Evaluation System – Junior Advance Level

This document defines a realistic transition from **Junior** to **Junior Advance** in the backend development domain, taking into account the following career levels:

**Junior → Junior Advance → Semi-senior → Semi-senior Advanced → Senior**

The evaluation is based on a points system, where competency levels are defined as:
- **Basic:** 1 point  
- **Intermediate:** 3 points  
- **Advanced:** 5 points  
- **Expert:** 7 points (applicable at the Senior level)

To advance from Junior to Junior Advance, the candidate must:
1. Achieve the minimum required level in each **Core** skill.
2. Attain a minimum overall score across all evaluated skills.

---

## Junior Advance Level: Skill Classification and Minimum Requirements

### Core Skills (Mandatory for Advancement)
- **SQL:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Intermediate (3 points)  
  *Solid understanding of queries and basic data modeling.*

- **OOP & Programming:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Intermediate (3 points)  
  *Good grasp of object-oriented principles and programming structures.*

- **Java:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Intermediate (3 points)  
  *Proficiency with essential libraries and frameworks, syntax, and basic constructs.*

- **REST Services:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Intermediate (3 points)  
  *Ability to design and implement simple RESTful services.*

- **Persistence Frameworks (JPA):**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Intermediate (3 points)  
  *Understanding of ORM and basic management of entities and relationships.*

- **Spring:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Intermediate (3 points)  
  *Implementation of controllers, services, and dependency injection.*

- **Transactions:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:**  
    - **Basic:** Demonstrates an understanding of ACID principles and can handle simple transaction scenarios (1 point).  
    - **Intermediate:** Can configure and manage isolation levels and handle rollback scenarios in more complex situations (up to 3 points).  
  *This progression ensures a foundation is set without overburdening the candidate at this stage.*

- **CI/CD:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:**  
    - **Basic:** Knows how to create and maintain simple deployment pipelines (1 point).  
    - **Intermediate:** Can automate tests and integrate additional deployment and validation stages (up to 3 points).  
  *The focus is on introducing automation and pipeline complexity gradually.*

- **Design Patterns:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Basic/Intermediate (1–3 points)  
  *Basic: Recognizes common design patterns and their pros and cons.  
  Intermediate: Able to adapt and combine patterns to solve specific problems, indicating an evolving practical understanding.*

- **Git:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Intermediate (3 points)  
  *Effective use of version control, including branching strategies, conflict resolution, and collaborative workflows.*

- **Test:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:**  
    - **Basic:** Ability to write simple unit tests (1 point).  
    - **Intermediate:** Introduces integration tests and demonstrates basic TDD principles (up to 3 points).  
  *This ensures candidates begin to apply testing strategies beyond mere unit tests.*

### Secondary Skills (Complementary)
- **Soft Skills:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Intermediate (3 points)  
  *Enhanced communication, teamwork, and conflict resolution skills.*

- **Workstation:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Basic (1 point)  
  *Optimization and configuration of the development environment (IDEs, operating systems, etc.).*

- **Web:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Basic (1 point)  
  *Basic front-end technology knowledge for simple integrations.*

- **Scrum:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Basic (1 point)  
  *Familiarity with agile methodologies and Scrum roles.*

- **Logging:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Basic (1 point)  
  *Basic use of logging systems for debugging and monitoring.*

- **Building/Packaging:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Basic (1 point)  
  *Knowledge in generating builds and packaging applications.*

- **Documentation:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Basic (1 point)  
  *Ability to document code and development processes.*

- **Spring Ecosystem:**  
  - **Current Level in Junior:** Basic  
  - **Expected Level in Junior Advance:** Intermediate (3 points)  
  *Familiarity with key components of the Spring ecosystem (e.g., Spring Boot, Spring Security).*

> **Additional Note (Optional):**  
> It is recommended that candidates also familiarize themselves with basic backend security fundamentals (e.g., OWASP concepts) and containerization tools (such as Docker). These areas will be evaluated complementarily and deepened at later levels.

---

## Scoring Table for the Junior Advance Level

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

---

## Total Minimum Points Calculation

- **Core Skills Total (Mandatory):**  
  Approximate sum:  
  SQL (3) + OOP & Programming (3) + Java (3) + REST Services (3) + Persistence Frameworks (3) + Spring (3) + Transactions (1–3) + CI/CD (1–3) + Design Patterns (1–3) + Git (3) + Test (1–3)  
  **Approximate Total:** 27 to 33 points (depending on evaluation in Transactions, CI/CD, Design Patterns, and Test).

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

- **Overall Minimum Score:**  
  **Approximately 39 to 45 points**  
  *It is recommended that candidates reach an overall minimum of around 40 points to ensure a solid foundation for further progression.*

---

## Validation Process for Advancement

To be eligible for the transition from Junior to Junior Advance, the candidate must satisfy both conditions:

1. **Core Skills Requirement:**  
   The candidate must demonstrate at least the minimum required level in each core skill (e.g., SQL, OOP, Java, etc.).  
   *If any core skill is below the minimum, advancement is not permitted, even if the overall score meets the threshold.*

2. **Total Points Requirement:**  
   The sum of the points obtained across all evaluated skills must meet or exceed the established threshold (approximately 40 points in this model).

---

This model is designed to reflect a realistic progression where the Junior candidate consolidates essential backend development fundamentals, preparing for greater responsibilities at higher levels without being overburdened with requirements that are more appropriate for Semi-senior or Senior roles.

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