Software Engineer - Core Platform
- London, UK
MPC is one of the largest VFX and post production companies in the world. Delivering high quality work for many clients globally, striving to be the best in what we do.
About The Role
As an Infrastructure Engineer in the Core Engineering team, your role is to further the development of the Core Platform to meet the needs of our users and the wider business.
You will draw on your skills and experience to both extract and modernise the Core Platform for use by other Technicolor companies, and to maintain ongoing use by MPC. You will focus on developing the primary infrastructure for the platform, specifically the micro-services platform and associated monitoring.
The Core Platform has a broad scope and diverse user group. While there is some expectation of the role to work across multiple aspects of the platform (building features, fixing bugs, general enhancements), some developers do specialise and focus on specific subject areas. This may happen immediately, or after some time having gained familiarity with many areas of the platform.
In this role, your responsibilities will include;
Work with your colleagues to fix bugs, improve performance, and extend capabilities from start to finish. Define and develop services that form part of the 'batteries included' offering of the micro-services platform. Take responsibility for code quality, always leaving projects in better state than before you started work. Take initiative to improve the developer experience in small or large ways. Provide some level of operational support for the platform as required. Evangelise use of the Core Platform within MPC and other Technicolor business units. Contribute to maintaining an authoritative source of documentation.
To succeed in the role, the following experience and competencies are required;
Production-level experience using Python for service backends or development infrastructure. An understanding of concurrency as it applied to CPython, and writing code that scales gracefully. Knowledge of the various components used to develop micro-service frameworks (such as uWSGI, NGINX, RabbitMQ and Flask). Experience administering and gaining insight from monitoring tools (such as Grafana and Graylog). A working understanding of HTTP and JSON. Familiarity with source control, in particular Git, and associated best practices. Comfortable working in a primarily Linux based development and runtime environment. A solid knowledge of testing principles, in particular TDD and/or BDD. Sense of humour
Previous experience in the VFX industry is not required to be successful in this role.
Nice to Have
The following are not essential to be successful in the role, however prior experience or the desire to grow in these areas will be of benefit;
Experience with Kubernetes, Docker, cloud technologies SQL and general database knowledge for query writing and optimisation. Engage in engineering practices improve reliability &resilience and share knowledge of best practices for monitoring, alerting, etc Understanding of CI/CD best practices and advocate for their use and improvement. Familiarity with web frameworks and/or full stack development. Knowledge of Python packages and frameworks such as Flask, , PyMySQL, etc. Qt Experience of Agile and lean methodologies, and an interest in process improvement in these areas. Comfortable working in a fast-paced and dynamic environment where requirements change. Able to present technical concepts to a broad audience with varying level of technical understanding. An awareness of security and keeping content secure.