Candidates for this position will become part of a dynamic team developing software for backend server and web applications. This is a challenging and diverse role with design and development activities on the various databases as well as a strong emphasis on developing the backend data access applications. In this role you will typically be regarded as experts in your field with the ability to provide guidance to developers and architects while co-ordinating with various development teams across multiple applications, as well as DevOps to help identify common functionality and to improve reliability and performance.
1. The design, development, test, implementation and maintenance of existing and future database schemas – taking into consideration anticipated database growth, scalability, performance and efficient data storage.
2. The design, implementation and review of data access views, functions and stored procedures within the databases to provide data access as needed by application developers (potentially from one or more teams) ensuring a consistent and coherent approach to the data access.
3. The design, development and maintenance of data-brokers and data access APIs enabling secure and coherent access to stored data.
4. The monitoring and performance of the data access layer and the databases themselves in coordination with DevOps.
5. Participate in system integration testing
• At least 3 years as a database developer
• A detailed knowledge of core database design concepts and techniques
o Relational Databases (MySQL, PostgreSQL)
o NoSQL Databases (MongoDB)
• Experience designing new database schemas to support application requirements.
• Experience optimising database performance
• A solid understanding of indexes, index management, statistics generation etc.
• The ability to monitor, analyse and troubleshoot database integrity, performance, blocking and deadlocking, connectivity and security issues.
• A strong understanding of Python and experience developing data access APIs.
• A familiarity with strengths and weaknesses of the underlying operating systems (Unix, Linux) where applicable to the database.
• Knowledge of source code revision control, preferably GIT
• Fluent in English, both written and verbal
• Degree in Computer science or equivalent
• With specific reference to MySQL, it would be desirable if you had a working knowledge of Clustering, Replication, Mirroring, and Sharding concepts and implementations.
• Familiarity with geographical data / GIS storage techniques
• Knowledge of messaging systems e.g. REST, message queues
• Practical experience developing backend applications
• Experience using unit test and component test frameworks
• Familiarity with distributed computing / microservice architectures and the impact they have on databases
• Experience working in an Agile environment with continuous integration and deployment.
• Development experience on Ubuntu and Red Hat.
You should be:
• To be a good Team Player, capable of delivering excellent results under pressure and to strict deadlines
• The ability to Communicate effectively with clients and colleagues.
• A Quality focus with an understanding of advances in computer technology and how this affects the business environment
• To be Adaptable and able to pick up new techniques
• A positive "can do" enthusiastic attitude towards addressing the technical challenges facing Camlin and our clients
• To be a Conscientious individual who demonstrates attention to detail along with high levels of ownership and commitment
• The Motivation to create high quality products and systems and learn new skills.