Position: Principal Java Engineer
Company: Forte Group
Experience required: 5y
Category: Lead
English level: upper
Published: 2021-12-01T00:00:00+02:00

**You are an Agile Team Member**
Job #1 is to be part of a self-organizing team – a team that solves complex challenges and builds working software. Being a good team member means you contribute to its success by:
● Collaborating with your PO to groom backlog and break down stories into small functional slices
● Maintaining an attitude of commitment through outward display of willingness.
● Impressing responsibility on others by displaying ownership in tasks.
● Practicing positive interactions – lean on encouragement in place of judgment.
● Being open to new ideas and encouraging innovative practices amongst peers
● Actively working on broadening or adding a skill
● Asking for assistance when problems become challenging 
● Balancing best practice decisions with delivering high business value (right vs right now)
● Delivers stories/tasks that are “committed” within a timebox

**You are also the Principal Engineer**
The Principal Engineer is considered the premier developer on the team.  It is therefore your responsibility to engineer solutions within a large-scale platform to enable our client’s business while supporting the strategic architectural vision of quality, scalability, performance, and function. 

**Principal Accountability | Technical Planning**
● Owns technical design for a sprint including high-level flow diagrams, ERD, service contracts
● Ensures the whole team understands the technical plan, reasons for it, and adherence to it. 
● Considers testability in design with a focus on code determinism, abstraction, and modularity
● Commands a broad awareness of dependent projects and considers them in design
● Works with Enterprise Architects to ensure a team’s direction is in line with the enterprise vision
● Defines technical acceptance criteria (where necessary) for each story
● Integrates the technical PBIs and works with PO/client to justify and schedule those efforts

**Principal Accountability | Software Development**
● Communicates important details of the solution design to everyone on the team
● Encourages collective code ownership through CI and promotes frequent code check-ins (daily)
● Practices and teaches unit test development to achieve at least 80% code coverage
● Addresses technical debt constantly - escalating when it becomes risky to time or quality
● Develops with awareness for team needs and acts as resource/mentor for junior members
● Oversees the merge up/down process 
● Carries out root cause analysis on defects to ensure fixes are happening in the right way
● Keeps an up-to-date local development environment to reduce risk

**Principal Accountability | Team Leadership**
● Translate and break down the strategic technical vision into a consumable form for the team
● Assure team productivity meets a high standard that can be quantified
● Low-level development, testing, and deployment tasks have ownership by team members
● Frequently thinks out loud about design with the team and a higher level design committee
● Helps team members define clear, small, and testable tasks
● Enforces the team’s Definition of Done
● Liaises between the team and management to assure needed skills are represented on the team

**Principal Accountability | Software Inspection**
● Ensures daily code check-ins (through spot checks) are happening by each member of the team
● Employs static code analysis to identify code readability, anti-patterns, vulnerabilities & defects
● Monitors unit level test results after code are committed and hold a team to account for quality
● Considers cyclomatic complexity of code and drives project refactors where necessary
● Enforces transparency of the inspection process via Continuous Integration and reporting
● Reviews QA test plans for technical coverage
● Conducts cross-team and inter-team code reviews

**Principal Accountability | Release Planning**
● Drives and adheres to a well-defined code promotion process
● Supports and is accountable for timely releases and adherence to release activities
● Resolves defects in a timely and effective manner
● Identifies tactical risks and raises/resolves issues effectively
● Ensures that operational teams are effective during deployment (dry-run or production)
● Follows up with infrastructure to create service accounts, permissions, access rights, etc
● Creates deployment documentation that outlines WHERE & WHAT?

**Principal Accountability | Thought Leadership**
● Collaborates outside of the product team to encourage a development community
● Establishes and carries out formal and informal educational sessions (lunch & learn, etc)
● Encourages self-study by promoting best practices and bringing in external perspective

**We offer**
● Experience working with multicultural distributed teams
● Opportunities for self-realization while working on challenging projects using new technologies and tools
● Friendly and enjoyable working environment with a fully equipped workplace
● Social, corporate and knowledge-sharing events
Possibilities for career development and professional growth
● Medical & family care programs
● Various sports activities and gym membership coverage
● Fully paid 5 sick days yearly