It seems like software engineering is the new business degree. “Just get a computer science degree and you will have job security forever,” they said. Well, maybe not that optimistic, but there was a massive boom of programming jobs, and even with large lay offs in the technology sector over the last year or so, it seems like there is still a good amount of positions that are open. So the question remains: is it feasible to chase a job within software development? Let’s take a deep dive on the different factors to consider when finding a job.

Pay

While hiring managers and HR would love to believe that we take jobs because we love the work or the company, that just isn’t true for 99.99% of the population. We need money to pay the pills and put food on the table, plain and simple, and software engineering has been known to have a high average salary when compared to other industries. Though I do want to caution, that within my experience, the $130,000 average salary of a software engineer is almost never the case. Let me explain why.

Just like every job, factors like experience, location, company, and the economy play an equal part in your take home pay. Unfortunately with software engineering, most companies do not view college as experience (check out my other post if you are wondering about pursuing a degree in software engineering). And there are massive differences in the salary from company to company even when you have the same experience. This is due to some not valuing the work that engineers do, or they are trying to cut costs as much as possible to keep up with competitors.

If you are green to the industry, you will be lucky to make about 65% of that $130,000 salary. Don’t count on making 6 figures right out of the gate, but $80,000 is still nothing to scoff at, that is fantastic. The problem comes in where most programming jobs are salaried, meaning you are paid the same if you work 20 hours or 80 hours a week. And trust me, you will be closer to 80 than 20 most weeks. But we will get into that later.

Location is the final piece to the puzzle (since I can’t speak to the economy when you are reading this, but I hope it is better than when I am writing this). A lot of companies adopted work from home opportunities because of the COVID pandemic, but now that the world is “back to normal”, companies realized they had incredibly expensive leases on office infrastructure and want everyone to return. Which means that you will most likely have to live in the same city as the office, and there is a big difference in 80 thousand dollars living in New Mexico versus 80 thousand in California. And from my experience, most companies do not offer realistic cost of living adjustments.

One good thing about the pay and hours, is that since you are in the technology industry, which is known for horrific burn out, there are usually pretty generous PTO benefits. But I have yet to see a job where you can take that PTO and not have to still answer your phone for work messages.

Keep in mind that contractors usually are paid more, but do not have nearly as flexible time off or any sort of benefits. And they are treated a lot worse than salaried devs due to being a lot more expendable. I recommend being salaried if you have a choice.

Work Life Balance

If you are familiar with any IT or technology industry, you will know that the work life balance is abysmal, especially if you are the new hire, get ready for a trial by fire.

Two of the biggest issues with the tech industry are being on call, and supporting on the weekends.

When you are on call, you are expected to answer the phone at any time for work related issues. Many times have I just cooked dinner, or put on a movie to watch, when my phone rings and I have to jump on to a zoom call with 5 other people looking to me to solve all their problems. After who knows how long, I either have a cold meal or a tv screen that turned itself off. It is hard to decompress.

Supporting weekends is just like being on call, but during your only time off, and it is never planned well. In my years, I have yet to support a weekend that went smoothly without any issues and we were done in a reasonable time. Unexpected issues always arise, and you always have to wait for another engineer to be called that is in the middle of an errand and can join for an hour.

At one of my first jobs, I have a terrible memory of having to work a full 8 hours during the day, then support a full 8 hours the same night for a release, and then repeated the next day. I did 32 hours of work in 48 hours, and by the third day I had an alarm set for every 15 minutes because I would fall asleep so fast, but was still expected to work. I didn’t last long at that company.

But it isn’t all terrible. Usually your teams will have rotations for the support and on call schedule, giving you time to breathe. My best advice is to take breaks when you can and as often as you can. Work will always be there, so take a second to breathe and step away. I can’t count the amount of times I have had to walk away from my computer so I didn’t reach through the computer and strangle my coworker on the other end. Take care of yourself because no one else will.

Industry Culture

There are a lot of stereotypes within computer science, information technology, and software engineering. Such as everyone smells really bad, we are all socially awkward nerds, or everyone is incredibly sexist and paranoid. But the good news is, none of that is true.

Sure, you will always have some bad apples who are elitist and think they are better than everyone. Or they are so scared of loosing their job, everything they create is so convoluted only they know how it works. But when you actually start meeting others and learning about your fellow programmers, you will see that there is a lot of support and willingness to collaborate within software engineering.

Though I do want to warn, just like any industry within the corporate world, it is more about the people you know than the work you do. I absolutely despise going to company parties and mixers, since I have much better things to do with my free time. But these are the new golf courses. You can meet upper management and get them to remember you when promotions and raises come around. First impressions are importantly, make sure to have a good one.

Industry Growth

There is a lot of uncertainty with many industries right now due to AI. Software engineering is no different, and might even be impacted more than others. If you are interested in a deeper dive for how AI might impact your job, check out my other post.

With the sheer amount of information you can learn within code development, there is always room to grow and new information to learn. New job opportunities can arise because of knowledge learned from a previous role can be used in your current position. But it can definitely be overwhelming.

From front end development to back end development, database administration, devops, cloud engineering, and now with AI: prompt engineering, there are so many avenues you can follow. While not all of the information learned in the previously stated topics is transferable, the approach to problem solving is the same.

Certifications, trainings, and conferences are a fantastic way to showcase your talents or provide a new perspective on new technologies. Taking advantage of these when you can, either through reimbursement from your company for certification test costs, or visiting a conference to sit in on lectures for something new you are interested in learning.

But the expansiveness of knowledge within software engineering is a double edged sword. It seems like companies are asking more and more of their developers as time progresses; not only are you responsible for the application code, but you also need to know how the continuous integration and continuous deployment pipelines work. You will probably be asked to know enough about databases to write complex queries that rival those of database administrators. Add to that the supporting software used for debugging and gathering evidence (such as navigating kubernetes to gather logs, viewing unit test coverage in SonarQube, and verifying no vulnerabilities are exposed in the code with a service like Snyk) and you might get overwhelmed. My advice? Ask questions, write things down, and don’t ever worry about getting help. Anyone in the right mind would understand the sheer amount of information you need to know is too much for one person, so they should be compassionate enough to help you out.

Conclusion

Just like any career, there are pros and cons. With software development, you can expect a good salary, but it does come with a lot of work in a fast paced, demanding environment that you might have to sacrifice your work life balance. It can be very rewarding and engaging, with plenty of opportunities to move around. At the end of the day, only you know what is best for you.

If you want to pursue a career in software development, good luck! Have any questions? Leave a comment or find me on social media and I will be more than happy to assist where I can.

Leave a Reply

Trending

Discover more from The Parking lot

Subscribe now to keep reading and get access to the full archive.

Continue reading