Month: May 2014


Writing a book is a huge project. My first book, Professional Embedded ARM Development, took something like 10 months, but I’ll never really know how long it took; it is made from extract of work notes over years of consultancy work. So why did I write it? Why does anyone write technical books… Don’t go thinking that it is for the money. We do indeed get paid a percentage of every book sold, but you need to sell a lot of books to make a living. For the reputation? Partly, yes. I also did it to help people out, and of course, the love of writing itself. I can spend hours on my keyboard.

Keyboard. The golden rule: to do a good job, you need the right tools. My previous keyboard was great; it was enough to type a few lines of code, but it was designed to frag, and would have been great if I had any gaming skills at all, or any time left (my World of Warcraft days are far behind me). Great for typing an email from time to time, it wasn’t up to the job for a 300,000 word book. So I changed my keyboard.

I live in a place where I have two supermarkets close by. One of them is big enough to sell computers and hardware. There are a few other shops around that also sell hardware, but I choose to buy it from another place, an Internet site. Why, am I so lazy that I couldn’t be bothered to walk 600 meters to go to a shop? It was for a different reason. I wanted to order my keyboard on an Internet site that I’ve used for years. was born here, in Nantes, France. We’re proud of it. When their original site became too small, they moved a little bit away, and we were all sad. However, they didn’t move that far away, and they even made a showroom, still in the Nantes region. This is where you can get your parcels, but also where you can look at some of the products for sale, and get some great advice from the staff. They even go as far as to do some demonstrations; extreme over-clocking, for example. That’s nice, but doesn’t buying on Internet mean lots of time? After all, the products aren’t actually at the showroom, they are all stored at their main site. Buying on Internet means two days to put it in a parcel, three days for that parcel to arrive (just when you are out), and another four days to be able to go to the post office to retrieve it? Right? No, it doesn’t. I’ll give you an example. Late one night, my graphics card died. I didn’t have a backup card, and my system doesn’t have on-board graphics. My two screens were blank, and there was nothing I could do about it. I went to sleep. Early next morning, I got up, got my daughter ready, and was finally ready to work from home. 8:30 AM. I opened up my laptop, had a quick look at’s graphics cards, and selected one. That was actually the hardest part; we aren’t talking about five or six cards. As of right now, they have 267 graphics cards. I want an NVIDIA. Click. Okay, 131 cards left. PCI Express 16x, please. 128. Hmmm… Oh, yeah! Passive cooling! 7. Right, now we’re talking. I went with a “simple” card; I’ll change my monitors later, so in the mean time, I want a basic card that can handle 2 VGA monitors, and let me play Minecraft from time to time (hey, writing is hard! I need some way to relax). I ordered a low-end card. Click. Deliver to the Nantes showroom. Click. Card? Click. Thanks for your order! No, thank you. 9 AM, time to get back to work.

At 11:30, I received an email. Your order is ready! Come and get it. Seriously? I took a bus, and ten minutes later, there I was, and my card was waiting for me. It was prepared at their headquarters, sent by truck to the showroom, within 4 hours. It doesn’t get much better than that.

So, what does it take to write a book? A keyboard, yes. I needed to run more and more applications and virtual machines, so I needed memory. A hard drive failed in my NAS, so I needed to buy a new drive (and upgrade the storage capacity, too), so that was another order. I’m also taking trains and planes, so I needed a new laptop, and gave excellent advice for a new one, so I bought everything there.

A lot of people helped me for my book, and I thank them all. Some are thanked on the first few pages, but it isn’t possible to thank everyone. The technical editors are thanked, and of course my family who put up with me, especially my daughter who really wanted a cuddle from time to time (and who even figured out how to unplug my computer to get what she wanted). When the book was published, my editor sent out “author copies”, free books that I could sign and send to the different people who helped me, or as goodies. One went to ARM in the UK; I had a lot of help from someone over there. One went to Atmel in the US, another went to Silicon Labs in Norway. They helped me by sending me cards to use in my book. Who else helped me? Well, were sort of like a partner; they were the ones I ordered my computer parts from, but not only. The Raspberry Pi is a nice embedded system, and is used as an example in my book. Who did I order an RPi from? You guessed it.

I made a quick stop by the Nantes showroom, and handed them my humble gift; a signed copy of my book. I was thanked by the staff, and I went back home. That was a few weeks ago.

Today. Saturday. This has been a really busy week. I’m working on a second book, and I’m a little late. To help me through it, I’ve ordered some components. Mother’s day is also coming up fast, so I ordered some little presents. Atmel wanted to know if I could write about one of their new boards, and I’m only too happy. Amazon are the official Mother’s day suppliers. The postman has come, literally, once a day. UPS, DHL, and the French La Poste, one parcel a day. Monday, I received some books from Wiley. They need to be signed and sent to the UK. Tuesday, Atmel’s new development board arrived. Wednesday, the first Amazon order. Thursday, Adafruit Industries. Friday I wasn’t home, but the last parcel, from Amazon, didn’t need a signature. I came home later that day to find the parcel waiting for me, as well as a delivery slip. Another parcel was waiting for me, and required a signature. Since I wasn’t there, they would bring it tomorrow. Wait, what parcel? I wasn’t expecting another parcel.

