Blog Closed

This blog has moved to Github. This page will not be updated and is not open for comments. Please go to the new site for updated content.

Wednesday, August 13, 2008

Software Engineering Hardware

My business card will, once it arrives, list me as a software engineer. The job posting that I responded to was labeled "Software Engineer", and in my interview I was questioned almost entirely on my programming skills and history. Besides some of the personal scripting work I've been doing, however, most of what I do is hardware.

And therein lies the truth of small companies: With so few people, everybody has to do a little bit of everything. I spent much of the morning today working on three basic projects:

  1. I was migrating all my "stuff" to a new laptop that my boss bought for me. No longer am I working on a little Eee PC, now I'm working on a nice Lenovo Ideapad. I'll talk more about this later. Getting the essentials (Perl 5.10, Notepad++, Firefox) goes relatively quick, getting all the other garbage I need (Microsoft Office and Groove, a series of proprietary design tools, satellite monitoring tools, and web authoring tools) takes much longer.
  2. Hardware testing and analyzing. We were using the battery voltage as a pullup bias for our input pins, but the trickle current makes our low-power goals infeasible. Now, we're looking to use one digital output as the bias for the other digital input, and using a regular polling function to read input instead. Saves power, but definitely not software-related.
  3. Cabling. I had to scavenge some old cat-5 cable that was strung up around the air conditioning vents, strip the ends, solder on new connectors, run them up to the roof and set up monitoring stations.
I spend the day working with the hardware engineer who used to write software, the software engineer who is becoming a manager, the manager who writes web applications, and the mechanical engineer who installs our electrical devices. My boss has a funny little pantomime where she takes off one imaginary hat and puts on another. It's quite fitting, really.

The truth is that in embedded systems, it's impossible to separate the software work from the hardware. To verify proper software operation I have to set up cables, pull out the multimeter and the oscilloscope, warm up the soldering iron, and start flipping switches. In a computer without a monitor, a keyboard, or a mouse, how else are you going to test and debug it?

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.