MySQL is the worlds leading opensource database for the Web. It is the M in the LAMP stack that has revolutionized the world and the whole WWW is based on this stack. You will get a chance to impact millions of people by creating a technology which is used massively on the World Wide Web. Each release of MySQL is downloaded by thousands of people each day, in fact, the the titans of the Internet, such as Facebook, use and derive great value from MySQL.
Replication itself is at the heart of MySQL’s success given the current landscape in terms of on-line services, many of them backed by elastic clouds. The fact that scaling-out read loads, or even
partitioned write loads, is straightforward in MySQL Replication, makes it a very strong fit for practically every web business case. Our team ensures that MySQL replication adapts, evolves and remains as the first option ever for every web company, including those that are extremely large and exhibit very strong requirements.
You will be working in the MySQL Replication team and you will be responsible for strengthening the position of MySQL as the number one open source database in the world.
- As a member of the software engineering division, in particular of the MySQL Replication team, you will take an active role in the definition and evolution of standard practices and procedures. You will be responsible for defining and developing software for tasks associated with the developing, designing and debugging of software applications or operating systems.
- Work is non-routine and very complex, involving the application of advanced technical/business skills in area of specialization. Leading contributor individually and as a team member, providing direction and mentoring to others. BS or MS degree or equivalent experience relevant to functional area. 7 years of software engineering or related experience.
- You will have a background in distributed systems and have knowledge of different replication paradigms. You know what fault-tolerance is and you understand the requirements to build a dependable systems. Moreover, you will be familiar with distributed algorithms such as Paxos, Raft or Totem.
- Background knowledge on distributed systems (what are the challenges on distributed programming – keeping everything in sync, which part processes what, where is the data, etc).
- Background knowledge on replication (what are the challenges in replication – moving data around efficiently, making sure that everything is in sync)
- Knowledge on transaction processing, concepts and techniques.
- Programming Languages: strong C/C++ knowledge.
- Problem solving skills.
- Ability to quickly analyze and diagnose problems on complex distributed systems.
- Ability to manage multiple priorities with limited supervision.
- Ability to coordinate and work effectively within a distributed team.
- Knowledge on the different database replication paradigms protocols (e.g., know asynchronous, semi-synchronous, virtually synchronous and synchronous replication)
- Network fundamentals (what is a socket, what network protocols are there – TCP, UDP, IP)
- Excellent spoken and written communications skills in English.
- Strong Object-oriented design and programming skills.
Nice to have:
- Programming Languages: Java and Python.
- Knowledge of MySQL as a user.
- Knowledge of MySQL internals.
- Knowledge/User of MySQL Replication.
- Knowledge of other types of replication.
- Usability expert (understanding how a system interface should be).