Senior Java Engineer (FAP-BC-AS-2019-102-LD)
- Geneva, Switzerland
Are you an experienced and motivated Java developer with a passion for delivering complex and compelling information systems? Are you at ease with server-side technologies, particularly within the Java ecosystem, with hands-on experience in the modernisation of software systems? Have you guided organisations in the transition from monolith-based architectures to microservices? Then join an agile team of talented software developers and contribute to application software development for CERN's Corporate Information Systems. CERN, take part!
You will join the Business Computing Group (BC), where 70+ talented international colleagues are responsible for delivering information systems for all of CERN’s business functions.
The product management driven group is working for clients across the whole Organization (HR, Finance, Planning, Safety, Security, Purchasing, Logistics, and Accelerator Operations). The type of products under the group’s responsibility ranges from custom-made solutions for a few users to large and widely integrated systems with 15,000+ users. Hence, working for the BC Group provides numerous perspectives for being in touch with different technologies and business areas.
As a Senior Java Engineer, you will join a self-organised agile product team and you will be responsible for evolving, re-engineering and maintaining the back end of CERN’s administrative information systems, aligned with the group's strategy to modernise, replace, and consolidate legacy architectures and business-critical applications. More specifically, you will take on the following responsibilities:
- Design, develop, and test new features and software components.
- Lead cross-team technical initiatives and deliver proof of concepts demonstrating product feasibility.
- Maintain and improve group-wide high standards and guidelines of software engineering practices.
- Identify areas of improvement in the technology landscape of the group, and recommend solutions.
- Mentor junior software developers.
- Provide user support including analysing user requirements, synthesizing, specifying and following-up on both software- and non-software related issues.
Master's degree or equivalent relevant experience in the field of computer science or a related field.
- Demonstrated experience in the design and development of Java-based enterprise solutions built on top of industry standards (e.g. Spring Framework, Spring Boot).
- Deep understanding of modern software architectures and API design.
- Deep understanding of object-oriented and functional programming paradigms, design and architectural patterns, and their application in the Java ecosystem.
- Deep understanding of modern software development life cycles and CI/CD.
- Good knowledge of SQL, database systems, and their integration with Java applications.
- At ease with Java build tools, particularly, Maven and Gradle.
- Passionate about software craftsmanship, acquiring new skills, and exploring learning opportunities.
Each of the following skills would be a plus:
- Experience with modern CI/CD tools (e.g. Atlassian Bamboo, Jenkins).
- Understanding of enterprise messaging systems and/or stream-processing platforms, such as RabbitMQ and Apache Kafka.
- Familiarity with rule-based systems, particularly, Drools.
- Familiarity with Elasticsearch.
- Familiarity with Docker and Kubernetes.
- Knowledge of programming techniques and languages: deep understanding of object-oriented and functional programming paradigms, design and architectural patterns, and their application in the Java ecosystem.
- Knowledge of best practices for developing secure software: knowledge of web application vulnerabilities (as defined by OWASP), and how to prevent them.
- Design of databases/repositories: experience with relational databases and database modeling.
- Re-use, refactoring, integration and porting of existing software: working effectively with legacy code through continuous improvement, refactoring, and technology migration; provide re-usable components that can be shared between multiple repositories.
- Knowledge and application of software life-cycle tools and procedures: scrum/Kanban, issue tracking systems, Git, dependencies and build tools (Maven, Gradle).
- Technical advice and guidance: providing solutions to technical problems, and lead by example junior members of the team.
- Building Relationships - Showing appreciation for the ideas and contributions of others and encourages others to express their views, even if controversial. Understanding how individual differences bring added value to the Organization; promoting complementarities. Being able to put self in the shoes of others in order to understand their needs and interests.
- Working in Teams - Working well in groups and readily fitting into a team; participating fully and taking an active role in team activities. Cooperating constructively with others in the pursuit of team goals; balancing personal goals with team goals. Sharing and letting others participate in own work/project; encouraging team development.
- Demonstrating Accountability - Working conscientiously and reliably; delivering on promises. Taking responsibility for own actions and decisions. Readily admitting to mistakes.
- Learning and sharing knowledge - Keeps up to date within and outside own area of expertise. Shares knowledge with others. Develops creative ideas and comes up with innovative solutions to improve systems and performance.
- Communicating effectively - Demonstrates an ability to express and explain ideas in a convincing manner. Practises attentive listening and actively promotes mutual understanding. Makes effective oral presentations. Negotiates effectively.
- English spoken and written, with the ability to draw-up specifications and/or reports, and/or to make oral presentations.
- The ability to understand and speak French or an undertaking to acquire it.
Eligibility and closing date:
Diversity has been an integral part of CERN's mission since its foundation and is an established value of the Organization. Employing a diverse workforce is central to our success. We welcome applications from all Member States and Associate Member States.
This vacancy will be filled as soon as possible, and applications should normally reach us no later than 18.02.2020
Contract type: Limited duration contract (5 years). Subject to certain conditions, holders of limited-duration contracts may apply for an indefinite position.
These functions require:
- Work during nights, Sundays and official holidays, when required by the needs of the Organization.
Job grade: 6-7
Job reference: FAP-BC-AS-2019-102-LD
Benchmark Job Title: Computing Engineer
Please make sure you have all the documents needed to hand as you start your application, as once it is submitted, you will not be able to upload any documents or edit your application further