Lead Back-End Engineer (Java)
Remote
Full-time
Lead Back-End Engineer (Java).
Key Responsibilities:
- Steer the team towards achieving results based on priorities, milestones, and deadlines
- Plan and orchestrate the delivery: Providing assistance with planning sprints, breaking down and estimating change requests, and performing daily follow-ups with team members to ensure timely delivery
- Actively guide and coach team members to find adequate, timely, and cost-effective solutions ensuring a high degree of quality and meeting customer’s expectations
- Contribute to the development of key deliverables and complex features
- Act as a quality gate by contributing to code reviews actively and ensure deliverables are consistent with overarching solution architecture, best practices, and common coding guidelines
- Analyze and triage complex bugs and ensure the timely response of the team to incidents and support inquiries
- Act as a sparring partner for CTO and business analyst to discuss and review business requirements, solution architecture, product roadmap, development processes, and tools, etc.
Technical Skills and Experience, must-haves:
- 7+ years of experience in the implementation of Java enterprise and web applications based on Spring/JEE
- Strong sense of ownership paired with high-quality standards
- Curious and passionate to learn new things as well as desire to understand the big picture
- Strong conceptual skills, ability to specify, visualize and communicate architecturally aspects as well as component design (design principles, patterns, UML)
- Proficient in Java 8/11 with a profound understanding of the entire Spring stack
- Solid understanding of microservices and contract first REST API design and versioning
- Relevant experience with relational databases (ideally Postgres)
- Good understanding of asynchronous event/message processing (JMS/RabbitMQ or Kafka)
- Proficient in data mapping and transformation (XML/JAXB, JSON/Jackson, ORM/Hibernate, Mapstruct)
- Experienced with test frameworks (JUnit 5, AssertJ, Sprint integration test framework
- Familiar with Linux and Docker
- Solid understanding of Git and build/dependency management tools (Jenkins, Maven/Gradle, NPM)
Nice-to-haves:
- Solid understanding of asynchronous networking communication (Netty, virt-x)
- Skilled in database query optimization
- Experience with AWS and Kubernetes
- Prior mobile application development experience (Android, React Native, or Flutter)
- Basic FE development experience with React or Angular
Soft Skills:
- Excellent problem-solving skills
- Leadership skills – a person who leads by example and has a hands-on attitude
- A high level of ownership, engagement, and quality awareness is expected
- A pragmatic approach in decision making - should be able to make sure improvements have real added value and are worth doing, adapt and steer team efforts towards achieving company goals with the long term in mind
- Should be able to assess the quality of deliverables and guide the team in focusing on quality, while also being mindful of acceptable compromises to be made when the situation calls for
- Effective communication style
- Strong use of the common sense
- Mentorship skills - someone who is fair and openly listens to the Team, carefully evaluates pros/cons, and explores different viewpoints before arriving at conclusions
- Proficiency in the English language, both written and verbal, is sufficient for success in a remote and largely asynchronous work environment.