Open side-bar Menu
 Embedded Software
Colin Walls
Colin Walls
Colin Walls has over thirty years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, Colin is an embedded software technologist with Mentor … More »

How did I get into this?

 
July 14th, 2015 by Colin Walls

I often get emails from students asking me how to get started in a career in embedded software. I have to assume that they think that this is a path to a well-paid job and a corresponding glamorous lifestyle. I would hate to disillusion someone who is just setting out on life. I guess that I had great expectations too.

I am never able to give detailed advice on what to do and just comment that embedded software engineers actually come in several flavors. At one extreme, they are engineers with a deep knowledge of hardware and only do a bit of software when necessary; such skills are ideal for developing drivers and other low level code. At the other extreme, there are programmers who have no idea about embedded systems, but are focused on the application domain; their skill set is not very different from a software engineer working on applications for Windows or Linux. And, in the middle, are guys who understand real time behavior and real time operating systems.

The nearest to advice that I can give, apart from obviously recommending my book, is to explain how I got into embedded …

It started when I went to university. That was (wait for it) way back in 1975. I had no real idea what I might want to do for a job/career, but I had always been interested in science and technology, so I went to study Materials Science, as this seemed quite broad. The course was OK, but I made some friends who were studying computing and this got me interested. I had had no exposure to computers before; this was new and fascinating.

So, I had a new hobby. I started out writing FORTRAN and sent off my programs on punched cards, getting a printout hours later. I dabbled in other languages and got to use interactive terminals (not screens – noisy teletypes). Then I discovered that I could gain access to minicomputers – DEC PDP-11s and a PDP-8. I really liked having exclusive use of a computer and getting a chance to really understand what was going on, instead of having a monster mainframe OS doing it all.

So, a typical day for me was lectures and labs all day, spend the evening with my girlfriend, then play with the computers into the early hours, snatch a bit of sleep and then do it all again. I learnt a lot. Having sole control of a computer with either no OS or, at most, a lightweight monitor program, was exciting. I started using more low-level languages – BCPL (a precursor of C) was a favorite – and assembly language, of course. I even programmed the PDP-8 in binary from the switches on the front panel. I still have a lingering feeling that a real computer should have a line of lights and switches on the front. Looking at my iPad on the desk next to me makes me think that we have come a long way.

When it was time to look for a job, I had a choice: follow my degree and become some kind of scientist or find somebody to pay me for doing my hobby. Needless to say, the latter won. And I had no shortage of opportunities. I did not know enough about the software business to make a rational choice, but broadly I had to select between the “commercial” world (COBOL and mainframes – all seemed quite glamorous) or “real time”, which looked more fun. I am very glad that I took the route that I did.

My first job was programming mini-computers controlling materials testing machines (so there was even a vague nod to my degree). In due course, I started working with microprocessor-based systems – embedded systems, as we would call them now. From then on, fuelled by my historic interest in electronics (another hobby when I was a teenager), through a couple of job changes, I gradually became more specialized in this area.

In some ways, things have come a full circle. Few embedded systems nowadays, except smaller 4/8/16 bit devices, have no operating system. I am quite comfortable with a lean RTOS, like Nucleus, but I am much more wary of the trend towards more complex options, like Linux/Android. It can be hard to figure out what is actually happening with a heavier weight OS. I also wonder where my career might go next.

One Response to “How did I get into this?”

  1. Avatar Gary Dare says:

    Colin, I sort of ‘stumbled’ into this domain myself. I started out in General Science to buy time and find a direction. Quantitative math and physics suited me better than chemistry and biology, the strongest area being in electronics so I switched to electrical engineering. But they had a different first year sequence and there was no way that I could graduate in under 4.5 years rather than the normal 4 years for a baccalaureate. That and for family reasons, I needed to stay in town for five years. And after taking my first programming class (back then, the only one for the EE sequence), I was hooked. Data structures, operating systems, computer architecture (lots of ‘big picture’ sharing in the campus pub with friends after digital logic design classes), it was time well spent and laid out a foundation for graduate school and my eventual so-called career. The rest of the details are on LinkedIn! 🙂

Logged in as . Log out »




© 2024 Internet Business Systems, Inc.
670 Aberdeen Way, Milpitas, CA 95035
+1 (408) 882-6554 — Contact Us, or visit our other sites:
TechJobsCafe - Technical Jobs and Resumes EDACafe - Electronic Design Automation GISCafe - Geographical Information Services  MCADCafe - Mechanical Design and Engineering ShareCG - Share Computer Graphic (CG) Animation, 3D Art and 3D Models
  Privacy PolicyAdvertise