Engineering at NIRA

Working with great people, in an organization where you can really make a difference and help shape the future of mobility – how does that sound? Great, then read on, because we’re always on the lookout for new talent.

Welcome to the workplace of tomorrow

Shaping the future of mobility

On these pages we want to give you a taste of what it’s like to work as an engineer at NIRA. As you will discover, whether you’re in Vehicle Onboard Analytics or Road Perception – which are our two main business areas – the- re’s an incredibly broad range of interesting challenges to tackle, and you will quickly be able to apply your knowledge to real-world applications.

From developing onboard systems used by world-leading car manufacturers to working on offboard, cloud-based innovations for autonomous cars, engineers at NIRA are in many ways shaping the future of mobility. So perhaps it goes without saying, but innovation is something that we live and breathe. This very much comes down to a mindset that nothing is impossible.

Today, more than 40 million cars are rolling the streets with our technology onboard – and it all began with an idea. That’s why we’re always asking what’s next, encouraging you to come up with your own ideas. For instance we have an idea incubator, NAIL 2.0, and every year we also host our own innovation event NIRA Creathon. What’s more, as an engineer at NIRA you have a major influence over our development processes – and you are free to work how, where and when it suits you best.

 

VOA
Reliable and hassle-free vehicle diagnostics for the cars of today and tomorrow.
RP

As you can tell, working at NIRA is so much more than crunching code from nine to five. In fact, your work day could involve anything from customer contact to education or attending conferences abroad. Now this is of course entirely based on your own interests and ambitions – every year we create an individual development plan together with you, where you can let your imagination run free and construct your upcoming year here at NIRA.

In the end, we’re not just about the future of mobility – we are equally invested in your future as well. That’s why we’ve created a culture where people can really thrive. Something that we would like to call ‘the workplace of tomorrow’.

Onboard Algorithms

Mobility as a Service, car sharing and the evolution of autonomous vehicles all create new demands on vehicle diagnostics. In our business area Vehicle Onboard Analytics, we develop highly reliable software solutions for state-of-the-art vehicle diagnostics. The world-leading iTPMS, Tire Pressure Indicator – currently featured in 40 million cars – is just one example of how NIRA contributes to smarter and safer mobility. Want to work on our onboard systems? On the following pages you’ll get a general idea of what the work entails.

Modelling and Signal Processing

Ever felt that courses at university often teach content that are of little use in work life? Well, NIRA can prove you wrong. In fact, many technical courses – such as Digital Signal Processing, Sensor Fusion or Vehicle Dynamics – have an explicit connection with the day-to-day development here at NIRA, meaning you have the opportunity to apply these theories to real-world applications.

So, if you recently finished that course where you enjoyed tuning Kalman filters or fitting models to vehicle suspensions, hit us up with an application! We annually seek numerous students for master’s thesis ideas – many of which result in production code implemented in tomorrow’s vehicles.

Software Development

The development of our core products often begins with signal analysis carried out in MATLAB environments, followed by handwritten conversion to embedded C-code. One of the challenges posed by the implementation in vehicle computers is the limitation of computational complexity, often making for an exciting programming problem.

Of course, the automotive industry is not entirely disconnected from advances made to computational capacity. This means that newer products can leverage things like model-based development with MATLAB and Simulink followed by automated code generation – allowing us to put more focus on algorithm development rather than low-level programming details.

Implementation to Testing

Code implemented at NIRA can be tested live by heading down to the garage and taking a test car for a spin. Or, if you rather try out your functionality behind your desk, parse it through the more than 14 million kilometres of test data collected and stored by NIRA throughout the years. This is why we can confidently push high quality code, sure that even the most obscure driving conditions are accounted for.

Testing to Production

Code review is a core focus before code meets its production stage. We simply cannot afford bugs delivered to production code. Using a thorough code review scheme where multiple reviewers rate the code, this can be prevented.

Before any code is delivered to our customers, rigorous validation on actual car data is essential. Obtaining all this data requires developing and maintaining multiple logging hardware solutions such as ones acquired from Vector and dSpace, but also some custom-developed technologies. Ensuring that our products are robust and resilient towards external factors such as stark climate variation means we must travel the world to collect the necessary validation data – from the biting cold of wintertime northern Sweden to the scorching heat of Death Valley.

Cloud

Augmenting the driver’s perception of the road surface is key to increasing the safety on our roads. That’s not to say the driver has to be a person. Autonomous vehicles also need high resolution, high quality, and up to date information about the road conditions in order to drive with confidence and at speed. Our business area Road Perception is all about collecting and sharing road data in a connected vehicle cloud – giving you, the developer, a wide range of opportunities.

A broad range of topics to work in

Architect distributed systems with Kubernetes

Front-end web development using React Redux

Back-end web development using Scala and Play

Monitoring with metrics, centra- lized logging and alarms using Prometheus, Grafana and Graylog

Classify images and video using deep learning methods

Data science and machine l earning with Python notebooks

Scalable algorithm development with Apache Flink and Spark

Continuous integration and deployment pipelines with Jenkins

Data visualization and rendering of large datasets on a map

Simulate millions of cars using Akka

Imagine a system that can collect information about the road from connected cars in real time, combine it with weather data, generate precise map-layers of road properties such as friction, and then distribute these map-layers back to the cars. Well, we are building it right now.

The system, called Road Surface Information, must scale to millions of vehicles around the world, be fault tolerant and highly available, and have an end-to-end latency in the order of a few minutes maximum.

Working on an offboard, cloud-based system such as Road Surface Information means you will have the opportunity to focus on anything or everything that interests you. You can become a specialist or a generalist or something in-between. Here’s just a taste of some of the areas you might encounter.

Making use of new technologies

Building systems on the bleeding edge of technology requires making use of the newest ideas and technologies out there. We are always scouting for and evaluating new ways of doing things, both online and at conferences around the world. Attending conferences such as Kubecon or Flink Forward are also a great way to keep up to date with the technologies we use, while doing some networking at the same time. And having fun together with your colleagues of course.

Almost all our cloud services are containerized and managed by our Kubernetes cluster which is hosted on AWS. The backbone of our data processing architecture is our Kafka cluster which manages the data received from our connected fleet of cars and from our weather data providers. This data is processed by our Flink streaming pipelines as well as by Spark batch jobs. We use auto scaling groups to dynamically allocate the number of nodes we need, so if you want something done in a hurry, just add a few hundred cores to the problem!

When it comes to databases, ScyllaDB provides a scalable and highly available way for us to reach our data. The time series database Prometheus keeps track of our operational metrics, which we visualize and monitor in various Grafana dashboards.

Currently, the main programming languages we use are Scala and Python. We chose Scala because it is a beautiful and modern language which can make use of the vast number of libraries available for the JVM. The language supports both functional and object-oriented paradigms which lets us use what fits best for the problem at hand. We also use Python when it is better suited, for example machine learning tasks in our Kubeflow notebook environment.

Improving processes and workflows

As we strive to achieve the highest possible quality in the complex distributed systems we build, we are constantly evolving and improving our workflows and processes. The processes are developed by us, the developers, and we want you to bring your own ideas to make them even better.

To give you an idea of what we are talking about, we have highly automated building, testing and deployment pipelines. The continuous integration pipelines give you as a developer early feedback on your work. You will also get feedback from your co-workers during code review. Some of us also employ test driven development or pair programming. In other words, feel free to work how, where and when it suits you best.

We would like to tell you more about working at NIRA

Now that you’ve learnt what it’s like to work as an engineer at NIRA, you may be curious to know more about our amazing culture. Find out here!

To Culture

Work
at NIRA