Computer Software Engineer Interview
Meet Jim Amweg, a software/firmware engineer at Silent Power.
Please share your name, title, and a brief description of your job duties and responsibilities.
My name is Jim Amweg. I am a software/firmware engineer (aka, programmer) for Silent Power in Baxter, Minnesota. My duties include designing, implementing, and testing embedded code that operates our OnDemand energy appliance.
Currently, I head the software/firmware development for the OnDemand energy appliance projects. I make recommendations and decisions concerning the architecture and give feedback on proposed functionality on complexity and time to complete. Our product consists of seven individual processors linked via CAN (controller area network). These processors run the inverter and charger, and act as battery and PV shunts and translators. We currently have one full-time electrical engineer coding the charger, one contractor helping with the user interface, and me.
What is a typical day like at your job?
My typical day can be summed up in one word: hectic! I typically work anywhere from eight to 14 hours per day designing, coding, answering questions, and providing guidance on an as-needed basis. I have trained some engineering technicians to download the firmware to the processors and do some system-level testing so that my time isn't all eaten up doing that type of job. We really spend very little time in meetings, since there are so few of us trying to do so much, so quickly. We have been trying to hire a couple more people, but are finding it difficult to attract the type of talent we need to this area.
How did you get started working in this field?
I am one of the lucky few that absolutely knew what they wanted to do very early on in life. When I saw my first mini-computer and punched my first FORTRAN program onto cards I knew then that I wanted to write compilers. Compilers are programs that turn source code into object code for various programs. I was delayed achieving this goal by a four-year stint in the U.S. Navy. I was a disbursing/ship's store officer aboard a small destroyer-class ship. It had a single digital computer aboard (in charge of firing the missile!).
I went straight to graduate school after the Navy and studied computer science. I was then lucky enough to find a job doing exactly what I had in mind: Ryan McFarland Corporation was a small consulting company that wrote custom compilers. I was with them for almost 10 years before joining Wang Labs in Massachusetts in their languages and tools department writing compilers for the Wang VS mini-computers. In another seven years, the compiler development business dried up so I switched to embedded software development, where I've been enjoying myself ever since.
What sort of training or education do you have?
I've got a Bachelor of Science in math, a Master of Science in computer science, and an unusual aptitude for designing and implementing complex software/firmware.
What sort of tools, machines, or equipment do you use regularly?
Here at Silent Power, we develop using Microsoft Visual Studio (MSVS) as an editor. For the user interface (running Windows CE), it is all we use since the code is written in C#. For all the other processors, we still use MSVS as an editor and use Keil tools, Code Composer Studio, and IAR tools. At other jobs, I've developed on Linux, Sun-OS, and Windows cross-compiling for different processors.
What skills or personal qualities are good for this job?
Above all, you've got to love writing and debugging code. I tell everyone/anyone who'll listen that it's a good thing I can get paid for doing what I do since I'd be doing it anyhow. I can truthfully say that there is nothing I would rather do than write code to solve a problem.
What do you enjoy most about your job?
I get paid for doing something I love to do — how much better can it get?
How does your job benefit the environment?
I believe that home energy storage is where things are and should be headed to ease the burden on our antiquated electrical grid. There are programs in place to modernize the grid (which really hasn't been done since the 1950s), but the more we can do to smooth out the demands placed on it, the better it will be for everyone. Our OnDemand product is doing just that. It takes energy that is generated at times when the utilities really don't need it, stores it, and can then either use it to power home circuits rather than powering them from the grid, or actually sell power back to the grid when it's needed most. That lifts some of the burden of power distribution from the electrical utilities.
Are there any common misconceptions about this type of work?
Lots of folks really don't understand just how critical it is to do what it is we're trying to do with our products. If we can ease the burden on the utilities, they can proceed with their modernization at a somewhat less frantic pace. That reduces the burden that has to be borne by their customers right away.
What changes in this field do you expect to see in the future?
If I knew the answer to that question, I could be financially able to work when and where I'd like! The changes we see today in the electrical production and distribution arena are, I'm sure, only the tip of the iceberg. As the importance of making the electrical grid more efficient and opening up new venues of electrical production become more obvious, the changes in this area can only be dreamed about.
What is your advice to someone interested in this field?
Get in as soon as you can and apply yourself with everything you've got. It's going to be a wild ride, but I think it'll be worth the effort.
Any final thoughts you'd like to add?
I've probably already said too much! As you can probably tell, I'm a total geek. Computers are relatively well behaved, and I can usually get them to do whatever I want. It's the human part of the equation I have most trouble understanding. My only regret it that I wasn't born a little later. The future's going to be very exciting, and I'd really like to be around to see more of it.