Well, Saturday came, and here we are. I’ve received my parcel. I had a look at it, saw the shipping name, smiled, and signed. I hadn’t ordered anything from, but the parcel clearly stated the name. I brought it inside and had a look. I opened it up, and I had a smile for the entire day. The contents? First things first. On top was a letter, something I value more than anything else. A thank-you letter, and a photo of someone reading my book. What makes it really awesome is the fact that he is reading it to a giant stuffed rabbit, a minion, a PvZ zombie, Stitch and a crocodile that looks like something from Peter Pan.

I smiled, and carried on reading. The letter talked about their pride in creating an excellent service, one that made people like me come back again and again. An excellent service indeed! They have been voted best customer service years in a row. Anyone can sell things on Internet, even I can do it. The difference is the quality of the service, the speed in which orders are completed, and especially, when things go wrong. I have had two orders that “went wrong”. The first one was a memory stick that didn’t work on my configuration. One phone call later, and the young woman on the other end told me to send it back, and suggested another reference. Two days later, the order had been returned, and I had the new reference, and it did indeed work perfectly. The latest “problem” concerned an object that was no longer in stock. They sent me an email, apologized, and suggested a new product. It was sorted out (and waiting for me in the showroom) the same day. Problems do occur, and I don’t mind problems. The most important part is how they are handled, and these guys set the standards for other companies.

The second part of the letter talked a little about my family, and especially my daughter. They said sorry to have kept me too busy at times, instead of playing with Eléna. I am the only one responsible for that, no matter how good their products are. To say sorry, they also added a present; a mug with a heart on it. A typical gamer object, the heart is the sort you see on 8-bit games (or Minecraft), and is black when the mug is empty, and red when it is filled with steaming hot caffeine. They did indeed write that the mug is for her, but that’s OK, she can’t read yet. I’m a terrible father, but this is just too awesome to let her play with it, and I need caffeine for the next book.

So, why do I write books? I write books for letters like this. A quick letter is always nice, and I’m always thrilled to hear what people think, but letters like this go far beyond anything I expected. I cannot find the words to express how I feel, which is indeed a shame for an author.


ARM Accredited Engineer

TGVFrance. Somewhere between Angers and Nantes, on the high speed rail link. I’m on a French TGV, an extremely comfortable, fast, reliable train. Its cruising speed is about 320 kph, close to 200 mph. Right now, it is doing zero. While this train is ultra modern and highly reliable, the one in front would appear to be slightly less reliable, and has broken down. We are stuck, in the middle of fields, in a zone where cell phone reception is non-existent. It has been like this for close to two hours, and my laptop is down to a critical 10% of battery. I fold it up, and think about the last few days. They have been interesting, to say the least.

Tuesday. A small waiting room, somewhere in Nantes, France. I’ve been invited to a job interview. I know this building, I used to rent offices here when I had my own business. This won’t be with the end client, and I don’t think I’m going to know much about the company that is considering hiring me.

The door opens, and the recruiter asks me to come in. I have over ten years of experience, and I know how most interviews go. I’ve cleared my schedule for the afternoon, most interviews last at least two hours, sometimes more, so to be on the safe side, I’ve planned on being here all afternoon.

The recruiter presents himself. I’ve never heard of his company, but he makes it clear that he is working for a client, who wishes to remain anonymous. He asks a few questions, but mainly, he confirms what he has on my CV. “I see you have worked for x and y”. I think I already know the name of his client, but time will tell. Maybe.

The first question. “Have you done a lot of C programming?”. Every single job I have done has had at least a little bit of C, a few have been 80% C. So I answer. Yes, I have done a lot of C, for example, when I was at… “Yes, all right, thank you. And any C++?”. Once again, the answer is on my CV. Yes, indeed, especially with… “So, the answer is yes, thank you”. He continues with a few yes/no questions, and to be honest, I’m a little destabilized. I haven’t had the opportunity to explain who I have worked for, what job I had with them, and the different highlights in my career. I’ve had a few interviews, but a yes/no interview is a first. Then he asks the question; “Are you an ARM Accredited Engineer?”. No, I’m not, but I’m the author of a book… “So, the answer is no”. That’s it, I’m not listening any more. I consider this interview to be very unprofessional, and I don’t think that the recruiter has any technical background. I get the feeling that he has a list of candidates, and is looking for an easy way to filter candidates. Less than 30 minutes later, he thanks me, and I leave. I’m almost surprised that no-one is waiting for me in the corridor, I was almost convinced that this was a joke, but apparently not.

