We are looking for a well-rounded developer who has experience in both development and architecture of software systems and who can think critically and creatively while producing performance reviews of newly developed software features. The ideal candidate must be self-directed and a fast learner, flexible enough to work on new technologies as well as legacy components. The ability to perform analysis of failure modes, discovery of failure conditions and validating recovery from failure will be important to success in this role.
- Adopt and expand current test infrastructure, testing environments, and custom Java test tooling and configured environment and work to build automation around current and future performance testing. This includes development of concurrent testing software using raw REST technologies like OkHTTP and Retrofit, Apache JMeter, and Selenium Grid.
- Provide coaching and a sounding board to other performance and reliability engineering professionals on ways to architect tests, test code, and setup environments in order to achieve specific feature performance analysis goals. Draw from previous work experience on creative ways to approach problems and how to configure environments that emulate real-world high-volume use patterns.
- Guide and assist engineering teams to bring prototype revisions that address identified performance concerns with software and evaluate the effectiveness of the new software at addressing the performance concern.
- Research emerging technology areas relevant to site reliability, performance automation, and application performance management.
- Give advice to the broader QA and software engineering team for which technologies the organization should consider adopting to expand upon current tooling.
- Interact with Support, Services, and Account Management professionals to advise and mitigate situations where customer configurations may push the known limits specific software features. Work with Services to arrive at creative solutions in the situations.
- 10+ years experience, or graduate degree and 6+ years experience, up to senior level of professional software development. BA/BS preferred in Computer Science or equivalent work experience.
- Demonstrated ability to develop both prototype and production code.
- Great communication and presentation skills.
- A deep understanding of Java, micro-service and REST API interaction, and web architecture is a requirement. Experience with containerized and highly distributed environments a plus.
- An understanding of enterprise software security, including RBAC and account definition, and LDAP account data models is required.
- An understanding of relational data models with in-depth experience with at least one relational engine (MySQL, SQL Server, Oracle, DB2, etc) is required. A successful application would be comfortable creating their own database schemas to house test data, test result data, and simulated user account information. Experience integrating relational tables with ORM or JPA systems is a plus.