Senior Java Developer

Location: Dublin 14
Department: IT, Product and Engineering

What are we looking for?

CarTrawler`s server-side car and transportation platforms are developed by several in-house Java technology teams. While each of the teams focus on different aspects of the technology stack, they share common software architectures, working practices, agile methodologies and design strategies. This role has responsibility for participating in one such team, contributing to the development and delivery of features, projects and commitments agreed with the business. The Senior Java Engineer is expected to operate with a high level of initiative and independence both in terms of design and implementation decisions. Working with the Engineering Manager in situations where new or novel technologies are being investigated to solve business or operational requirements. Additionally, the Senior role is expected to provide mentoring and direction to mid-level engineers, contributing especially to design reviews, ensuring a level of consistency and cohesiveness of design across the entire codebase.

Reporting to:Engineering Manager

What you will be doing?

Main accountabilities and key tasks:

- Working with Engineering Manager, Product Management and the Business to ensure there`s a clear technical understanding of product and feature requirements.
- Collaborating with developers on the same team and across the entire technology team in delivering on prioritised technical requirements.
- Instrumental in technical design. Ensuring best practices and recognised design patterns are adopted. Striving for simplicity. Providing the technical vision for more junior members of the team.
- Instrumental in ensuring efficiency and performance of the technology stack. Not over-optimising, Recognising the risks of compute-intensive or IO intensive design and applying a critical eye.
- Considering quality up-front. Designing test-able, maintainable code. Providing vision to the team in terms of pragmatic, defensible test strategies that ensure a desired level of quality.
- Actively contributing to the codebase. Across design, development and test. Leading by example.
- Providing input into evolving Agile Strategy, Architecture, Continuous Integration, Automation.

Critical Interfaces:

- Fellow Java Developers
- Product Technology Teams
- Business Teams within CarTrawler
- Third Parties - Suppliers and Partners - representing CarTrawler.

Skills required:

Knowledge and Experience:

- Experience participating in agile teams both in terms of (a) contributing to planning and delivery and (b) participating in day-to-day cross-functional stand-ups.
- Experienced in the breaking out of complex functional requirements into clear technical tasks.
- Confident providing direction to more junior Java developers and instilling a spirit of quality and pragmatism.
- Strong problem-solving skills. Demonstrated ability to identify creative strategies to address technical issues under pressure. Ability to decompose complex technical problems.
- Expert Java (enterprise) developer. 8+ years of Java experience. Ideally on highly available platforms.
- Working knowledge of Gang of Four Design Patterns. Enterprise patterns a distinct advantage.
- Working knowledge of frameworks such as Spring, Hibernate, JPA. Particularly in terms of the design and development practices they represent (Inversion of control, Modularity, Composition, etc)
- Experience of working on high-scale B2B and B2C platforms. Demonstrated experience solving for scalability and concurrency provides a definite advantage.
- Awareness of emerging technologies and methodologies, recognising when there are efficiencies to be gained or competitive advantages in adopting or investigating new technologies.
- Highly experienced developing scalable Java Enterprise applications.
- Experienced in database integration including both relational and big data concepts.
- Comfortable working on Windows, Unix and/or Linux platforms.