Hello! My name's Rob Gilton. I run a company in the UK called Adventurous Machines Ltd, which has been designing and developing electronic products for just over a decade. We do a lot of embedded software engineering, and we try to do it well.
We often find ourselves taking on software projects where our clients are stuck. They've built something, but it has issues, and solutions need to get out of the door fast. The sticking point is that none of the project has been set up for realising change quickly and robustly.
There can be a wide range of slowdowns within these projects. Sometimes just reproducing the build environment from developer machines can be a days-long process. Once fixes are made, there's the tricky problem of working out whether they've broken anything else in the product. Is it safe to ship the fix? Sometimes companies have processes for assessing this (often unwritten), and they can take weeks or months. So the question becomes: is the cost of going through that process less than the cost of the product remaining broken? Exactly the same question arises for new features too -- if even a simple fix can't get out of the door, what's the chance that a whole feature will?
It's possible to get out of this quagmire, and it is even better to navigate around it from the beginning. The world of software engineering in general has answers, but the embedded software engineering world lags behind and has struggled to adopt them.
We want to make this easier. We believe that shipping embedded software can be just as easy as shipping software for "non-embedded" spaces, like the PC or the web-browser.
We began this journey by starting a service called Rockface, which clears a whole set of embedded development obstacles. Rockface takes an embedded system (i.e. your product), hooks it up to a bunch of test equipment, and puts it behind an internet-accessible API. Immediately things like continuous integration, hardware-in-the-loop testing, remote working, and sharing equipment with a team become viable.
Since starting that service, we have moved all of our firmware development projects over to Rockface, and we would really struggle to go back. Our customers have also been happily using it to accelerate their firmware development, also with similarly positive results.
While Rockface has delivered many benefits to its users, there are still many hurdles that block smooth embedded software development. That's where this blog comes in. Our intention is to write on topics that embedded software engineers will find interesting and useful, with the hope that our readers can take away some new insights and get their projects moving.
Of course, we also want to learn too, and we would love to hear from you. So do send me an email if you'd like to talk about embedded systems, or just to say hi!