Lead Performance Engineer
The IBM Data Security team works to deliver leading edge products and solutions to help organizations analyze their data environment to make sound decisions to ensure regulatory compliance and improve their data security. The research and development in this area are critical to IBM and represent a huge opportunity for growth in terms of revenue uplift and technology advancement.
Data is the new currency. In an ever-increasingly connected world where the amount of data generated every day is exploding, in the wrong hands, this data can be used for malicious intent. As more systems are being built on the cloud, businesses are struggling to protect and monitor their data environment.
Your Role and Responsibilities
As a Lead Performance Engineer, you will have the opportunity to work across a number of products and teams, spanning the entire spectrum of software development (e.g. Research, Design, Prototype, Development, QA, Deployment, Support) to understand technical requirements and business objectives, to recommend solutions and assist in resolving performance and scalability gaps.
The Lead Performance Engineer is an integral part of the development team responsible for participating in the execution of procedures for ensuring the performance, scalability and quality of new features and releases of software. In this role, you will perform the assessment, planning and execution of experiments required for new functions/features under development; provide consultation to the development teams in the resolution of complex problems; develop new approaches, as well as enhancements, modifications, and corrections to existing code, performance testing methodologies and processes. You will be required to help enhance the performance automation pipeline to reduce manual efforts and increase the productivity and efficiency of the work done by the performance team.
You should have a strong passion for solving performance challenges related to databases and data storage technologies, working, and collaborating across a number of teams and products, developing highly efficient automation and deployment pipelines, experimenting with new technologies, and developing their hobby applications. You should have a keen interest in researching the latest data storage trends and practices.
In addition, you should have a relentless desire for continuous improvement by learning new things, being a champion of new ideas and continually exploring new perspectives.
You will be responsible for the following:
- Understand technical requirements and the overall business objectives of applications.
- Work with the development teams to resolve and correct performance or scalability issues.
- Develop and execute overall automated performance test plans to validate load, stability, scalability, and reliability standards of the application.
- Analyze performance test results, and work with development teams to identify performance bottlenecks and their root cause.
- Analyze, solve, and correct issues to provide problem resolution.
- Collaborate with members of the development teams to solve performance and scalability problems.
- Work with development to discuss and review database schema design and changes (this can be relational or NoSQL).
- Review and help tune SQL Statements and efficiently work with various tuning tools.
- Research and suggest database level configuration tuning.
- Responsible for ensuring peak system performance (such as throughput, latency, I/O, Memory, CPU).
- Monitor and troubleshoot performance and scalability issues in production.
Required Technical and Professional Expertise
- Hands-on experience with at least two programming/scripting languages. (i.e. Java, Golang, Python, Bash)
- Expertise in database performance, tuning, scalability.
- Experiences working in a development and production environments.
- Experiences with SDLC, database schema design.
- Working in an agile environment.
- Experience with continuous integration and continuous delivery practices and tools, e.g. Jenkins, Travis.
- Extensive knowledge and proficiency in tuning SQL.
- Proficiency with two or more well-known relational databases such as DB2 LUW, Oracle, SQL Server, MySQL.
Preferred Technical and Professional Expertise
- Proficiency with DB2 LUW Warehouse or similar relational databases.
- Willingness to learn and understand big data or NoSQL environments such as MongoDB or Hadoop.
- Comfortable with working with Linux and Kubernetes, including OpenShift.
- Experience in enterprise-related development and deployment (scalability, performance).
- The successful candidate is a self-starter who possesses a sense of task/issue ownership, is thorough in resolving difficult issues and work toward completions.
- The successful candidate is a team player who can work successfully with peers and different development and support team of varying technical levels in complex environments.
- A strong ability to multi-task and prioritize appropriately on-demand in a fast paced, highly dynamic environment is a must have skillset.