To assist with the positioning of the Company, CMR is now seeking a Python Developer to assist with developing and maintaining our rich spectrum of engineering support software. The role entails taking a pivotal role in the development of new Python-based support software for control and testing of our minimally invasive surgical robotic system, and maintenance support for our existing code base.
- Architecting and coding Python software to support the development and test of our robotic hardware and software.
- Following best practices for Python software development.
- Maintain, improve, and add to the existing Python code base.
- Develop and implement creative solutions based on different Python technologies and key engineering requirements.
- Deliver project tasks within agreed time-scales and budget.
- Writing technical documentation to support both manufacturing and integration tests.
We're looking for an individual with the following attributes
We expect candidates to have a relevant qualification to degree or HNC level with appropriate career experience in Python software development as part of a multi-disciplinary team. Candidates should be able to demonstrate strong Python development skills and be determined to develop software to the highest standards within agreed time-scales.
Required Skills and Experience
- On-the-job experience of using Python for software applications.
- Familiarity with both Python 2.7 and Python 3.x.
- Knowledge of software testing practises and designing software for testability.
- Understanding of PEP-8 coding guideline for Python, and use of PyLint as a source checker.
- Experience of using Python unittest.
Desirable Skills and Experience
- Knowledge of Python modules PyQt, PyQtGraph, numpy, ctypes, and socket.
- Experience with Python virtual environments.
- Experience of working with Python in Blender.
- Ability to read and understand C, and C++ source code.
- Experience of working within an Agile management framework.
- Experience of working with continuous integration systems for automated testing.
- Experience of code refactoring for testability.