Through-Stack Development in Automotive Systems

Introduction to Through-Stack Development (Part 1)

Building the connected carputers of today and tomorrow is no trivial thing. On one side you have great expectations on new features brought on by vehicles taking a digital leap, a push towards faster time-to-market and expected cost savings from integrating multiple systems into one. On the other hand you have automotive safety standards, increased complexity in the required solutions and a whole new level of security threats. A difficult equation.

The answer, as many companies are finding out, is to introduce isolation measures to segment the carputer systems into specialized domains, some specialized in safety-related functionalities while others produce the rich connected features that the consumers of today expect. However, those isolated systems still need to talk to each other in a secure fashion, co-exist without interference on one device and work in concert to produce a seamless system. Not unlike an orchestra with the themes of multiple instruments weaving a composition larger than the sum of its parts.

“The trick here is that many of the new features that you are developing cut across multiple layers in multiple domains.

Considering the intricacy needed, its unsurprising that trying to actually develop such a system requires some difficult orchestration. Traditionally software is abstractly split into layers, spanning from device drivers, hypervisors and kernels, through middleware and system services right up to user-interface development. These layers together form the software stack. Now, coming back to all those isolated domains, each of them has their own set of layers. The trick here is that many of the new features that you are developing, from FOTA to remote control, cut across multiple layers in multiple domains. And that, is why you find yourself reading about through-stack development.

Horizontals and Verticals

Another juxtaposition can be found in the needs for your development teams. Deep expertise, component ownership and the continuity of work tend to congregate into layers. As such, the most natural team structure for your development is horizontal – for each team to be limited to a specific set of layers in one or more domains. That way, your developers can concentrate on the components & tools they know best, the team can support each other with technical solutions, you do not introduce conflicting changes and you can constantly improve your solutions in a specific area with one team having clear ownership of components.

However, as we already discussed, some of the connected carputer features need to cut through a lot of layers, which would here mean co-operation between a lot of teams. What you need, is a structure to help you develop those features in concert between multiple teams, while still achieving seamless communication and a rapid development pace.

“Our solution has been to introduce vertical, or through-stack, groups to our software development process. We call them virtual teams.”

At Link Motion, our solution to this has been to also introduce vertical (or through-stack) groups to our software development process. We do this using a structure of agile teams & what we call virtual teams. Our virtual teams are feature-oriented, with each one having ownership of implementing a specific feature through the whole software stack. These teams are comprised of at least one member from each team that is needed to implement a specific feature.

The interesting part here is that our virtual teams are transient – once the feature is fully implemented, the team will disband and new ones will likely be formed to implement the next new functionalities needed. Meanwhile, our regular Teams are permanent and their Team Leads are given quite a bit of freedom for choosing the right solutions for their area. If there’s something familiar about this structure, that’s because it’s somewhat been influenced by a similar handling of horizontals and verticals in the Spotify Culture of Squads & Chapters.

Phone Industry Changed Forever. Automotive Industry: You’re Next.

When Steve Jobs launched the iPhone over a decade ago, it surely revolutionized the whole phone industry. It did not only have a well working touch screen, but it had completely rethought the usability from the ground up. If you look at the history of phones from the very beginning (I’m talking about you, Mr. Bell), you can see that until the point iPhone was launched, the progress of phone usability was just evolving slowly. Makers added new features over the old ones: the dial ring was replaced with a 10-Key buttons, added with Call and End-Call buttons, Volume buttons, Menu buttons, Scroll buttons… when camera was added, so was the camera button. Music player? You guessed it: more buttons.

“Automotive space is going through changes similar to the phone industry’s over a decade ago.”

Then there was digital menu, and buttons to control it. Even full Qwerty-keyboard was added to some phone models for business users to type emails quickly. At its peak, there was actually over 40 individual buttons on a pocket-size mobile phone, sharing the front surface with the screen! Apple looked at these “feature rich phones” at the time, listed all the functions this small pocket size gadget would do and figure out how to use it in the most intuitive, natural way.

LEARNINGS FROM THE PHONE INDUSTRY

