Python Developer

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.