If you wish to comment on something I’ve written, or for any other reason, please address correspondence to:

What do I do

####Short Answer: Embedded Software Engineer

####Long answer: [I’m sure there are some people in the world whose job title adequately conveys the full subtlety of what they do, but I don’t think I’ve ever met any]

  • Design of embedded systems
  • Software architecture design
  • Communications protocols, wired and wireless
  • Power efficient design
  • Networking
  • Build systems and tooling
  • Embedded software, use and design real time operating systems etc.

####Even Longer answer: I took a fairly late u-turn from a University background in hardware into a professional world of software. This actually worked out rather well in equipping me for proper embedded software engineering. If you want to understand how a full embedded system works, you need to understand both the hardware and the software and how they interact. Some of the most ‘fun’ problems require you to debug your code with an oscilloscope (this is includes a very wide range of meanings for the word ‘fun’).

I started out at Cambridge Consultants, doing a lot of wireless comms type work - protocol design and implementation, a lot of it based around Bluetooth. There’s nothing like maintaining a million lines of C in the form of a protocol stack to teach you good software engineering practice.

For some reason or other I moved to PA Consulting and branched out a bit. The same cross discipline understanding that had previously resulted in me getting the interesting bugs, now also had me talking more about the larger system and how it should be designed. I also started doing less commercial stuff and more ‘Defence and Security’ type work, among other things.

I do a lot of C, and more recently C++. Where possible I use Python (the institutional habit of using C for everything regardless of fit is not very productive). I’ve written some assembly language, as and when. I’ve even reluctantly done some Matlab. When I couldn’t find a hardware engineer I’ve written VHDL, I have a disturbing love of Makefiles, and I’m trying to learn Haskell. Oh, and look, I’m trying a bit of web stuff.

Outside work, I live in Cambridge (UK - just to be clear). The usual battle is to resist the relentless, black hole style, pull of rowing to give me some free time to Rock Climb and, you know, go to the pub and stuff. As always, we’ll see how well this works out come Bumps season.