Home Articles Embedded Software Development: An Engineer’s Perspective

Embedded Software Development: An Engineer’s Perspective

David Soulsby, Senior Embedded Software Engineer
David Soulsby Senior Consultant
Written by David Soulsby

Senior Embedded Software Engineer

Ice Skating and Embedded Software Development: A Comparison

Introduction

This year my wife, daughter and I decided to take up a family hobby and having enjoyed our Winter Wonderland experiences at Christmas, we chose ice skating.  Fast forward a few months, what originally started off just trying to keep up with my daughter, has become a bit of an obsession for me. We all own figure skates and are taking ice skating lessons. One of us had a bit of a hiatus from ice skating recently – more on that later.

Having an analytical mind I have noticed some key areas of similarity and differences between my new hobby and my day job, so I decided to explore them further in this article. You may say that I can’t compare an art form, nay an Olympic sport, to a desk-based engineering career, and to you I would say “yes I can”. It’s my article and my powers here are unlimited*.

This article focuses primarily on figure skating, as that’s the area I am familiar with. Skating for ice hockey is rather different but my respect for ice hockey players is no less than for the figure skaters.

*Within the remit provided to me by Plextek!

Just Going Round in Circles?

Perhaps you, dear reader, have also had a Winter Wonderland ice skating experience, and there is indeed a lot of going around in circles. Generally, because there’s not a lot of space and potentially because the ratio of inexperienced skaters is higher.  The sport of figure skating has much more to it.

The first figure skating competition was held in 18821 and was for men only. It took until 1906 for the first “ladies” competition to be held. Much of the early figure skating competitions were scored on compulsory figures, which is where the sport gets its name. The goal of compulsory figures being to draw an exact pattern on the ice.

1 Although ice skating itself is much older than this, the earliest ‘ice skates’ found have been dated to around 3,800 years old

ice skating moves

Technical innovations since the 1970s have made ice skates lighter allowing for more precision and for more complex jumps. Additionally, modern figure skating has been influenced by its televisation to make it much more of a visual spectacle. Compulsory figures have since been eliminated from the sport.

Just Writing C?

Software Development is the art of designing and maintaining computer applications, the “Embedded” part in Embedded Software Development refers to the specialisation towards software running on task specific computers; this is a wide category of devices from ATMs to the unit controlling your adaptive cruise control, or even radar-based tracking sensors for Lunar Landers.

While writing in the C programming language is common for embedded software development, it can be a lot more complicated depending on the requirements for the application. In some situations, a basic Micro Controller Unit (MCU) is called for, another more data processing-based application may require something more advanced like a Field Programmable Gate Array (FPGA) combined with a Linux platform.

Similarities

Gender Imbalance

The most obvious similarity to address is the gender imbalance that ice skating and embedded software development have; they just happen to be reversed. British Ice Skating (BIS) note that men make up just 40% of performance athletes and 23% of coaches.

It seems that the imbalance is worse on the embedded software side. It is reported that women take up between 18-25% of software engineering roles, but anecdotally I would suggest that it is much lower for embedded software roles.

Our SVP Engineering, Vicky Larmour, has developed an outreach program which, amongst other things, aims to encourage girls and women into this program, Plextek employees can volunteer up to two days per year for STEM engagement activities, particularly focusing on young people aged 14-20 from underrepresented groups. Initiatives include participation in events like the World Space Week Schools Space Expo, where volunteers demonstrate space technology concepts, and the Teen Tech Awards, where Plextek staff serve as ambassadors and help run hands-on activities for students.

From Plextek’s perspective once someone is in the candidate pool we obviously can’t factor in gender or any other protected characteristics when selecting the right candidate. However, women are underrepresented in the candidate pool to start off with. So, if you are a woman with an engineering background please do apply for the available roles that match your skill set (you can find our Careers page here).

If you’re a man whose partner ice skates, I encourage you to join them – you might be surprised how much you enjoy it, and the sport certainly needs more male participation.

Muscle memory

Looking back to when I first started ice skating, I’m amazed at how much my muscle memory has developed. Initially getting around the rink without touching the barriers was a win, but now I automatically adjust for wobbles without thinking about it. We can speed things up by learning techniques from the coaches, but really we need repetition to reinforce what we’ve learned and to get that muscle memory.

Broadly speaking this is true for all tasks, repetition reinforces what we’ve learnt. As developers we of course develop a muscle memory for the languages we write in, but software engineering itself has a muscle memory in the form of development models. We don’t just open our IDEs (Integrated Development Environment – a text editor for code that also enables it to be built and run) and free wheel it, we gather requirements, we use our past experience to come up with a design, then after implementing we test that design and verify that it meets our original requirements.

V model

This is known as a V model, and Plextek’s development model is based on the V model. This type of approach is especially important for embedded projects where hardware is involved as the cost of mistakes skyrocket.