That was an interesting evening. I thought a lot about that interview, about how I could have handled the situation differently, how I could have had the edge, but especially, how I could have explained my career choices, but with only yes/no questions, I don’t think there was much I could have done. I shrugged, concentrated on my family, and got some rest.

Wednesday. I’m getting ready for another job interview. I have a little bit of time to spare before going to the train station, so I log onto the ARM Connected Community. A few new posts, some very interesting questions and news, and one or two messages. I decided to write a quick article about what happened to me. Writing a book on ARM processors has been an amazing few months of my life, but the most rewarding part is the people I have met on the way, and a few of them work for the company I wrote about. I decided to share my thoughts with the community in what was supposed to be a funny post, then I left to get the train.

The job interview was in another city, not too far from mine. This one went very well, and lasted over three hours. The people in front of me gave me all the time I needed to explain my professional projects, the choices I made, and the highlights. Then the technical questions. They asked me if I knew what an MMU was. I showed them a copy of my book, Chapter 3, ARM Architecture. The engineer had a quick flip through the book, and immediately crossed out half of the questions. An hour later, I’m back on the train, the one I was stuck on.

Stuck. That is the word. We aren’t moving, and probably won’t be for some time. I’m resisting the temptation to face palm every time I hear some of the passenger’s questions to the crew; can’t we just overtake them? Sure! We’ll push this 600 tonne train onto the other tracks, overtake them in the hopes that there isn’t another train coming head on, avoid getting electrocuted by the overhead power lines, and then get back onto the original track. A few days ago, I received an advert in the letter box; Pizza delivery! We can deliver anywhere! I’m tempted to give them a call and try out their theory, but I still can’t get reception. I sit back and listen to some music.

Three quarters of an ambient album later, we are moving, an I might just be able to get back at a reasonable hour. As we make our way towards Nantes, my cell phone starts to vibrate. Civilization! I can finally access my emails again. I have a quick look at my phone, and I can’t believe what I’m seeing.

My original post was supposed to be funny, and I thought that a few people would add a quick remark here and there, but I wasn’t expecting this. A few comments indeed, and even more on LinkedIn, but also a few emails to me directly, from some very nice people at ARM. One was curious about who asked these questions, another who explained that this is not what the AAE program was about, and a third one who noted that it was my birthday a few days ago, and that the only thing missing was an ARM tee-shirt, and that I would be getting my “tee-shirt” soon. A few emails later, I found my “tee-shirt”. A very nice gentleman from ARM contacted me, said how hard it must have been for me, and offered me a free ARM certification as a gesture of “good will”. I read the email. I read it again. And again. I looked at the destination email. It looked familiar. He called the person “James”. Wait, this must really be for me? Seriously?

I’ll admit, I wasn’t very polite; I took almost a week to answer him. Why? Well, I was busy with a few things, I wanted to wrap up the interview, write a little… but the main reason was simple: I was speechless. This wasn’t what I intended; I wasn’t asking for anything, merely telling people what had happened, and if anyone had encountered something similar. I read his email again.

It was free, no strings attached. He asked if I would be kind enough to tell him when I planned on taking the exam (the voucher is valid throughout 2014), and if I would be kind enough to write something about how the exam went. I think I can do better than that.

Enter “ARM Accredited Engineer” on Google, and the very first link is, of course, from ARM’s website. There are a few Wikipedia entries, one or two sites with information, and some training centres that either prepare for the exam, or certification centres where you can take the exam. There is not a lot of information about what people feel about the exam itself. This might be where I can help out. So, thank you ARM, I gratefully accept your present, and I intend to take the exam, but I also intend to write about it every step of the way; training materials, documentation, questions, and the exam itself.

Wait a minute; why would I actually need the exam itself? After all, I did tell the recruiter that I wrote a book on ARM development! Surely I don’t need this? Well, I do. It was extremely presumptuous of me to even think that writing a book would be the same as the certification. My book is aimed towards beginners, and while I do go into detail about some of the subsystems, it does not mean that I have the same level as an AAE. A large panel of people were involved in assembling questions, and the result is a certification that carries a lot of weight in the industry. The certification asks random questions on the ARM architecture, from programming to subsystems, memory management to optimization. The proof? ARM has a few mock exams on their website, and I failed miserably on the very first question. So yes, I do need this.

I intend to take this exam, and to do everything necessary to achieve my goal. There are study courses available on ARM’s website, and a few very nice people at ARM have offered to help if I have any questions. I won’t be doing that immediately, I’m currently writing a second book, but when the rush is over, I intend to blog every step of the way. Maybe this way I will be able to thank ARM for everything they have done? Probably not, but it is a start.