There are many things we can learn from how phones have been changing, and how people have changed with them. I’m not talking only about the touch screen to add virtual buttons, but the set of gestures and even the orientation and movement of the device itself to control the different functions. Although the difference is magnificent, that all quickly become a new standard that we take for granted today.

Automotive space is going through similar changes right now. We can see a lot of similarities to the phone industry over a decade a go: more advanced features are added over the old ones: a online connection, advanced driving aids, wide array of entertainment, to mention a few. And then there is the end customer. Yes, the person who actually uses the car – She lives with Smartphone. She wants the car to be the same.

So, should we just slap a smart phone or a tablet to the dashboard and call it a day? No. Not even close.

RETHINKING THE USABILITY

What iPhone did to the phone was not just get rid of the physical buttons, but fundamentally rethinking the way we interact with the device. Just substituting the physical buttons on device with same buttons on the touch screen, the usability do not get any better. It could become even worse, as the screen buttons lacks the only positive thing physical buttons have: the tactile feel.

“Should we just slap a tablet to the dashboard and call it a day? No. Not even close.”

What the phone revolution taught us is how radically we could rethink the automotive usability if we really want to create user friendly “mobile device on wheels”. For example, rotating the vertical shaped phone to sideways is a natural way of watch a landscape movie. Naturally we can not exactly copy this to a car (although a image of somebody flipping the car sideways to rotate the center console on dashboard would be funny idea), but we can rethink the usability of the car in the same radical ways, using natural movement or gestures to interact. In the same way, we don’t necessary need to present the information on the dash as mimicking the gauges in the past – we can rethink how the vital information can be showed to the driver or occupant in simple, user-friendly manner. And then there are the steps to be considered when talking about user experience roadmap towards autonomous driving. There are lots to take in.

I’ll go through these topics in detail with coming blog posts. Stay tuned!

Technical Lead – Automotive UI

Your main tasks is to do hands-on Qt/QML coding and guide other Qt/QML developers in a team. In addition, we expect you to act as a technical team lead for UI team, making architecture design, doing architectural decisions, and making sure that code quality meets given criteria. We want you to be able to challenge architectural decisions we have made. Exact responsibilities will be defined based on applicant’s skills and background.

EDUCATION
B.Sc. in Computer Science, math or related field is appreciated

EXPERIENCE
+5 years of QML experience preferable on Linux
Proven track record, open source contributions is a bonus

SKILLS
Excellent team work skills and being able to communicate with people working remotely
Strong knowledge of Qt/QML internals, C+, Linux and cross-platform development
Eye for UI design and interested in good user experience
Understanding how to create UI applications for touch screen devices
Understanding open source and upstream contributions
Git
Skills on OpenGL, Shaders, Qt 3D and Jira is appreciated

LOCATION
Remote work possibility. We also have offices in Tampere and Helsinki.

HOW TO APPLY
Send your application and CV to jobs@link-motion.com with reference REKRY: Technical Lead – Automotive UI.

The work starts as soon as we find our perfect candidate, so please apply soon!

Automotive Software Tools Engineer

You will join us as a Automotive Software Tools Engineer. In the beginning, your primary focus will be in developing and maintaining the Link Motion SDK. The SDK is like Android Studio and XCode, but not yet as complete. It is based on Qt Creator and lxc containers. Later you are expected to expand to developing and maintaining the Link Motion CI. The CI is based on BuildBot and runs on AWS. You are also expected to work with hardware and hardware farms. Exact responsibilities will be tailored based on your skills and interests.

EDUCATION
B.Sc. in computer science, mathematics or related field is appreciated.

EXPERIENCE
Few years of experience on related tasks.
Experience in remote working and multi-cultural working environments will be a benefit.

SKILLS
Strong command of Go, Python and shell scripts.
Strong command of Yocto, Linux kernel, sysroots and lxc containers.
Understanding of C++ and Qt development.
Understanding of compilers, toolchains and cross-compilation.
Knowledge of OpenStack, Amazon Web Services, Ansible, or equivalent.
Strong English skills.

LOCATION
Remote work in Europe. We also have offices in Tampere and Helsinki, Finland.

HOW TO APPLY
Send your application and CV to jobs@link-motion.com with reference “REKRY: Tools Engineer”

