OBS! Ansökningsperioden för denna annonsen har
passerat.
Arbetsbeskrivning
Are you an experienced and motivated Java developer with a passion for delivering complex and compelling information systems end-to-end? Are you at ease with server-side technologies, and also with writing frontends in JavaScript and not afraid to optimise database queries, to dive into data integration processes or configure and debug messaging/eventing systems? Do you enjoy working in an agile environment and a self-organized team? Then join our team of talented software developers and contribute to application software for CERN's Corporate Information Systems. CERN, take part!
You will join the Business Computing (BC) group (https://fap-dep.web.cern.ch/business-computing) in the Finance and Administrative Processes (FAP) department (http://fap-dep.web.cern.ch/), where 80+ talented international colleagues are responsible for delivering information systems for all of CERN's business functions.
The product management-driven Business Computing Group is working for clients across the whole organisation (HR, Finance, Planning, Safety, Security, Purchasing, Logistics, and Accelerator Operations). The type of products under the group's responsibility range 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.
The Site Management product of the group is responsible for the maintenance and development of software solutions supporting the management of the site and the access of the site by externals and visitors (e.g. most recently we developed a new booking platform for the CERN visitor center "Science Gateway").
Functions:
As an Experienced Full Stack Software Engineer, you will join a self-organised agile product team and you will be responsible for maintaining, evolving, and re-engineering 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 for all layers of modern applications (e.g., frontend, backend, persistence, search, ETL, messaging, reporting etc.) together with your team.
- Configure third-party provided software systems and integrate them into the group's application infrastructure.
- Participate in and drive 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 and share knowledge with your peers.
- Provide user support including analysing user requirements, synthesizing, specifying and following-up on both software- and non-software related issues.
- Initiate and participate in team- and group-wide activities to improve the way we deliver software solutions and work with our partners.
Qualifications:
Master's degree or equivalent relevant experience in the field of computer science or a related field.
Experience:
- Demonstrated experience in the design and development (incl. build/test/deployment tool chain) of full stack enterprise solutions built on top of industry standards (e.g. Java, Spring Boot, JavaScript, React and similar frameworks).
- Deep understanding of modern software design and architecture principles and patterns, and their application in the Java and JavaScript ecosystems.
- Experience working with SQL, PL/SQL, database systems, and their integration with Java applications.
The following experiences/skills would be a plus:
- Experience in the maintenance and implementation of features on legacy applications.
Technical competencies:
- 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 and JavaScript ecosystems.
- 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 modelling.
- 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: working in lean-agile environments with methodologies such as Scrum or Kanban, issue tracking systems, Git, dependencies and build tools (Gradle, npm).
Behavioural competencies:
-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.
- Communicating effectively: expressing opinions, ideas and suggestions with conviction and in a logical/structured manner; keeping to the point. Demonstrating a pro-active approach to resolving differences; addressing issues of conflict constructively. Giving praise and providing honest and constructive feedback.
- Managing self: taking initiative beyond regular tasks and making things happen. Working well autonomously; taking on activities and tasks without prompting. Actively seeking feedback on own performance and taking steps to improve it.
- Demonstrating accountability: taking responsibility for own actions and decisions. Standing up for own opinion and actions with well substantiated arguments. Using openness and honesty to interact constructively with others.
- Learning and sharing knowledge: thinking "out of the box" and proposing fresh ideas, insights and methodologies. Actively pursuing own personal and professional development. Seeking feedback from colleagues and other stakeholders about ways of increasing competence.
Language skills:
Spoken and written English or French: ability to understand and speak the other language in professional contexts. Ability to draw-up technical specifications and/or scientific reports and to make oral presentations in at least one of the two languages.