Senior Software Engineer (Back End)

  • Adidas
  • CN - 31 - Shanghai
  • 2 days ago

Company Name: Adidas

Location: Shanghai, 31, CN

Overview

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

Requisite Education and Experience / Minimum Qualifications:

    • Four-year college or university degree with focus on Business Administration or IT or related areas, or equivalent combination of education and experience
    • Proficient spoken and written command of English
    • At least 7-year experience in IT
    • 5 years of experience in relevant area
    • 2 years of experience in team management
    • Strong understanding & knowledge of regional and global market landscape and the respective customer
    • Managed critical elements and cross functional and regional projects

 

Technology stack

  • Focus on scalability and resilience
  • Java or other object-oriented language. Node.JS/Typescript are plus
  • Spring/Spring Boot, SQL, Redis.
  • MVC, concurrency and other Design Patterns/Data Structure
  • Hands on experience developing backend for Web Applications
  • Web technologies (HTTP/S, JavaScript, JSON, etc.).
  • RESTful Microservices Architecture
  • CICD and DevOps principles (Docker and Kubernetes)
  • Monitoring Tools: Kibana, Grafana