DEV Community

Cover image for How To Choose A Software Engineering Job
Maddy
Maddy

Posted on • Updated on • Originally published at techwithmaddy.com

How To Choose A Software Engineering Job

Choosing a software engineering job is a two-way decision. The company chooses you, and you have to choose them.

From the software engineer's point of view, there are multiple angles you can take to choose a software engineering job.

This article will introduce you to a variety of them, and hopefully, it will help you when job hunting for your next role.

Let's start.

1. The Company Type

In the IT sector, software engineers can work in two types of companies: product and service-based companies.

product-vs-service

What's the difference between the two?

A product-based company is a company that has at its core a tangible product. Product-based companies usually offer more stability and a higher salary. Software teams are of smaller size. Often, they operate in one specific domain. In a product-based company, you'll work on one tech stack, which is unlikely to change over time.

Examples of product-based companies are Netflix, Google, Monzo Bank, etc.

A service-based company is a company which doesn't have a tangible product at its' core. It employs a large number of software engineers with a variety of skills to work on software projects for other companies. Service-based companies usually offer fewer salary hikes but more opportunities to work on different tech stacks, clients, domains and projects.

Examples of service-based companies are Infosys, Accenture, Palantir Technologies, etc.

2. Your Desired Lifestyle

The Coronavirus pandemic has dramatically changed how we perceive work and the office.

Whether you prefer the office, work from home or a combination of the two will depend on your personality, lifestyle design and personal responsibilities.

There are two styles of working: hybrid and remote.

office-vs-remote

Hybrid working is when companies require software engineers to be physically in the office some days of the week (usually 2 or 3).

Remote working is when companies allow software engineering to work from home most of the time, if not all the time.

Beware that remote doesn't necessarily mean that you can work anywhere in the world, even though I've read of companies allowing their software engineers to work for a specific number of days. Often, it means you can work from anywhere within the same country.

Then, we have the subcategory of flexible working.

Flexible working is a way of working centred around the engineer's needs. Flexible working allows engineers to decide on their hours, and managers trust them to do their work.

This is particularly helpful for those with kids or when you have a medical appointment.

Another note: often, companies will impose "core hours", which are mandatory hours where you will have to work.

Overall, choose what helps you maintain a healthy work-life balance.

3. Company And Engineering Culture

First of all, what is company culture?

Company culture refers to the set of values, ethics, and beliefs that define the day-to-day operations and atmosphere at an organization. WeWork

company-culture

Company culture is challenging to evaluate from interviews.

Every company has a dedicated page to what the company values and how they operate.

Some signs of healthy company culture are:

  • Many long-term employees.
  • Open communication.
  • Company celebrates wins.

From an engineering perspective, one question you can ask when going through the interview process is how the company handles incidents and how you will receive feedback as a software engineer.

A no-blame culture is a vital sign of healthy engineering culture. Giving and receiving feedback respectfully will be part of your job.

4. Career Progression

Many software engineers consider career progression essential when choosing a software engineering job.

career-progression

Even though you will be hired for a specific role at a particular position, you may be interested in knowing if the company offers a defined software engineering career path for those who want to climb the ladder.

5. Benefits/Compensation package

Companies will always give you a salary. But they won't always give you "extra money" outside of that.

The rule of thumb is that the salary alone should be enough to cover your expenses.

It's a huge plus if a particular company offers a bonus scheme or any way to add extra cash on top of your basic salary.

If the company doesn't offer a bonus scheme, sometimes they may provide benefits that save you money.

Typical benefits offered by companies are:

  • Health insurance.
  • Extra days of holidays on top of the minimum required by law.
  • Share Save Scheme.

basic salary-bonus-insurance

Another thing to consider when choosing a software engineering job is the on-call compensation. On-call shifts most of the time (if not all the time) don't get advertised, but they're popular. On-call shifts require software engineers to work unsociable hours to keep the systems running.

You may want to choose a company that pays on-call shifts.

6. Learning Budget

This is minor, but a learning budget helps you upskill at the company expenses.

learning-budget

Since software engineering is an ever-evolving field, companies set aside a learning budget for each software engineer to pay for courses, workshops, and attending conferences.

7. A Sense Of Purpose

purpose

Not all software engineers find this essential.

Some enjoy working for companies with a cause close to their heart and find this crucial when choosing their next software engineering job.

8. Diversity And Inclusion

Similar to #7, this varies from person to person.

I include it in the list because it's becoming increasingly important overall.

diversity&inclusion

Diversity&Inclusion is not strictly related to gender and ethnicity, but it's also about people with disabilities and ensuring that the company actively listens to everyone equally.

How To Choose A Software Engineering Job Conclusion

You've read about eight criteria for choosing a software engineering job in this article.

Some software engineering jobs can be strong in ones (for example, compensation package) but weak in others (flexible working).

What do you value most among the ones listed?

Let me know in the comments.

Until next time.

🙋🏾‍♀️

P.S: if you enjoyed this article, you might benefit from subscribing to my newsletter where I share curious tips around tech, software engineering and career development. I hope to see you there!

Top comments (2)

Collapse
 
smeetsmeister profile image
Jelle Smeets

Great post Maddy!

I had the product/service decision to make a few years ago.

I used to work at an agency that sold websites. Everything needed to be done yesterday, and zero time for actually building something nice. Just get it barely working and on to the next customer.

With my current product company I can actually spend time building a solid foundation, improving, making our customers happy.

One bonus point for my next employer would be if it would be a company that does something to make the world a better place.

Collapse
 
isabelcmdcosta profile image
Isabel Costa

Great post Maddy :) I certainly had to think about many of these for when I did my most recent job move. Career progression was a big one for me!