What are the responsibilities and job description for the application developer II position at Starbucks?
The Core Infrastructure Engineering team’s focus is building massively scalable full stack infrastructure for Starbucks owned, licensed and franchise stores. This role will concentrate on building infrastructure automation leveraging a declarative GitOps approach across multiple infrastructure domains. Help us extend and leverage our capabilities across network, compute, virtualization and containerized functions. Prior experience with full stack automation, CI/CD, Git, Python, Golang and Kubernetes are vital. Familiarity with cloud native design patterns, edge computing solutions, and API development are highly desirable.
Responsibilities and essential job functions include but are not limited to the following:
Technical Design and Implementation
- Develops software solutions to business problems. Leverages established design patterns and coding standards. Builds solutions that are secure, durable, scalable, accessible, and self-healing.
- Participates in the solution design process: requirements gathering and backlog refinement, shapes and guides systems approach, helps with project initiation, contributes to functional design and development. Provides transparency in approach and progress.
- Automates test coverage per platform capabilities and requirements. Establishes and maintains continuous build and integration testing on applicable platforms and assists with manual system and integration testing efforts.
- Operates in both waterfall and Agile Software Development Lifecycle (SDLC) processes and methodologies.
Platform Stewardship
- Partners with cross functional teams, such as Infrastructure, Security, Architecture, QA and key Development teams, to drive designs and solutions to ensure compliant, secure, and supportable solutions.
- Deepens vendor relationships to understand and influence vendor product offerings and roadmaps, improves support engagement, and gains insight into technology trends.
Production Support for application components
- Fulfills responsibilities for on call support for the application components.
- Assists with the creation and reporting of operational Key Performance Indicators (KPIs) on items such as application performance.
- Creates and maintains documentation supporting training, deployment, and operational processes.
Basic Qualifications
- 2-3 years of professional industry experience with software development
- Bachelor’s degree in Computer Science or related field
- Knowledge and experience designing and developing complex software systems.
- Working understanding of application architecture, infrastructure, security concepts, and technical implementation.
- Thorough understanding of relevant platform and applications, including established APIs, system activity components, process flows, underlying data models, business logic, and application configuration.
- 1-2 years of experience in Go and/or Python development.
- Ability to successfully work remotely while balancing multiple priorities and meeting deadlines.
Preferred Qualifications
Technical Proficiency
- Aptitude and eagerness to investigate and learn new technologies and trends as they become relevant for the business and our platforms.
- Ability to write and value high quality, reusable software with minimal defects.
- Ability to work directly with users to understand, diagnose, and propose solutions to their problems.
Domain Proficiency
- Experience in designing and developing relevant enhancements on top of industry COTS (Commercial Off the Shelf) applications that differentiate and provide competitive advantage.
- Knowledge of business context and trends, as well as the business customers’ opportunities. Awareness of the functional aspects of the solution.
- Capable of developing and deploying cloud-native software and infrastructure (AWS or Azure) in an automated fashion.
Interpersonal Skills
- Shows strong analytical, problem-solving, and decision-making skills. Effectively uses facts and data to build support for solutions across teams and stakeholders.
- Capable of working either independently on tasks or as a collaborative unit as best fits the problem at hand.
- Ability to negotiate priorities, approach, design and ideas with team members and customers.