When most people think about computer software, they think of either Bill Gates or video games. There is, however, a whole world between those two extremes.
Software allows us to put technology to use by making it accessible. There are a number of software packages and programs available today, ranging from the latest version of Doom to diagnostic software used by physicians. Other software applications include compiling code to run on computer chips, programming robots and database design. The men profiled here work in the latter fields, one representing software as part of a hardware company, one working in robotics development and the third as a systems/network administrator at a graphics company.
Explaining his role as a software engineer at a hardware company, Jeff Baer of National Semiconductor, comments, "A lot of the work that we do is providing input, designing the chips so that it's going to run the software faster or it's going to run it better or it's going to be easier to program. There's an educational component [to the job] because at a chip company software people make up maybe 2% to 5% [of the work force] so we have to educate others on software issues."
Unlike the stereotype of someone who sits and writes code all day, never leaving the glow of his computer screen, these software engineers have moved beyond simply writing code to interacting with customers and in-house personnel making software easier for them to use.
Name: Jeff Baer
Title: Senior Manager, Cyrix Division, Tokyo, Japan
Company: National Semiconductor Japan, Ltd.
Education: B.S. in computer science, University of California at Santa Cruz
Current Projects: "I'm not doing direct coding anymore. I'm working with customers as more of a software advocate now. I help the customers with the design of our products and with [some of their more general] software issues."
Why He Took the Job: "I didn't know what I wanted to do with my life, and working for a chip company was a way to use the skills that I have as a tool toward learning about something else. And it was an interesting way to learn about hardware and about chips, which is something I knew nothing about. So rather than using the software as the end itself, it seemed to make more sense for me to use it to learn about something else and maybe in the course of that, find that really intriguing thing that I wanted to do when I grew up."
Biggest Job Surprise: "[As a software person at a hardware company,] the perspective was so totally different that it took me a while to recalibrate myself and understand how hardware worked and how it tied together with software."
Biggest Problem Encountered: "If you go to work as a software engineer at a hardware company, things that you take for granted are foreign: the language, the issues, everything is unknown. You're in an environment where what you do is an essential function, but it's not mainstream. The hardest thing I have to do is [overcome the differences in perspective]. I might have to do 15 minutes of education before I can ask a question or make my case, which takes 30 seconds."
Advice to Future Software Engineers: "I had a VP when I first started out and we had a layoff or something traumatic like that and he basically said good people land on their feet. Things happen and if you're good it doesn't matter, you'll find something else so focus on being good, being confident and proving yourself. I [also] recommend to anybody graduating that you work on your communication skills. Take a presentation class. It's miserable, but even engineers have to do presentations and if you're good at it, it's easier and you'll go a lot further in your career. Also, work on your written communication. Get out of the computer center and take some writing and public communication classes."
Name: Dave O'Toole
Title: Senior Product Development Engineer
Company: Fanuc Robotics, Rochester Hills, Mich.
Education: B.S. in automated systems engineering technology, Lake Superior State University
Current Projects: "Robots have their own programming language, and what I'm doing now is writing a PC version of the native programming language so that customers can program the robot from their computers instead of inputting the program directly into the robot. I'm working with a graphical user interface in Windows and translating the robot's programming language."
How He Knew This Was the Field for Him: "When I was growing up, video games were getting popular, and that sucked me into computers. I pretty much knew in high school that I wanted to go into computers, but I wanted to do more than sit at a desk for eight hours a day. With robotics, you have this robotic thing that moves so it's more interesting."
Biggest Job Surprise: "The writing and communication. The more planning and writing you do up front, the easier the project goes. I was surprised at the amount of time I spent writing specs and planning out projects."
Biggest Problem Encountered: "If something happens at the customer site, I have to debug it from my desk instead of at the factory. It could be the operating system or a mistake you made in the code; it's hard to tell. That's the sort of problem I usually face."
Non-Technical Skills Needed to Succeed: "I would repeat the writing and interpersonal skills. You have to talk to people and when you interview customers, you want to understand what they want and make sure the product is what they are looking for."
Advice to Future Software Engineers: "Understand the manufacturing process, for example, welding. Understand how the welding works, how the currents pass, how the welder is programmed. Understand the big picture of the application."
Name: Darshan Timbadia
Title: Systems/Network Administrator
Company: Mentor Graphics Corp., Warren, N.J.
Education: B.S. in electrical/computer engineering, Rutgers University
Current Projects: "I am currently working on providing a multi-threaded three-tier (database/client/server) application for the in-house support team. I am writing this in Java due to the variety of platforms in use in my company. The project involves network (TCP/IP) programming, as well as a relational database design and interface. The system allows support team personnel to have a 'live' view of incoming help requests.
"This project has now extended to different sites within the company, so I am busy adapting and supporting enhancement requests for our counterparts at other sites."
How He Knew This Was the Field for Him: "I could not (and still cannot) see myself applying the same skill set over and over again, and not picking up new skills. Software engineering, in my opinion, is not just programming, but also [being an] architect and supporting the design. It offers such a wide variety of experiences that it would be hard to get tired of the field completely."
Biggest Problem Encountered: "Software engineering classes in school describe ideal scenarios, where requirements for a particular task are well defined and not subject to change.
"This is not true in practice. More often than not, requirements change while I am working on something, so I need to quickly adapt to the changing needs."
What the Future May Hold For Him: "I have been attending Rutgers part-time and taking classes toward my M.S. in electrical/computer engineering. Currently, I have only my thesis pending.
"[In my job,] I hope to take on larger tasks and projects while accumulating a wide variety of skills. Hopefully, these projects would give me some managerial skills and prepare me for even larger projects where not only my technical skills, but my abilities to delegate and coordinate are put to the test."
Advice to Future Software Engineers: "The jobs are rewarding, both financially and intellectually. On the other hand, it may also be taxing at times, especially because one must keep up with technology over and above fulfilling your duties. As long as you are willing to work hard and devote yourself, you can take this field to whatever level you like."