Posted May 23, 2018 - Requisition No. 67230
The Systems Applications team is responsible for developing and maintaining release tools for the thousands of engineers, product owners and business groups in our wide organization.
Release tools provide engineers with dynamic control of specific software functionality exposed for execution. It allows developers to define values which are used in the software code to determine a specific path of execution, and provides a framework to change the execution path at run-time by modifying these values. For example, a developer can register a boolean value with our tool, which will then be used in a software project so that code can be excluded from execution in the event that an unforeseen bug is discovered. This allows developers to manage software releases safely and securely in stages.
Another aspect of release tools is to empower the product owners and business groups to control the release of specific software features to manage customers’ experience. Sales teams use our tools to stagger the release of a feature from internal rollout to production wide rollout to all our clients.
We, the Systems Applications team, plan to create a new switch system which would provide the backbone infrastructure to the different variants of our release tools. It will provide an easy to use and unit testable interface, and will be accessible by applications running on any servers, VMs or containers on the cloud. We will build tools to manage the creation, change and deprecation of the switches based on the use case.
We are looking for senior software engineers who are enthusiastic about developing tools to serve application developers’ needs.