Your application should be equivalent to maximum one A4 of text.

Link Motion will advance its Carputer to CarBrain

Link Motion has released their plans for the next generation carputers. In their technology roadmap, Link Motion’s connected carputer will be developed into “CarBrain”, making vehicles more intelligent part of the traffic ecosystem by supporting the integration of artificial intelligence (AI) and Blockchain applications.

“So far, the digitalization in the automotive industry has been all about replacing existing things in a vehicle with software,” said Pasi Nieminen, CEO of Link Motion. “In the next phase of advancement, vehicles will become an integrated part of a connected infrastructure and more support for network side applications and services are required from vehicle computing. This is how we are positioning Link Motion for the future.”

Read more:

Press release available at http://ir.nq.com/mobile.view?c=243152&v=203&d=1&id=2325970

White paper exploring the Next Generation Smart Car Platform available at http://link-motion.com/papers/link_motion_car_brain_ai_block_chain.pdf

Automotive Linux Software Engineer

Your main responsibility is to join our Services team as a Software Engineer. This role comes with tasks related to C coding (implement Vehicle Network APIs and OTA/USB updating solutions). In addition to Vehicle Network, supporting your team to handle for example OTA, Telematics and USB updater will be an important part of the job. Exact responsibilities will be defined based on applicant’s skills and background.

EDUCATION
B.Sc. or M.Sc. in related field

EXPERIENCE
5+ years programming experience
strong C knowledge
Linux knowledge
git experience
experience of embedded systems

SKILLS
rpm experience
some sort of security experience
startup experience (being able to know what needs to be implemented
and what can be delayed in order to deliver on time)
team work skills, able to work with team located remotely

LOCATION
Remote work. We have also offices in Tampere and Helsinki.

HOW TO APPLY
Send your application and CV to jobs@link-motion.com with reference REKRY: SW Engineer.

The work starts as soon as we find our perfect candidate, so please apply soon!

TAKING THE DRIVING EXPERIENCE TO THE NEW LEVEL – LINK MOTION AT SLUSH

Jouni Mikkonen (on the left) and Mikko Hurskainen (on the right) from Link Motion together with Mikko Pyykkö from Third Space Auto.

The innovative carputer solution Motion T was showcased to visitors at Slush, the primary meeting hub between investors and startups worldwide, in Helsinki, Finland. Combining business and technology, Slush was on the front line to cover the topic of Mobility as a Service (MaaS), addressing advancement of technology, key challenges and latest business development of services – paving the way for innovative transportation concepts.

One-on-one meetings between the carputer provider Link Motion and potential technology partners contributed to cooperation opportunities towards more customized driving experience.

One of the partners to Link Motion demo corner was Third Space Auto, the company providing intelligent mobility solutions. Their solution, based on artificial intelligence (AI) and machine learning, can help vehicles to understand preferences of individual drivers – such as their preferred commuting routes or favorite gas stations – creating contextual intelligence -based life graph.

Jouni Mikkonen is presenting Motion T to visitors (in the middle), Mikko Hurskainen is giving an interview to automotive media representatives from U.S. (on the right).

“Link Motion’s carputer platform can further assist us in providing seamless driving experience. We are interested in sharing knowledge and having collaborative R&D projects as well as defining together future-proof concept for use cases”, Mikko Pyykkö, COO said.

Mikko Hurskainen, Technologist at Link Motion, acknowledged the benefits of cooperation. “Third Space Auto shows how to add value into connected car online and offline applications by software-centric approach. Link Motion’s Motion T enables safe and secure integration of such technologies.”

In the rapidly evolving automotive world, Link Motion’s platform is flexible to support personalized driving preferences, with partners who use their technological strengths in the most innovative way.

Visitor traffic at Link Motion’s product booth:

Slush
Link Motion is also cooperating with Nohau Solutions Finland. Mikko Hurskainen (on the right) is showcasing infotainment functionality of Motion T to Leevi Lehtonen, Technology Manager.

Slush
Visitors to the Link Motion’s stand were drawn to test how Motion T’s user interface feels like.

Slush
Mikko Hurskainen is giving an interview to automotive media representatives from U.S.