Lead Software Engineer - iOS

Senior Software Engineer – iOS

 

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.

 

Purpose:


With millions of users we need to try to reach perfection. Each millisecond counts.

One way to reach this goal is through our mobile apps, one of our most important digital touchpoints. Our Mobile team is in continuous looking for creativity, perfection but also satisfaction.  We have the tremendous responsibility of creating the new, building premium experiences where the consumer is at the core of everything we do. But also having a lot of fun along the journey!

Everything we do within our mobile team creates an impact on millions of users around the globe.

Are you ready to live a once in a lifetime experience?

We are looking for an experience iOS Software Engineer to join our team of engineers in Zaragoza.

 

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 roadmapping 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. 

 

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.

 

If required: People Management / Resource Management: 

 

  • Is involved in recruiting process and proposes support for hiring decision and pre-selection of candidates.
  • 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.

 

Technologies used:

 

  • Languages: Swift
  • Container knowledge: Kubernetes, Docker
  • Database: Relational and non-relational
  • Agile Methodologies: Scrum/Kanban

 

Qualifications:

  1. 4-year college or university degree with focus on Business Administration or IT or related areas and experience.
  2. Good spoken and written command of English.
  3. Hands-on with latest Frontend technologies.
  4. At least 7 years of experience in IT.
  5. 5 years of experience in relevant area.
  6. 2 years of experience of team management.
  7. Strong understanding of regional and global market landscape and respective customer.
  8. Managed critical elements and cross functional/regional projects.

 

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.

Location:  Zaragoza
Country:  Spain
Team:  Information Technology
Brand:  adidas
Position Type:  Full time
Number:  166670