Software Engineer – Backend (Node.js)
At adidas, our love for sport drives who we are and what we do. But just as a ball is more than leather and thread, and a show more than padding and plastic, we are bigger than our products. We don't just work to create faster shoes and lighter fabrics. We strive to help athletes everywhere perform their best. We believe that it's hard work inventing the future of sport, and that's why we love it; that when you push your limits, you make it possible for others to push theirs.
We believe that through Sport, we have the power to change lives.
To change lives, we have to create direct relationships with consumers and the best way to accelerate building direct relationships is through Digital.
One way to reach this goal is through Mobile apps designed inside of adidas, where the backend and DevOps team supports performance and quality of the apps, ensuring security for the user as well as inspiring and empowering them with different features.
With millions of users we need to try to reach perfection. Each millisecond counts.
We are looking for an experienced Software Engineer to join our team of engineers in Zaragoza. As a member of our team you will use your experience as a software developer to improve and extend our backend solution based on microservices that support millions of users constantly.
- Actively maintains knowledge in one or more identifiable specialisms.
- Provides detailed and specific advice regarding the application of their specialism(s) to the organization’s planning and operations.
- Recognizes and identifies the boundaries of their own specialist knowledge.
- Collaborates with other specialists, where appropriate, to ensure advice given is appropriate to the needs of the organization.
Emerging technology monitoring
- Supports monitoring of the external environment and assessment of emerging technologies to evaluate the potential impacts, threats and opportunities to the organization.
- Contributes to the creation of reports, technology road mapping and the sharing of knowledge and insights.
Requirement and Definition Management
- Defines and manages scoping, requirements definition and prioritization activities for small-scale changes and assists with more complex change initiatives.
- Follows agreed standards, applying appropriate techniques to elicit and document detailed requirements.
- Provides constructive challenge to stakeholders as required.
- Prioritizes requirements and documents traceability to source.
- Reviews requirements for errors and omissions.
- Provides input to the requirements base-line.
- Investigates, manages and applies authorized requests for changes to base-lined requirements, in line with change management policy
- 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 behavior of proposed software to enable approval by stakeholders, and effective construction of the software.
- Verifies software design by constructing and applying appropriate methods.
- 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.
- 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.
- Reviews requirements and specifications and defines test conditions.
- Designs test cases and test scripts under own direction, mapping back to pre-determined criteria, recording and reporting outcomes. Analyses and reports test activities and results.
- Identifies and reports issues and risks associated with own work.
- System Integration and Build
- Defines the software modules needed for an integration build and produces a build definition for each generation of the software.
- Accepts completed software modules, ensuring that they meet defined criteria.
- Produces software builds from software source code for loading onto target hardware.
- Configures the hardware and software environment as required by the system being integrated.
- Produces integration test specifications, conducts tests and records and reports on outcomes.
- Diagnoses faults and records and reports on the results of tests.
- Produces system integration reports.
Release and deployment
- Uses the tools and techniques for specific areas of release and deployment activities.
- Administers the recording of activities, logging of results and documents technical activity undertaken.
- May carry out early life support activities such as providing support advice to initial users.
- Identifies and resolves issues with applications, following agreed procedures.
- Uses application management software and tools to collect agreed performance statistics
- Carries out agreed applications maintenance tasks.
If required: People Management / Resource Management:
- May be involved and gives some input on hiring Transition decisions
- Ensures appropriate leadership skills are present at every level through creating a motivational and supportive work environment in which employees are coached, trained and provided with career opportunities through development
- Allocates the different work to the respective employees considering experience, complexity, workload and organizational efficiency
- Continuously monitors and evaluates team workload and organizational efficiency with the support of IT systems, data and analysis and team feedback and makes appropriate changes to meet business needs.
- Provides team members/direct reports with clear direction and targets that are aligned with business needs and GIT objectives
- Languages: Typescript
- Frameworks: NodeJS, ExpressJS
- Container knowledge: Kubernetes, Docker
- Database: Relational and non-relational
- Agile Methodologies: Scrum/Kanban
- In-depth knowledge of test automation tools
- 4-year college or university degree with focus on Business Administration or IT or related areas and experience.
- Good spoken and written command of English.
- Hands-on with latest Frontend technologies.
- At least 5 years of experience in IT.
- 2 years of experience in relevant area.
- 1 year of experience of team management.
- Understanding of different cultures.
- Participated in projects with people from other functions/markets
To be the best sports company in the world, you need the best talents within your teams. If you are looking for growing professionally within adidas, we are happy to receive your application.