Sr. Software Engineer - 1495992T

Beaverton-OR
 Job-ID :   1495992T 
  Category :  Engineers 
  Position Type : Contract Remote 

Job Description

Sr. Software Engineer - Consumer and Marketplace Engineering - Shop Capabilities - Cart Services

Job Description

As a Sr. Software Engineer on the Shop Capabilities team in our Consumer and Marketplace Engineering organization, you will play a critical role designing and building APIs and microservices for the cloud platform central to Client’s multi-billion dollar eCommerce business. Our services provide cart and wishlist capabilities, capture consumer orders from and provide shipping and fulfillment choices to a variety of platforms that provide consumer shopping capabilities, including the Client SNKRS App, Client App, and Client.com. As a Sr. Software Engineer you will be expected to provide technical implementation of the highest quality and that meets all deliverables within the constraints of demanding schedules. You will deliver systems that serve consumers worldwide. In addition to participating in design sessions you will work with Product to drive clarity on requirements and craft implementation plans. You will encourage innovation by learning new technologies and creating prototypes to share new technical approaches with the team. You will apply best practices and contribute to technical discovery to inform decisions on architecture. You will build systems for high scalability, high performance, and high availability. You must be an effective communicator with the ability to engage and influence others through optimism, self-assurance and fact-based recommendations.

Responsibilities

  • Participate in Scrum or other Agile processes with the team
  • Contribute code to the team’s business deliverables
  • Develop software libraries and utilities
  • Design RESTful APIs, participate in design sessions, and help create implementation plans
  • Resolve technical issues
  • Encourage innovation by learning new technologies and building prototypes
  • Review code and provide feedback to teammates
  • Evaluate technical decisions and their impact on the architecture
  • Design and build for high scalability and high performance
  • Design and run performance tests on individual components and entire systems using tools like Gatling Hive
  • Work through dependencies and integrations with other engineering teams
  • Partner with engineering leads, architecture, and product to understand requirements, define technical options, provide estimates of effort and risk, and evaluate technical feasibility.
  • Work with distributed systems in a cloud-based environment (AWS preferred) with high transaction volumes
  • Practice full DevOps by deploying code through the CI/CD process to production and monitoring service operation. Support services during on-call PagerDuty rotation
  • Instrument service metrics and logging and create monitoring dashboards in tools such as Splunk, SignalFx, DataDog, New Relic, Grafana stack, etc.
  • Communicate effectively both verbally and written in a variety of settings and tailor communications to the target audience
  • Five percent or less domestic and international travel

Qualifications

  • Bachelor's degree in Computer Science, Information Systems, or other relevant field
  • Relevant professional experience in lieu of a degree
  • 3-7 years’ experience with microservice architecture, domain driven design, and implementing RESTful APIs using Java. Java 11+ preferred
  • Work with distributed systems with high transaction volumes in a cloud-based environment (AWS preferred)
  • Solid foundation in data structures, algorithms, software architecture, object-oriented analysis and design, functional programming, and software design patterns
  • Experience with Scrum or other Agile development processes
  • Familiar with NoSQL data stores and data modeling for security, reliability, availability, maintainability, and performance (Redis, DynamoDB etc.)
  • Experience working in a CI/CD environment with related tools (Jenkins, CircleCI, TeamCity, etc.)
  • Strong written and verbal communication skills with the ability to communicate effectively in a variety of settings and tailor communications to the target audience
  • Experience with build tools (Gradle etc.), dependency management, unit testing, static analysis, automated integration testing
  • Knowledge of java test frameworks, tools, and libraries (Junit, TestNG, Wiremock, Spock, etc.)
  • Experience with full DevOps model including implementing, deploying, monitoring and operating services at scale
  • Experience with virtualized compute (EC2 etc.) and containers (docker, ECS, Kubernetes)
  • Experience running performance tests with tools such as Gatling Hive, analyzing results, and tuning
  • Experience with both synchronous (threaded) and asynchronous server-side Java (CompleteableFuture, ForkJoinTask, Reactive Java -- RxJava, ReactiveX, WebFlux, Spring Project Reactor or similar)
  • Experience building monitoring dashboards in tools like SignalFx, DataDog, and Splunk, or open-source alternatives like Elasticsearch/Logstash/Kibana, Grafana
  • Knowledgeable with version control systems (Git) and issue tracking tools (JIRA)
  • Willing to be on-call in a PagerDuty rotation
  • Python programming and shell (bash etc.) experience a plus
  • A track record of solving problems and getting things done in a fast-paced, ever-evolving environment
  • SpringBoot and Spring framework experience is a plus
  • eCommerce experience is a plus
  • Experience with Global Network Traffic Management and routing configuration including Latency Based Routing, Geo DNS, Geo-proximity, and Weighted Round Robin is a plus
  •  

Chat with us