Developer Experience Engineer
Job Function Summary
The firm is building a team to develop and manage platforms for sophisticated quants and software engineers. This will be a functional team that works with software engineering teams and provides a platform and tools to develop, test, debug, and deploy software for Linux platforms.
The candidate will need to provide software engineers with a frictionless means of developing and testing all the components of their applications in a manner that is consistent across a development team, and from development through to production. The right candidate will be intimately familiar with Linux, whether run on a physical, virtual, or containerized environment. They should also understand means of empowering developers without compromising security.
The candidate will be responsible for building out common tooling that can be used by teams regardless of their development stack. These tools and workflows will enable local development, provisioning environments, linting and testing, managing dependencies and artifacts, debugging, and performance optimization.
The right candidate will have experience as a software engineer and a deep understanding of best practices in software development and SDLC processes. They should be familiar with a typical developers wish list and be able to come up with creative solutions that are repeatable, supportable, and secure.
The candidate will should also be familiar with managing and supporting Linux as a primary desktop environment for developers. This will include managing software deployments, patching, security, remote access, and user experience. Users may also need to work remotely and use virtualized desktops. Experience with cloud or containerized development environments such as AWS Cloud9 or Eclipse Che are a plus.
- Gather requirements from software development teams
- Develop a strategy for enabling software engineers to easily manage Linux Development environments without compromising security
- Develop a strategy for teams to manage their dependencies and easily onboard new developers
- Integrate with existing DevOps tools including source control, testing and integration tools, and deployment tools
- Develop strategy for managing Linux desktop environments at scale
- Develop a BCP strategy for developer environments and desktops
- Experience developing collaboratively on complex projects in Python
- Experience with source control and branching strategies
- Experience with continuous integration, unit, and functional testing
- Systems engineering knowledge, including understanding of Linux, security, and networking
- Familiarity Linux build automation, drivers, and patching
- Experience building pipelines for generating machine images or containers
- Configuration and automation tools, such as Chef, Ansible, or Salt
- Experience with containers and container orchestration
- Familiarity with dependency and artifact management
- Experience with DNS, DHCP, NFS, and NIS
- Experience with AWS, GCP, or Azure
- Experience with cloud based desktops
- Familiarity with cloud or containerized IDE like Eclipse Che or AWS Cloud9
- Experience with building, monitoring, and alerting on logs and metrics
- 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