How To Choose A Software Engineering Job
Tags: career
Published: 2022-07-18 06:12:41

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c16iyki4u1w1a1fof07e.png)

**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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bwogjx3pc6gggvm6pr1u.png)

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](https://www.wework.com/ideas/professional-development/creativity-culture/how-to-describe-your-company-culture#what-is-company-culture)

![company-culture](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iulyjnvdc9ykz0fyffwt.png)

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](https://techwithmaddy.com/elegantly-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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8cvch9gsgl7hus7hwplw.png)

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](https://techwithmaddy.com/what-is-the-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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5fivl1x8zxfxy48crbx2.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e9s80v2gdentqkm8hbyu.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qrkon25wbt543bkf9ulf.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/66xfsxruzan467cpwuzf.png)

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](https://techwithmaddy.com/newsletter) where I share curious tips around tech, software engineering and career development. I hope to see you there!