Ulta Beauty is the largest specialty beauty retailer in the United States and the place for the true beauty enthusiast who gets butterflies as she shops for beauty and experiments throughout our store. We are the only one to provide our guests prestige, mass and salon products and services under one roof - All Things Beauty, All in One Place™. We put our guests at the center of all we do, committing to offer her unrivaled ways to be beautiful in an environment that provides the thrill of exploration and delight of discovery.
Ulta Beauty Ecommerce development team is currently seeking Lead Developer-API for development stream for the Ulta.com. You will work alongside talented architects, technical leads, software engineers, and quality engineers in our highly collaborative and fast paced environment where our goal is to design and implement the state of the art performance friendly ecommerce solutions in agile fashion. As a Lead Developer- API, you will focus on the Digital Store Of the Future Platform to design, develop, and promote API Proxies/Products using the API Gateway solutions to support the business requirements from various Lines of Business
CORE JOB RESPONSIBILITIES:
* Application Support - Assists in the investigation and resolution of issues relating to mobile native applications. Assists with specified procedures. * Development Testing - Performs the execution of given test scripts under supervision. Records results and reports issues. Develops an understanding of the role of testing within system development, as a tool for design improvement as well as a validation process. * Performance Management - Supervises individuals. Allocates routine tasks and/or project work. Provides direction, support and guidance as necessary, in line with individuals' skills and abilities. Monitors progress against agreed quality and performance criteria. Acts to facilitate effective working relationships between team members. * Problem Management - Investigates problems in systems, processes and services. Assists with the implementation of agreed remedies and preventative measures. * Programming/Software Development - Provides local or team-based standards for programming tools and techniques, including security guidelines, and the selection of appropriate development methods. Takes technical responsibility for all stages and/or iterations in a software development project, providing method specific technical advice and guidance to project stakeholders. * Release 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. * Requirements Definition & Management - Undertakes business requirements as directed, maintaining traceability back to source. Reviews operational requirements, problems, and opportunities, seeking effective business solutions through improvements in automated and non-automated components of new or changed processes. * Systems Integration - Assists in the software builds from software source code. Performs tests as defined in an integration test specification, records the details of any failures, and carries out fault diagnosis relating to simple failures, reporting the results of the diagnosis in a clear and concise manner.
* Lead the life-cycle of APIs from requirements gathering, design, development to deployment, and support across multiple versions * Lead API design/modelling using OpenAPI/Swagger * Displays high creativity and articulate, with the ability to make strategic decisions and participate in a fast-paced agile team environment. * Take ownership of tasks from start to finish, working with product owners to deliver requirements on target and schedule * Ability to lead and coordinate activities of a small team responsible for implementing, integrating, and providing support for API tools in multi-tiered and multi-platform environment * Lead cross-functional development efforts and can work with product management, IT security, Network Operation, and DevOps
REQUIREMENTS FOR CONSIDERATION:
* Bachelor's degree in Computer Science or related field or applicable work experience * 8+ years professional software development experience * Experience in building applications with Java 8 and JEE7 or above, Spring Frameworks and Extensions, opinionated bootstrapping frameworks such as Springboot (2.x) * Having exposure to reactive style of programming with Springboot (WebFlux), RxJava etc is a plus * Experience in using Design Patterns, Git, JUnit with mocking frameworks * Experience with Microservices architecture (Pattern, API Management ex: OAS, Security, Event Management ex: Apache Kafka) is desired * Hands on experience with CI/CD stack (Jenkins, BitBucket Linux shell scripting, SonarQube, Maven/Gradle) * Experience working with Application Servers (Tomcat & JBoss) * Knowledge of non functional aspects of JEE applications (DynaTrace / NewRelic / MAT / Sumologic / Splunk) * Knowledge of Containerization (Docker, Kubernetes) * Experience with working in a cloud environment (Google/Azure/AWS) and developing cloud native applications with 12-factor app principles and leveraging cloud platform services like serverless computing, event/message queues is desired * Experience with developing applications on NoSQL databases like MongoDB, Couchbase or Cassandra or in memory data stores like Redis cache is desired * Nice to have development experience in server-side scripting such as Node.js, React, PHP and HTML/Javscript * Strong leadership skills in accountability and customer focus * Proactive and able to catch issues before failures * Experience interacting with business users and vendors including vendor management * Strong analysis/troubleshooting skills * Excellent communication skills; feels comfortable working with non-technical business partners * Work with production support and project consultants in an onshore / offshore model * Minimal travel required (training/conferences)