Overview
We believe that “through sports we have the power to change lives,” and we are doing it every single day. adidas is one of the largest direct-to-consumer ecommerce companies in the world, and we happily take on the challenge of delighting billions of visitors.
As individuals: we are confident and creative. As a team: we are collaborative and greater than the sum of our parts.
We deeply value diversity and inclusion because we cherish each of our teammates and the breadth of perspectives they bring to the table. “Digital is a team sport,” and it takes the entire team to create the online store for the best sports brand in the world.
PURPOSE AND OVERALL RELEVANCE FOR THE ORGANIZATION
Part of Digital Tech Web & Mobile Services team and with focus on Commerce Capabilitites, develops information systems by designing, developing, and installing software solutions.
As part of the development of our Commerce.Next product, we are looking to onboard a new colleague into the area of Availability and Fulfillment, this person will be primarily responsible for our shipping API (Java). This API integrates with several external services like diverse delivery services, couriers and pick-up points. Just imagine that every time a consumer places an order on adidas.com, this API will be enabling them to know how they can receive their items and then where and when their order will be delivered.
Aside from the inherent relevance of this area, this is a greenfield project in the adidas digital tech space, with the first commit having been just a couple months ago so you have a lot of room for problem-solving in an autonomous yet collaborative way.
In the adidas digital tech space we are using the latest technologies and tools, and enable ownership, betterment and curiosity amongst our teams. For this role, we are expecting you to be a great JAVA engineer who is very familiar with SpringBoot. Bonus points for experience with Reactor.
Key Responsibilities
Specialist advice
- Actively maintains recognised expert level knowledge in one or more identifiable specialisms.
- Provides definitive and expert advice in their specialist area(s).
- Oversees the provision of specialist advice by others, consolidates expertise from multiple sources, including third party experts, to provide coherent advice to further organisational objectives.
- Supports and promotes the development and sharing of specialist knowledge within the organisation.
Emerging technology monitoring
- Supports monitoring of the external environment and assessment of emerging technologies to evaluate the potential impacts, threats and opportunities to the organisation.
- Contributes to the creation of reports, technology road mapping and the sharing of knowledge and insights.
Systems development management
- Defines systems development projects which support the organisation’s objectives and plans.
- Selects, adopts and adapts appropriate systems development methods, tools and techniques selecting appropriately from predictive (plan-driven) approaches or adaptive (iterative/agile) approaches.
- Ensures that senior management is both aware of and able to provide the required resources.
- Facilitates availability and optimum utilisation of resources.
- Monitors and reports on the progress of development projects, ensuring that projects are carried out in accordance with agreed architectures, standards, methods and procedures (including secure software development).
- Develops road maps to communicate future development activity.
Systems design
- Designs components using appropriate modelling techniques following agreed architectures, design standards, patterns and methodology.
- Identifies and evaluates alternative design options and trade-offs.
- Creates multiple design views to address the concerns of the different stakeholders of the architecture and to handle both functional and non-functional requirements.
- Models, simulates or prototypes the behaviour of proposed systems components to enable approval by stakeholders.
- Produces detailed design specification to form the basis for construction of systems.
- Reviews, verifies and improves own designs against specifications.
Software design
- Designs software components and modules using appropriate modelling techniques following agreed software design standards, patterns and methodology.
- Creates and communicates multiple design views to identify and balance the concerns of all stakeholders of the software design and to allow for both functional and non-functional requirements.
- Identifies and evaluates alternative design options and trade-offs.
- Recommends designs which take into account target environment, performance security requirements and existing systems.
- Reviews, verifies and improves own designs against specifications.
- Leads reviews of others’ designs.
- Models, simulates or prototypes the behaviour of proposed software to enable approval by stakeholders, and effective construction of the software.
- Verifies software design by constructing and applying appropriate methods.
Programming/software development
- Designs, codes, verifies, tests, documents, amends and refactors complex programs/scripts and integration software services.
- Contributes to selection of the software development approach for projects, selecting appropriately from predictive (plan-driven) approaches or adaptive (iterative/agile) approaches.
- Applies agreed standards and tools, to achieve well-engineered outcomes.
- Participates in reviews of own work and leads reviews of colleagues’ work.
Database design
- Develops and maintains specialist knowledge of database and data warehouse concepts, design principles, architectures, software and facilities.
- Assesses proposed changes to object/data structures, in order to evaluate alternative options.
- Implements physical database designs to support transactional data requirements for performance and availability.
- Implements data warehouse designs that support demands for business intelligence and data analytics.
Testing
- Accepts responsibility for creation of test cases using own in-depth technical analysis of both functional and non-functional specifications (such as reliability, efficiency, usability, maintainability and portability).
- Creates traceability records, from test cases back to requirements.
- Produces test scripts, materials and regression test packs to test new and amended software or services.
- Specifies requirements for environment, data, resources and tools.
- Interprets, executes and documents complex test scripts using agreed methods and standards.
- Records and analyses actions and results and maintains a defect register.
- Reviews test results and modifies tests if necessary.
- Provides reports on progress, anomalies, risks and issues associated with the overall project.
- Reports on system quality and collects metrics on test cases.
- Provides specialist advice to support others.
System integration and build
- Provides technical expertise to enable the configuration of software, other system components and equipment for systems testing.
- Collaborates with technical teams to develop and agree system integration plans and report on progress.
- Defines complex/new integration builds.
- Ensures that integration test environments are correctly configured.
- Designs, performs and reports results of tests of the integration build.
- Identifies and documents system integration components for recording in the configuration management system.
- Recommends and implements improvements to processes and tools.
Availability management
- Contributes to the availability management process and its operation and performs defined availability management tasks.
- Analyses service and component availability, reliability, maintainability and serviceability.
- Ensures that services and components meet and continue to meet all of their agreed performance targets and service levels.
- Implements arrangements for disaster recovery and documents recovery procedures.
- Conducts testing of recovery procedures.
Release and deployment
- Assesses and analyses release components.
- Provides input to scheduling.
- Carries out the builds and tests in coordination with testers and component specialists maintaining and administering the tools and methods – manual or automatic – and ensuring, where possible, information exchange with configuration management.
- Ensures release processes and procedures are maintained.
Application support
- Maintains application support processes, and checks that all requests for support are dealt with according to agreed procedures.
- Uses application management software and tools to investigate issues, collect performance statistics and create reports.
Relationship management
- Implements stakeholder engagement/communications plan.
- Deals with problems and issues, managing resolutions, corrective actions, lessons learned and the collection and dissemination of relevant information.
- Collects and uses feedback from customers and stakeholders to help measure effectiveness of stakeholder management.
- Helps develop and enhance customer and stakeholder relationships.
KEY RELATIONSHIPS
- Tech organization
- Respective business function (GOPS, Finance, HR, Brand Marketing, Wholesale/Retail)
- HR Management
- Controlling
Requirements And Criteria
- 7-10 years of experience in IT as a Software Engineer, with a focus on optimal solutions to complex problems
- Strong JAVA engineer familiar with SpringBoot. Experience with Reactor would be a plus!
- Experience in coaching and leading more junior colleagues, team management experience is a plus
- Familiarity with microservices approach and the JavaScript ecosystem (since a lot of our services are JS-based)
- Proficient spoken and written command of English
- Strong understanding & knowledge of regional and global market landscape and the respective customer
- Managed critical elements and cross functional and regional projects
What We Can Offer
- 12-month contract to begin with and then, indefinite contract
- Choice of Macbook or Windows laptop
- Company mobile smartphone
- Flexibility in work-from-home and office (hybrid model)
- 28 paid holidays per year
- Online and offline education resources, like Udemy and LinkedIn Learning
- On-site gym
- Discounted lunch and snacks when in the office
- Employee discount on adidas products
- Pension plan
- Collective insurance discount
- Commuting allowance or public transportation subscription
- Stock purchase program