Staff Software Engineer

Apply Now

Company: Gap

Location: San Francisco, CA 94112

Description:

About the Role
Partner with Product Managers, Solution Architects and Engineering peers to define, analyze, estimate levels of effort to deliver at-scale solutions to meet business requirements. Gain an extensive understanding of key dependencies with external and internal teams to collaborate on cross-functional initiatives. Design, develop and operationalize services to meet business / functional requirements. Write well-written, self-documenting code that follows best practices and design patterns. Embrace and implement best-in-class DevOps practices with end-to-end "design, build and run" responsibilities with the aim of operating a low-touch Production environment. Responsible for a small to medium sized functional area, or a significant component of a functional area. Practice relentless automation, continuous integration, and continuous delivery. Maximize system uptime / availability and ensuring functional & performance SLAs are met and establish end-to-end monitoring and alerting for systems. Telecommuting permissible from any location within US.

Salary Range: $206,315 - 216,700
Employee pay will vary based on factors such as qualifications, experience, skill level, competencies and work location. We will meet minimum wage or minimum of the pay range (whichever is higher) based on city, county and state requirements.What You'll Do

1. Building Spring boot applications: building light weight Highly performant micro services with both with synchronous and Asynchronous communication and developing distributed micro services and building API documentation;

2. Front-end frameworks: AngularJS and React, Reactive programming, handling large scale applications using modularizations, integrating third party tools like AG Grid, and a good understanding of SCSS, Toast framework, and Object-oriented Java Scrips and type scripts;

3. Writing complex queries using aggregations and projections to handle nested business data structures in No SQL Database: MongoDB, and writing Highly optimized SQL queries to work with SQL Databases: Postgres, Azure SQL DB

4. Caching Solutions using Redis and Nginx: Handling similar data with different keys in cache to improve response times with very high TPS, Cache replication, selective cache refreshes, and ability to handle both in memory and distributed cache solutions;

5. Building data flows to handle high volumes of Async transactions using messaging frameworks like Kafka, RabbitMQ: Kafka Partitioning, offsets, working with Kafka console, creating Kafka topics and Consumer groups, Kafka Error handling and Retry logic, and defining and maintaining Queues and dead letter management using RabbitMQ;

6. Containerized Deployments: PCF round-robin algorithm, PCF load balancing, PCF blue green deployment, Auto scaling, and Azure Kubernetes PODS, ARGO CD;

7. CI / CD Pipeline: Jenkins and Github Actions, Buliding docker images, managing images in Azure container registry and developing build and deploying scripts using Groovy;

8. Testing Frameworks: Junit, Cucumber, Mockito. Jasmin, Protractor, selenium , JMeter;

9. Cloud Knowledge: Azure resource management, Key vaults, automation to scale up and down of the resources, Azure security (Service Principles, privileged Identity management), IAAS , PAAS services , Azure service bus, Azure Data factory, Azure blob storages, Azure log analytics; and

10. DevOps Support: Visual VM, heap analyzers, threads analyzers to troubleshoot and resolve technical issues, monitoring the application by building dashboards and alerts in New Relic and Splunk, GCP.
Who You Are

Bachelor's degree or foreign degree equivalent in Computer Science or related field and eight (8) years of progressive, post-baccalaureate experience in Software Development and Maintenance or the related role or job offered.

Similar Jobs