I’m a software engineer with a Masters in Computer Engineering.
How would you describe what you do?
I work for a small contracting software company. Our company takes requirements from customers (other companies, usually) who need a software and/or hardware package to do a specific task.
I write software on anything from microprocessors to phones to PCs. My specialties are: mobile software, wireless networks, forensics, and user interfaces.
What does your work entail?
Software engineering is a huge field. My career has had me on large interdisciplinary teams, as a single engineer, and as a lead engineer on small teams. I’ve been in charge of: gathering requirements from the user, designing the software system, designing the hardware system, writing the software, assembling hardware, system integration, lab testing, field testing, and delivering the system to the user.
Each engineer I’ve met has brought their own unique flavor of experience to the table. Some stay in a single field for decades and become very proficient in it. Some other engineers (like myself) like to sample many different types of engineering and keep their job changing frequently.
How did you get started as a software engineer?
Math was not an easy subject for in high school, but I knew that I wanted to do something difficult and interesting for my job. 4 years to get a BS in Computer Engineering got me a job working as a low level software engineer. That company then paid me to get a masters in Computer Engineering while still working full time. That method is a very popular path to higher education in the engineering fields.
What do you like about what you do?
The main challenge to staying on the leading edge of technology is also the best thing about the job: you’ll always be learn something new. Many times when a major company comes out with new technology my job will change to match it. New operating systems require new software to be written. New hardware requires tweaks to existing software. There is always something new to learn.
Generally I can choose the direction of my studies and research, which allows me to follow my interests. Can’t ask for much more than that.
What do you dislike?
It can be a very fast-paced and stressful job at times. Some weeks I work over 100 hours. Getting past a difficult technical hurdle or handling a difficult user or customer can be tough.
How do you make money/how are you compensated?
I’m a full-time salaried employee.
How much money do you make as a software engineer?
Right now I make $150k.
How much money do you make starting out?
I made $50k out of college.
What education or skill are needed to do this?
I’ve worked with fantastic developers who never completed college. I have a masters. So…somewhere in there is good.
No matter your level of education, your skill-set is the number one priority. Coding on your own and understanding software and computers at a broad level will get you in the door at most companies. Continuing to write software on an open-source project and/or on your own projects will make you stand out from the crowd.
What is most rewarding about this job?
The entire process of having a customer come to me and describe their problem to the final product that solves it.
What is most challenging?
No one ever asks me to do something simple or something that has been done already. No answers are found online in forums or in sample code–that’s why I get paid well to do my job. I have to take my own understanding of software and hardware and design a comprehensive solution to a problem. The challenge is to not get burnt out and to keep having great ideas that you can follow through and execute a real-world solution.
What advice would you offer someone considering this career?
Write code. Write in any language you want, and then write in another one. Write code that gets reviewed at some point–even if it’s just a fellow programmer. Hiring managers at large companies see hundreds of resumes of people who just do the course-work. Being the person who does well in class and then does extra work will get you the job.
How much time off do you get/take?
Varies between jobs. 3 weeks is average. I take off an occasional Friday, but generally not all three weeks.
What’s a common misconception people have about what you do?
That we’re all nerds who sit in dark rooms and drink coffee/soda all day. Many of us are also athletic and do some neat sports on the side. Most software engineers are just technically-oriented people or enjoy solving problems.
What are your goals and dreams for the future?
Part of me wants to run the department and call the shots. But I also know how much of a pain that could be. I’m pretty happy being an engineer who mostly calls my own shots.
What else would you like people to know about what you do?
If you want an easy job that doesn’t require much effort, go work at Walmart. Engineering is a difficult field and takes dedication to reach the higher levels. Getting there is rewarding and once you’re doing well, it’s a good life.