KX is actively looking for an experienced Lead Software Developer in System Test to join our R&D team. This is an excellent opportunity to work on platform and solutions with our leading time-series database and work on a team whose mission is to improve our customers’ experience in any way we can.
We are looking for an experienced test framework designer and Python developer focused on System-level testing including resiliency, performance, horizontal scalability (perf@scale), interoperability and security. You’ll be the Tech Lead for the new centralized QA team supporting our streaming analytics platform products running in the cloud, on-premises, and as SaaS. KX software supports mission-critical systems in capital markets, manufacturing, energy & utilities, and telecommunications industries.
KX products are built on top of our kdb+ database, which is the world’s fastest time-series database, written in the q programming language.
KX is enhancing our platform offering with emphasis on ease-of-use, interoperability, and cloud. The focus includes ease of deployment (Kubernetes, Helm charts), ease of use (no-q / low-q IDE), and ease of interoperability (SQL, Python interfaces). We work with all the major cloud providers.
Quality is a team sport. The agile development teams have excellent quality focus, developing automated CI test cases as they go. The new centralized QA team will complement this by developing and executing test frameworks to System Test the KX products. Longer-term, we are likely to embed QA folk in the scrum teams. The legacy products also have a vast set of regression test cases that need to be automated – perhaps by building parsers to automate them in a test framework.
Our R&D teams are based in Belfast, Budapest, Dublin, London, Newry, New York, Mississauga (Toronto GTA), and Ottawa as well as individual contributors in other locations. You’ll be reporting directly to the VP of QA, who is based in Dublin.
On a day-to-day basis, you will:
- Be the QA System Test automation technical lead tasked with improving the quality of the KX product set.
- Be a key active participant in our continuous improvement journey.
- Your primary focus will be the design and development of automated test frameworks where necessary, probably in Python, and leveraging available FOSS or 3rd party tools where possible in the areas of:
- Resiliency testing: chaos engineering, fault injection, HA failover, DR.
- Some vertical markets are 24×7 with requirements for zero downtime and no data loss (RPO of 0).
- KX Insights leverages Kubernetes, Helm Charts, etc., so experience with these technologies is advantageous.
- Scalability testing and performance testing at scale.
- KX products deal with enormous data flows, that can exceed 150TB a day, and diverse query/analytics workloads ranging from tens to many thousands of queries per second.
- Different vertical markets have different database schema and data processing requirements, from trivial 3-4 column schemas in some industrial automation or IoT settings, to 1,000-1,500 column schemas in some Telco environments. We need to test them all. Automated, of course.
- Different vertical markets will have different industry benchmarks, the execution of which should be automated. This benchmarking role is likely to be a separate specialist position.
- KX products interface with a vast range of industry standard and customer specific applications. Everything from Java, Python, C#, C++, and q APIs to Kafka, Prometheus, Grafana, and many others.
- Presumably using standard pen test and fuzzing tools.
- Static code analysers, Valgrind, etc. are already used in the CI pipelines.
- Execute the automated test frameworks, analyse failures, and file good quality JIRA bug reports to facilitate efficient bug fixing.
- Maintain quality metrics.
- Report on release candidate quality, flagging potential release blockers or other concerns.
- Keep abreast of emerging QA tools and best practice.
- Work with Customer Success (Support) and Product Managers to understand what issues customers are reporting and plug any gaps in our test coverage.
- This is “shift left” feedback from Support (customers) to QA.
- A KPI for the QA team is the ratio of bugs caught prior to release versus bugs missed by QA and found by customers.
- We want to make that ratio as high as possible through continuous improvement.
- Work with Customer Success project teams to identify areas of concern.
- For example, ease of use, ease of integration with customer apps.
- Work with the various R&D teams and Product Managers to:
- Gain an understanding of products and components, and specifically any gaps in testing.
- Be aware of upcoming features and releases, and plan testing efforts accordingly.
- Review requirements for new features to help identify edge conditions and gaps.
- Provide “shift left” feedback from QA to dev on any areas of concern.
- For example, a particular microservice that needs improved resiliency.
- Ensure critical issues reported by QA are addressed in a timely manner.
- Determine how best to automate regression tests for existing products to improve release agility.
- Resiliency test existing products.
- You have an ability to understand complex systems quickly and thoroughly.
Have a customer-focused mentality
- Must be collaborative, working with the scrum teams and product managers to determine priorities and requirements.
- Computer science degree or equivalent.
- 8+ years’ experience in software development, with excellent knowledge of Python.
- Experience designing and implementing automated test frameworks for complex systems.
- System test experience around resiliency testing (chaos engineering, fault injection), distributed systems, testing performance at scale, and related tools and frameworks.
- Experience being the technical lead for a team of developers.
- Experience reporting out quality metrics and issues of concern to stakeholders.
- Knowledge of q/kdb+, qcumber.
- Experience with cloud platforms and SaaS.
- Experience with Kubernetes, Helm Charts.
- Experience with agile and scrum best practices.
- Experience with CI/CD pipelines, GitLab, Jenkins.
- Experience with microservices architecture.
KX is a division of First Derivatives (FD), a global technology provider with 20 years of experience working with some of the world’s largest finance, technology, retail, pharma, manufacturing and energy institutions. KX delivers the best possible performance and flexibility for high-volume, data-intensive analytics and applications across multiple industries.
Kdb+, the core platform underpinning FD’s software division KX, is the world’s fastest time-series database, deployed in markets as diverse as financial trading, space exploration, telecommunications, and Formula one racing. Kdb+ combines streaming, in-memory and historical data in a simple and unified platform. Since the company’s inception, KX’s singular goal has been to provide its customers with the fastest, most efficient, and most flexible tools for processing real-time and historical data.
Working with us:
At KX, you will embark upon a career with life-long learning at its core, facilitating rapid professional and personal development and the opportunity to design your own path. We support a variety of external training courses and accreditations and are truly passionate about our Mentor Program, through which our senior colleagues generously set aside personal time to coach and support others in their career progression.
We are delighted to have several active internal networks, social committees, and charity initiatives, designed with the intention of meeting the holistic needs of our employees and giving back to our communities.
Our employees are rewarded with numerous benefits as part of their employment, including (and subject to location):
- Competitive Salary
- Extensive Health Care Package
- Pension plan
- Employee Assistance Programme
- Annual leave increasing with service
- Group Life Protection Benefit
- Training opportunities
- FD Internal Network and Sports & Social Calendar