You have read about employees that go to work in flip flops carrying a surf board, stopping by the break room for free breakfast with baskets full of fruit and waffle makers ready to press those waffles to delicious fluffiness. Enter the Software Engineer.
Gen Y & Gen Z unite on the scene of the next wave of technology innovation and advancement as we have moved into the age of smart phones and tablets and people are talking about the Internet of Things. An important note I would like to make, this wave is not limited to young coders of the world. Those that paved the way have demonstrated solid staying power proving this career path is a good one for all ages.
There are over 1 million employees working as a Software Engineer in the United States. This profession has rated high on best career lists since the mid-nineties. The work place perks and benefits are one reason for the high demand. The fantastic income and career path is another.
Glassdoor’s 2016 Best Jobs report criteria qualifies the profession as one of the most solid career options. In the report, there were nearly 50,000 job openings in January earning an average of $95,000 annual salary and earnings that can climb to nearly $300,000 per year.
For those keeping track at home, that is $8,000 to $25,000 per month, $400-$1,250 per day, or $50-$150 per hour. Now that is stacking Benjamins!
Software Engineering is predicted to have high on-going demand over the next two decades and a career path to and through Software Engineering may be worth checking out.
So What Exactly Does A Software Engineer Do?
To those familiar with software development this is known as the Software Development Life Cycle (SDLC). Companies today have an Information Technology (IT) department responsible for the company networks and systems. Many departments have specific needs that need to be automated or built into a system.
The options available to the company are to build the system in house or buy the system off the shelf from a vendor.
Buying from a vendor commonly does not allow for necessary customization, may have recurring support and maintenance fees, and has a road map for improvements that may or may not be preferred.
When building a system in-house there is greater flexibility in adding new features and applying fixes. There is also less burden of maintenance and lower on-going costs to maintain.
Software Engineers can enjoy good salary, benefits, working hours (nine to five) and are not commonly injured on the job.
There is some injury risk related to wrists or vision. This is due to the amount of typing and staring at computer screen for long periods of time. There is also health risk related to sitting for long periods of time and the job can be stressful when working long hours or under pressure to meet deadlines.
Example Software Engineer Job Listing
Dude Solutions is the market leader in education Cloud operations. They serve more than 6,000 institutions and over 1 million educational professionals. They help clients by providing a safe teaching and learning environment.
- Example listing
Candidates can plan a strategy for landing jobs like this one. It may begin with a skills assessment to identify weaknesses or gaps that need more training.
The key is to get the experience and skills necessary. The evaluation of open positions is a great way to identify next steps. One of the best ways to get experience when not able to get it on the job is by doing “side projects”.
These side projects can be through formal education, open-source projects, or your own projects. You can even buy a book or two and go to town programming at night and on weekends.
An Interview With A Software Engineer
Matthew Martin describes his path to software engineer by going to a for-profit school to learn how to program. He recommends going to college for more formal instruction and other benefits. Matthew has worked for companies like Xoom, Logitech, and Boku.
He informed that a college education in Computer Science is a good foundation and moving on to industry to get experience after undergraduate degree is a wise move in his opinion.
Getting higher education after working for a few years allows you to shape your interests before committing to learning specialized areas of programming.
He also stated that to be successful with a career in Software Engineering you have to love writing code. You also must be able to take feedback and adapt and change as needed.
Things Matthew Has Learned About Software Engineering
- You will not be writing code all day long
Junior programmers program the most amount of hours. They take detailed task instructions from lead developers and project managers. Most of their day is spent coding.
But as a Software Engineering career evolves the subject matter knowledge increases. This subject matter knowledge is served well in delivering strategy to teams and managers. More time is allocated to project meetings, requirements review sessions, design sessions, sizing solutions and code reviews.
The allocation of time spent coding as a Software Engineer:
- Entry-level (1-3 years): 90% coding, 10% not coding
- Mid-level(3-7 years): 80% coding, 20% not coding
- Senior-level(7 years+): 0-20% coding, 80-100% not coding
- All developers do not care about writing quality code
Good code is easy to read and understand. The programs work and perform efficiently. However, not everyone is interested in writing quality code. Some Software Engineers may not be that knowledgeable, may be lazy, or may just not care about good performing code.
- Developers do not know everything about every language
Developers may be familiar with programming languages but are not 100% fluent in all aspects of all programming languages. Software Engineers may be considered senior with 7-10+ years of experience. However, since programming languages evolve and change the fact is that no one person can know everything about every language.
- Software Engineers are never finished with education
You will always be learning in this industry. There are new programming languages coming out all the time. There is an evolution of existing programming languages. Software Engineers must always be working to better understand frameworks, troubleshooting, scale, integration, architecture, and complete working systems.
- You can make $240k to $250k per year if you specialize
Engineers that have a high aptitude and interest in Math with relevant work experience can achieve salaries of $200k+.
The art of making $200k+ commonly involves getting a Masters degree and 7+ years of experience demonstrating mastery of a core skill that is in high demand.
Software Engineers who specialize in Discreet Math and Machine Learning understand how to effectively build algorithms and defensible solutions that cannot be easily replicated. This is a high-value add to companies. Companies risk departments need Engineers proficient at building and testing models.
- What is the difference between Consultants, Analysts and Software Engineers?
You do not write code as a Consultant or an Analyst. As a Consultant or Analyst you may be required to evaluate or analyze whole systems or parts of a system. Your job function may be to make recommendations and write requirements for new solutions.
What Do Software Engineer Hiring Managers Look For?
Matthew is now a Manager and describes some important things he looks for when finding, interviewing, and hiring Software Engineers.
- candidates have a portfolio of work that can demonstrate work
- likes to be able to review code in tools like Github
- candidates use code quality tools to write good, clean code
- candidates demonstrate that they genuinely like writing code
- favors candidates with contributions to open-source projects
- strongly values candidates with other engineering background
What Matthew Recommends To Start As A Software Engineer
Matthew’s Parting Advice For Software Engineers
Matthew informs that you should ABC (Always Be Coding) and ABL (Always Be Learning) to have a great career as a Software Engineer.
He also qualifies that if you are interested in Software Engineering and think this is the career path for you then you must test your theory.
The answer is easy. Just start coding. You can save yourself a lot of time and money by just getting started before going to far down the path in college and life.
Changes To The Software Engineering Landscape
There have been some notable changes to the Software Engineering landscape.
- Device Driven Programming
There was a shift from desktop programming to web programming in the mid to late nineties. Throughout the 2000’s the shift to mobile development became necessary timed to the popularity of smartphones and Apple’s iPhone and Google’s Android devices. Around 2010 the shift to tablet programming became necessary to keep up with the iPad and other tablet devices that became the preferred method of web surfing, game playing, and social media connecting.
There has been a big worldwide marketplace for developers and software engineers. A lot of US Corporations are adoption an offshore outsourcing model to create a hybrid workforce to maximize 24-hour development opportunities and reduced wages, commonly referred to as a blended rate. Regardless the global demand for Software Engineers still far exceeds the supply of qualified candidates. This will likely shift in the coming decade and is something to monitor.
- Agile Development Methodology
Agile has become a popular method for developing and delivering software products and solutions over the past decade. Nearly 80 percent of Fortune 500 companies are adoption agile practices as a means to develop products to market faster and cheaper than ever before. Agile is a methodology that defines a minimum viable product and delivers just the essential minimum deliverable that adds value to the customer.
My Two Cents
The demand remains strong for Software Engineers and will be something to monitor over the next decade as we see technology trends shift and change. But it makes sense that many career options will remain available in technology for a sizable time period. The field will allow for career pivots or changes as necessary. I am always a fan of this type of career insurance.
Due to such strong current and future demand, it makes sense to evaluate if the career would make sense for you or a career-bound relative or friend. Those with a good aptitude for math, logic, reasoning, and problem solving may do well as a Software Engineer. The stereotype is that Software Engineers are introverts but that is not always the case.
There is an advantage to the people out there who enjoy and appreciate some alone time to write code AND also enjoy working in teams. With the popularity of Agile methodology there is active team participation with daily routines and group work to understand requirements, design and develop to those requirements, and test those requirements.
There are many routes to the career path for a Software Engineer.
- Software Development Manager managing a team of Software Engineers
- Technology Manager responsible for a system or team of IT resources that support a system
- Technology Project Manager responsible for delivering IT solutions and running projects
- Chief Technology Officer of a company
- Senior Level Software Engineer allows the opportunity to remain an individual contributor
A Software Engineer also may like to gain mastery skills of specific, niche in-demand technologies. This can be achieved by attaining a Masters Degree in Information Systems, Analytics or Computer Science.
You can remain in a large corporation or choose to make a big impact at a smaller company. Alternatively you can start your own consulting company or go to work for one. You will then be able to command higher salary with your advanced skills.
Starting out, it makes sense to go to college while working on side projects to gain the skills and experience needed in the marketplace. Obtaining a job while in college is also advisable to earn money and gain critical on-the-job skills employers love new hires to have coming out of college.
If pivoting and looking to transition into this field, college is not required if you already have a college degree. Gaining the coding skills becomes your #1 pursuit. There are some coding academies that may be worth checking out.
FlatIron is a coding boot camp that has become so popular that is as difficult to get into as Harvard. The results are promising because its graduates are commanding top jobs with the best IT companies in the US. This is one boot camp worth checking out as featured in a recent Wall Street Journal article
My wife graduated with a computer science degree. She worked herself through college. She realized she was on a good career path when she earned more income than the full-time staff that she worked with in her first college job (non-IT) on campus. Her career has paved the way for a great career and lifestyle.