Day in the life of
Software Engineer – Kris Silvey
I am a contracted Software Engineer who works on Army projects.
I was always interested in computers and coding, but never thought it would be a job that I could get. I studied computer engineering and computer science to prepare for my Software Engineering career. Since then, I’ve been fortunate enough to work on a multitude of projects over the years. These projects include work for NASA equipment, ARMY Tracked Vehicles, and virtual trainers (for soldiers and their vehicles).
My Typical Day
My typical day includes a lot of collaboration and research. Writing code on big projects is a team effort. That means communication is a key part of the job every day. You won’t be a productive member of a team if you try to hide at your desk and go survive lone wolf style. This does mean that I participate in some form of a meeting each day. Sometimes they are daily standups to give a quick status. Other times I engage in multiple hour long discussions about how to solve a particular problem or derive requirements for an upcoming project. Teleworking in the past year has caused quite a few disruptions, but thanks to applications like Microsoft Teams we have still been able to have “face to face” conversations with peers.
On the flip side, you do need to be able to take a given task and run it to the ground. That doesn’t mean going solo, but a good Software Engineer should be able to problem solve and take the lead on a given issue. As a member of the team, I can take a given task and my leads know that I will be able to get it done.
There are additional benefits to working on amazing projects over the years (besides the paycheck). Here are a few of them:
- I have been able to participate in Javelin Missile testing
- I was able to drive a real military Humvee with experimental equipment
- I was allowed to write code for multi-million dollar turrets systems
- I have been able to travel for work all over the United States
- I can literally say that I have written code that is now in space
- Work on complicated problems
- Sometimes the projects themselves are literally groundbreaking
- Most of the people I’ve ever worked with a great and encouraging
- The pay is nice as long as you are willing to put in the effort
- Complicated problems can sometimes be frustrating
- Working with people means there will be conflicts and disagreements
- Deadlines means that sometimes you have to work late or participate in overtime
What should someone think about before considering becoming a Software Engineer?
I would say the most important characteristic of every successful Software Engineer is the ability to be flexible in what you do. Never pigeonhole yourself into anything. That goes for everything. Know that you will always be learning. And if you aren’t learning something new then you are falling behind. I’ve been in the industry since 2005 and just this year I have had a project come up where I had to learn how to use the Ada Programming Language. I thought I’d never had to worry about that, yet here I am watching tutorials and buying books about a language I’ve never used before. Never become too confident in your abilities. There is no way to know everything about everything. Be humble and willing to ask questions. You will fail, but that’s all part of the process. Refusal to learn from your mistakes and seek insight from others will oust you. Software Engineering means working on technological innovations, but the ability to work with people will get you the farthest.
develop, create, and modify general computer applications software or specialized utility programs. Analyze user needs and develop software solutions. Design software or customize software for client use with the aim of optimizing operational efficiency. May analyze and design databases within an application area, working individually or coordinating database development as part of a team. May supervise computer programmers.