Sr. Software Engineer (Infrastructure)
The Senior Software Engineer, Infrastructure is a key member of infrastructure product development squads in planning, scoping, solution architecting, software design, and implementation based on functional and performance capability requirements, leveraging cloud-native, commercial, and open source tools and frameworks to solve complex business needs. These solutions touch a wide range of functional areas including, but not limited to compute platforms, autonomous scaling, and continuous compliance. This role will also collaborate with Software Engineers, Product Owners, and others across teams and business areas to influence solutions and platforms across the organization.
- Build solutions for problems of sizable scope and complexity that have been successfully deployed to customers/users
- Champions Infrastructure as Code (IaC); provides thought leadership; establishes enterprise-level infrastructure patterns.
- Builds and enhances Continuous Integration and Delivery (CI/CD) pipelines.
- Regularly reviews existing systems, policies, and practices, while identifying solutions that enhance service delivery efficiency, and enhance the current environment.
- Mentors less experienced software engineers. Collaborates with product engineering leaders to find innovative solutions for moderately complex problems.
Responsibilities :
- Writes code that establishes and enhances frameworks, typically for software programs and systems that have little or no precedent.
- Reviews code for the design, testability and clear usability
- Develops specifications for assigned components, projects or fixes
- Builds solutions that scale and perform
- Participates in project proposal, architecture and design. Contributes to architecture design and implementation of assigned projects and may lead in the effort.
- Oversees technical maintenance. Performs troubleshooting for systems that tend to be large and highly complex.
- Design, development, documentation and/or testing.
- Applies experience to resolve a variety of complex issues
- Decisions and actions regularly have a moderate influence on the work of team members, other teams or assigned projects
- Identifies problems and opportunities and recommends the development of solutions
- Typically owns software programs and multiple components within the team
- Serves as a high level technical resource and "go-to" person for less experienced software engineers
- Makes routine and non-routine decisions on technical issues, with limited guidance from leader
Basic Qualifications :
- 5+ or more years of experience in software engineering, SRE, or DevOps roles
- Intermediate to advanced coding experience with the one or more of the following programming languages: Python, Java, Ruby, C/C++, Go
- You should know Object Oriented Design, common data structures, algorithms that go along with them, and how to test your code
- Advanced Experience with Amazon Web Services-based infrastructure and management including, but not limited to Route 53, ALB, EC2, CloudFormation, CloudWatch, Lambda, VPC, ECS, EKS, IAM, S3, etc
- Expertise in configuring, deploying, tuning, and supporting web frameworks at scale on Linux and container platforms
- Experience writing, maintaining and deploying RESTful services
- Experience with web caching and load balancing technologies such as HAProxy, Cloudfront, Varnish, and Nginx
- Detailed knowledge of core internet and networking protocols including, but not limited to TCP/IP, DNS, and HTTP
- Proficient working with Terraform, Ansible, or other configuration management tools
- Proficient with version control systems (Git, TFS, SVN)
- Experience managing site content and configuration via CDN providers
- Experience integrating with CI/CD platforms and tool chains such as TeamCity, Jenkins, and Gitlab
- Experience applying security best practices to application, system, and public cloud infrastructure
- Experience integrating with commercial and open source monitoring and telemetry platforms
Required Education :
- BS Computer Science or related technical discipline or its equivalent