Infrastructure Software Development Lead
The Linux Platform Engineering team is responsible architecting and engineering the cloud and on-premise Linux platforms that run the bulk of the firms compute workloads. They work with various teams to enable engineers, quants, researchers, and developers to best leverage our Linux and related platforms within the firm.
This team is developing tools for automating the configuration, deployment, management, and monitoring of applications, in accordance best practices and firm policies. We are looking for a senior software engineer, who has significant experience developing production applications and frameworks, to provide software development leadership. The candidate will help define software architecture and testing practices, perform code reviews, and act as a mentor to more junior developers. This individual should also be familiar with agile practices including managing backlogs and sprints.
The candidate must be fluent in different coding paradigms such as object oriented, asynchronous, and functional programming. The candidate must have in depth knowledge of Python including proper implementations of data structures and algorithms, as well as performance optimization. The right candidate will have significant experience working on large projects, including developing REST APIs and loosely coupled services. The candidate should be familiar with micro-service architectures including containerized and serverless architectures, as well as service discovery mechanisms.
The candidate should have a strong understanding of systems infrastructure, including the Linux system administration, configuration management, networking, storage, security, and performance tuning. Familiarity with cloud platforms and container orchestration platforms is a big plus. The candidate needs to be able to integrate with monitoring and alerting solutions, including experience developing applications that generate meaningful logs and metrics.
Familiarity with workflow and scheduling tools is a big plus as is experience managing data pipelines, including data ingest, replication, and transformation.
* Provide software engineering leadership to an infrastructure engineering team
* Set development standards inline with other engineering teams around source control, testing, and continuous integration for both applications and infrastructure as code
* Architect a framework and tools to enable consistent delivery, management, and monitoring of applications and infrastructure across cloud and on premise platforms in an automated and repeatable manner
* Provide guidance to other teams as they develop strategies for automating applications and platforms that run on Linux
* Integrate automation with monitoring platforms to enable automated health checks, remediation, and fail over
* Experience developing collaboratively on complex projects in Python
* Experience with continuous integration, unit, and functional testing
* Systems engineering knowledge, including understanding of Linux, security, and networking
* Automated creation of Linux images and containers using internal repositories and tools like Packer
* Configuration and automation tools, such as Chef, Puppet, Ansible, or Salt
* Experience developing against cloud provider and platform APIs
* Experience with infrastructure templating tools such as CloudFormation and Terraform
* Experience with building, monitoring, and alerting on logs and metrics, and triggering actions based on them
* Experience with workflow automation and pipe-lining tools
* Familiarity with micro-service architecture and service discovery
* Excellent written and verbal communications
* Excellent troubleshooting and analytical skills
* Self-starter able to execute independently, with light supervision
* Ability execute on a deadline and under pressure