By combining software engineering and data analysis, machine learning engineers enable machines to learn without the need for further programming
As a machine learning engineer, working in this branch of artificial intelligence, you'll be responsible for creating programmes and algorithms that enable machines to take actions without being directed. An example of a system you may produce is a self-driving car or a customised newsfeed.
A key feature of this work is that you're providing computers with the ability to learn automatically and improve from experience, without being programmed.
There may be some cross-over with other disciplines, including:
- computational statistics
- mathematical optimisation
- data mining
- exploratory data analysis
- predictive analytics.
As a machine learning engineer, you'll need to:
- understand and use computer science fundamentals, including data structures, algorithms, computability and complexity and computer architecture
- use exceptional mathematical skills, in order to perform computations and work with the algorithms involved in this type of programming
- produce project outcomes and isolate the issues that need to be resolved, in order to make programmes more effective
- collaborate with data engineers to build data and model pipelines
- manage the infrastructure and data pipelines needed to bring code to production
- demonstrate end-to-end understanding of applications (including, but not limited to, the machine learning algorithms) being created
- build algorithms based on statistical modelling procedures and build and maintain scalable machine learning solutions in production
- use data modelling and evaluation strategy to find patterns and predict unseen instances
- apply machine learning algorithms and libraries
- lead on software engineering and software design
- communicate and explain complex processes to people who are not programming experts
- liaise with stakeholders to analyse business problems, clarify requirements and define the scope of the resolution needed
- analyse large, complex datasets to extract insights and decide on the appropriate technique
- research and implement best practices to improve the existing machine learning infrastructure
- provide support to engineers and product managers in implementing machine learning in the product.
- As a graduate starting out in your career, you can expect a salary of around £35,000.
- The average salary for a machine learning engineer in the UK is £52,000.
- This can rise to as much as £170,000 if you work for a large multinational company like Google or Facebook.
Contractual working is an option and pays around £450 per day. Salaries vary and are based on qualifications, specialisms and experience.
Benefits can include a company pension scheme, private medical insurance and discretionary bonus.
Income figures are intended as a guide only.
Working hours are usually 9am to 5pm, Monday to Friday. You may need to work extra hours or at weekends depending on the project you're working on. There may be some flexibility with your employer with regard to time off. Holiday options vary but are typically generous.
Contract work on projects is possible, which can be on a part-time or freelance basis. There may be some opportunity for remote working.
What to expect
- You'll be working with complex systems, requiring you to have a high level of concentration and attention to detail.
- Work will be carried out at a computer for long periods of time, so regular breaks are necessary.
- Dress code and office culture will vary, according to the type of organisation you work for. However, many employers allow casual dress and offer regular social events.
- Positions are typically office based, although there is scope for remote working in some organisations.
- There are many job opportunities in this developing sector, so there is a good level of job security.
Most employers look for a Masters degree, or a PhD in a relevant discipline.
As machine learning is a fairly new area there are not yet many courses focusing solely on the subject. Because of this, a qualification in a related field such as computer science, statistics, electrical engineering, mathematics or physical sciences is widely accepted as an undergraduate degree, before progressing into a more specialist course.
Similarly, a Masters degree in a subject that has machine learning as an element within it, is widely accepted along with relevant experience in the field.
Experience in computer programming is a must, with most employers expecting applicants to have knowledge of Java, Python and C++. Many also ask for industry experience in computer programming.
It's possible to enter the profession without a degree, provided you have the necessary skills and undertake a relevant course. If you have experience in data or statistical analysis, you can take a course on machine learning engineering with Udacity.
If you're interested in studying to become a machine learning engineer and you have a relevant undergraduate degree, search postgraduate courses in machine learning.
You'll need to be able to demonstrate:
- exceptional mathematical skills, in order to perform computations and work with algorithms
- excellent written and verbal communication skills
- the ability to explain complex process to people who aren't programming experts
- strong analytical skills
- high attention to detail
- innovation and creativity
- the ability to work with large, complex datasets.
In some positions, depending on seniority, you may also need to demonstrate the following:
- leadership and management of both teams and projects
- detailed knowledge of machine learning evaluation metrics and best practice
- strong Python coding skills
- experience of a typed language (such as, C++ and Java)
- Linux SysAdmin skills
- messaging (including, Kafka, RabbitMQ, ZeroMQ)
- distributed systems tools (such as, Etcd, zookeeper, consul)
- competence with infrastructure as code (Terraform, Cloudformation and similar)
- a portfolio of your past experience (include any blogs, talks, contributions to Open Source, Kaggle).
Undertaking an internship or placement during your degree will give you an advantage. However, taking the initiative to learn the required coding and programming skills on a personal level, will also be helpful to your application.
Seek out a placement or internship opportunity to complete during your degree, if you can. However, as the role is a relatively new one, there is more flexibility around this. In many cases, gaining some closely related experience and the necessary qualifications will be enough.
There is demand for machine learning engineers in a range of sectors. For example, you could be working for a large technology company, in the medical profession, an engineering company or within internet security.
While a career in machine learning engineering is relatively new, it's proving popular and engineers are in high demand. There are almost limitless possibilities with this technology, so employment opportunities are possible in many fields.
The main players are the big organisations with well-developed IT systems, landing large contracts. They will often run their own graduate schemes.
Look for job vacancies at:
You can also try these specialist recruitment firms:
There are a growing number of opportunities to work freelance or on a contractual basis in this industry.
Continually updating your skills and knowledge is a requirement throughout the IT industry and can be done through:
- in-house training courses - more typical in larger organisations
- specific application, language or operating system courses
- private study, such as the nanodegree in advanced machine learning engineering offered by Udacity
- additional qualifications relating to the job or to enhance other skills such as leadership and management can be undertaken as part of CPD.
If you've studied this discipline, your skills will be in high demand across a variety of sectors.
There are opportunities for recent graduates in the field. Progressing to a senior level often involves managing a team. Large multinational technology companies may offer the best prospects for career progression and the highest salaries.
Freelance and remote opportunities are available, and since there are currently low levels of competition, some graduates go on to form their own companies.
Ensuring your machine learning engineering skills are excellent is the best way to stand out and succeed in this career.