Percona is looking for a flexible and efficient C/C++ Software Engineer to join its Open Source Software Development team (either MySQL, MongoDB or PostgreSQL team). You will work from your home office, using online tools and resources to contribute to a fast moving and high quality development environment for Percona and its customers. Travel approximately once per year for meetings. Access to a reliable high-speed internet connection is required. Flexible work hours. Laptop &Internet access provided.
What You Will Do:
- Diagnose and fix defects in Percona products
- Assist in the design and implementation of improvements to the Percona Server
- Perform periodic source code merges from other open source repositories
- Develop test cases for continuous integration deployment
- Participate in code and design reviews
Your Experience:
- Bachelor's degree in Computer Science or a related field, or equivalent experience
- Ability to speak, listen and write effectively in fluent English
- Minimum 3+ years of experience in C/C++ development and object oriented design
- Basic understanding of SQL databases and ACID transaction processing
- Experience with client/server or distributed network communication systems
- Experience with high concurrency threading models, atomics, and locking primitives
- Knowledge of various programming and scripting languages such as BASH, Perl, and Python
- Proficiency with tools like gdb and strace
- Experience with git, github, and source code management methodologies
What Will Make You Stand Out:
- Knowledge of DBMS internal algorithms such as those used in query optimiser, B-tree indexing, multiversion concurrency control, ARIES crash recovery, and others
- Knowledge of compression and encryption algorithms and techniques
- Knowledge of high-performance algorithms on modern multicore hardware
- Knowledge of Open Source software concepts and community
- Experience with Continuous Integration and Continuous Delivery tools such a Jenkins, CircleCI, and Travis
- Experience with issue tracking, communication, and information sharing tools such as JIRA, Launchpad, Confluence, Zendesk, G-Suite, Slack
- Experience/familiarity with various Linux distribution packaging systems
- Experience with virtualization and containment tools such as OpenVZ, KVM, VMWare, VirtualBox, Docker, Kubernetes, etc
- Experience in Linux systems administration, including suitable expertise with file systems, hardware, and networking
- Success working in a distributed environment where e-mail, Slack and voice calls are the only interactions with clients, colleagues and managers on a daily basis
- Ability to work autonomously and mostly asynchronously with the rest of the team