senior application developer
ob Summary and Mission
Come be a part of one of the teams helping to shape the future of Starbucks digital commerce applications and leading our migration to global cloud-hosted microservices!You will work collaboratively as part of an Agile multi-team environment to identify, design, develop and deploy technology and process solutions establishing key Starbucks business capabilities and platform features, delivering strategic initiatives and operational improvements.
This job contributes to Starbucks success by developing cost-effective information technology solutions by creating new and modifying existing software applications that are more complex. Participates in requirements gathering activities. Reviews systems under development and related documentation. Creates more complex prototypes. Codes, tests, debugs, documents, and implements complex software applications. May coordinate activities of the project team and assist in monitoring project schedules and costs. Models and acts in accordance with Starbucks Guiding Principles.
Summary of Key Responsibilities
This role requires strong technical expertise, domain proficiency, platform depth, and leadership. Responsibilities and essential job functions include but are not limited to the following:
- Designs, develops, implements, documents, and tests new applications and APIs, or changes to an application subsystem. Codes, tests, debugs, documents, and implements complex software applications.
- Creates innovative prototypes to rapidly identify new business opportunities and leading edge technology implementation. Does so while ensuring deliverables are high quality and meet user expectations. Supports system and integration testing activities. Initiates design reviews for new applications and helps define and ensure team-wide adherence to software development standards.
- Collaborates with other team members and SMEs across Starbucks Technology to recommend new software development technologies and development processes. Coaches and mentors other less experienced team members. Performs cross- training and facilitates information sharing among team members.
- Working with application development leads, establishes, maintains and ensures compliance with standards for development, testing and documentation. Acts as a senior technical expert to analyze, consult, and recommend application software solutions based on the business needs.
- Participates in, leads and mentors others in requirements gathering and functional specification activities. May assist Functional Analysts in completing deliverables and translates business requirements and functional designs into technical designs. Assist with development of functional designs and resolving complex design issues. May act as senior technical expert to consult with and analyze the business needs.
- Resolves and helps mitigate production application issues and assists less experienced application developers as needed. Works with other business and technology teams to support resolution of end-user issues. Contributes to the documentation of production supportprocesses as required. Anticipates long term support issues and plans for corrective actions. May perform root cause analysis to identify permanent resolutions to software or business process issues.
Summary of Experience
- Analyzing, diagnosing and proposing solutions to user problems (6 years)
- Application development and programming experience (6 years)
- Providing support to various business applications (6 years)
- Working with process owners and identifying information technology solutions that enable business process improvements (4 years)
Required Knowledge, Skills and Abilities
- Advanced knowledge of C# and .NET Framework; additional benefit if you have working knowledge of a JVM-based language Java/Scala/Groovy/JRuby).
- Strong interpersonal skills, building an effective network of relationships inside and outside Starbucks.
- Ability to communicate clearly and concisely, both orally and in writing, as an advocate for technology solutions.
- Strong analytical and problem-solving skills, with proven ability to design pragmatic solutions.
- Mentoring, coaching and leading other technical team members.
- Strong proficiency in programming languages, databases, web technologies and RESTful API integration techniques.
- Demonstrated success working within an Agile development environment (Scrum/Kanban/Lean/XP).
- Deep knowledge of design patterns and OO design principles, including experience with Domain Driven Design.
- Advanced experienceworking with distributed systems and architectures, including SOA, SaaS, and microservices approaches; knowledge and experience with Reactive systems preferred.
- Experience with Cloud hosting technology stacks (SaaS/PaaS/IaaS) and service delivery models, including Microsoft Azure and Amazon Web Services.
- Significant experience with relational and non-relational, including NoSQL databases.
- Experience and working knowledge of automated CI\CD pipeline solutions