In skating, verification comes from the coaches, fellow skaters and whether your bum is on the ice or not.

Coffee and Community

On Friday mornings there are two “Coffee Skate” sessions at my local ice rink (Cambridge Ice Arena), where you get a 1-hour ice skating lesson, followed by a coffee (great value). The lessons are quite informal but often a great laugh, and it’s a great opportunity to meet up with people.

As a Plextek employee you have access to coffee of increasing degrees of caffeination:

1.        Instant decaf coffee

2.        Instant coffee

3.        Ground coffee machine

4.        Drip filter coffee*

*Known to Plextek employees as “Rocket Fuel”

Naturally, when working in the office, the coffee point is a great place to catch up and exchange ideas. Our main coffee point has a whiteboard next to it for when the juices really get flowing.

But perhaps to take the analogy a bit further, I feel that Coffee Skates have a bit of a Hackathon vibe to them. Hackathons are where developers get together and over a short period of time (1-2 days) try and solve an issue. While they can be great for accelerating the resolution of an issue. The exchange of ideas between peers can be great for developing skills.

Real World Consequences

Both ice skating and embedded software engineering can have real world consequences. Simply getting up from the ice in the wrong way can be dangerous, indeed my wife broke her wrist doing just that – which is why she took a break from skating.

Embedded software misbehaving (such as locking up) can also have a real-world impact such as financial loss, loss of equipment, or harm to individuals. Microsoft Word freezing up while you are editing a document may be an annoyance, software errors in systems like adaptive cruise control or lunar lander sensors could have far more serious consequences.

Debug Mode versus Release Mode

Typically, with a software project you have two build options:

  1. Debug Mode – With additional hooks built in to allow you to do things like add breakpoints (places where the code is paused, and you can inspect what’s going on) or do a post-mortem when everything falls over.
  2. Release Mode – What you ship to the customer, does not have debug hooks.

The reason why we have two modes is because while the debug mode is handy to figure out problems, it makes the software package larger and run less efficiently, not to mention open up some security holes if used in the wild.

To me, wearing wrist guards and a helmet is skating in debug mode. Since my wife broke her wrist ice skating earlier in the year, I am content to be in permanent debug mode.

Posture

Okay, okay, now I’m stretching a bit, and really this applies to any desk job. But correct posture when sitting or standing at a desk is vital for your health as a software engineer (as is moving around every hour – what would we do without our smart watches?). Common posture related injuries for a desk job include Kyphosis and Carpal Tunnel Syndrome.

For ice skating sometimes the posture is for aesthetics but also for balance. I.e. keeping your centre over your skates. This is more about doing the moves correctly and hopefully falling over less, you can tenuously link that back to avoiding injury.

Differences

Core Strength

While a good posture is important for both ice skating and software development, ice skating requires core strength on an entirely different scale, and this is where making a comparison between a desk-based job and a sport does fall down. Engaging the core is the key to every figure skating move, and I have noticed a substantial increase in my core strength since picking up the hobby. Unsurprisingly, sitting or standing at a desk for 17 years did not prepare me for the core strength I’d need.

Cool Factor

Despite the best efforts of Hollywood to glamorise hacking and coding, the reality is we do work in an ordinary office. I have a single computer screen, some of my colleagues have two, but no one has eight. Only bid managers (power to them) are up until 2AM furiously tapping away on their computer, usually wrestling with an online submission system.

Meanwhile, there are some insanely talented people at the ice rink who have invested hundreds of hours into practicing and can make the trickiest moves look effortless. People who are on slippery ice, as hard as concrete, skating around with knives strapped to their feet. The beauty of figure skating* is quite understandably easier to appreciate than a well-executed embedded software project.

*Not by me obviously, someone who has invested the sufficient time!

What worked today might not work tomorrow

Ice skating has made me aware of a different approach to learning, where you must accept that what worked for you last week might not work for you this week. At learn to skate, my experience has been that you rarely get the same instructor two weeks running; and from this I have learned different techniques to accomplish the same move.

This bucked up against my process driven, analytical nature, somewhat. I think the reality is there are so many more variables to a human body with knives attached to its feet, moving around on ice of varying degrees of quality. It probably would have surprised me more if I wasn’t already a parent.

Of course we adapt our approach for each software project, but the writing software wouldn’t work if we had to re-write the code each day.

Summary

As someone who is rapidly approaching their 40s, I’d thoroughly recommend trying out a new hobby. Starting from scratch means you can really see the difference month to month, and if it can be an exercise-based hobby then that’s even better. You can find your local ice rink here, and details about the BIS Learn to Skate Program (suitable for figure and hockey skaters) here.

 

1 Although ice skating itself is much older than this, the earliest ‘ice skates’ found have been dated to around 3,800 years old

Contact Plextek

Contact Us

Got a question?

If you have got a question, or even just an idea, get in touch