Find a good company as a fresher developer

As an IT student who just got out of college, you might ask:

  • How can I find a good company?
  • How to gain experience as fast as possible?

Of course, as a fresher with not much experience in the fast-changing world of technologies, you don’t have many chances. So you often accept the first offer that gave to you.

I don’t say that it’s not good, as the wise men said:

Never blame anyone in your life. Good people give you happiness. Bad people give you experience. The worst people give you a lesson. Thes best people give you memories.

Any kind of experience, either good or bad, is what makes you who you are today.

Image for post

Photo by Clément ROY on Unsplash

But time is precious, staying in a bad company might cost the time of your life. After several years at those places, you will feel struggled, unmotivated, and going to work 5 days a week is a nightmare to you.

That’s why I’m here to tell you (a fresher developer) something about a great IT company that you might want to look for.

Notes: This article is 100% based on my own experience. The views and opinions expressed in this article are those of the authors and do not necessarily reflect the official policy or position of any company.


People are the most important factor in any organization. And a great company always has great people.

If you are working in a company for a month or two, and the co-workers are still not willing to help you with some problems that you can’t figure out, it’s a signal that you should look for a new company soon.

This is true for all cases, no matter how shiny the company seems to be.


There are two popular kinds of companies: product and outsourcing.

I recommend you, a fresher software engineer, to choose the product company as the first step in your journey to becoming a senior software engineer.

Because the nature of an outsourcing company is making software for “other companies”, so they often:

  • Try to get things done as fast as possible, so they can take more projects => The timeframe is rush, you won’t have enough time to dig deeper into the technology.
  • Don’t care much about the project in the long term, because most of the time, after giving the customer the project assets, the project is considered “done” => You will not have the chance to solve the “hard” problems, the problems that will only occur when a product has a lot of users (the problem of scaling).
  • Use technologies that are old or out-dated, it’s not a surprise if you see an outsourcing company still chooses jQuery, Prototype.js, or Magento 1 for a new project. The reason is that they need to select the technologies that many available developers can use => You might be stuck with out-dated technologies for a long time.

I’m not saying that there is no good outsourcing company. There are, but honestly, they will not hire you (freshers). Those good outsourcing companies, only hire senior developers.


Nowadays, testing is one of the most important parts of the software development cycle.

If the company that you are working for doesn’t have automation testing or doesn’t have a plan to have it soon, it’s a sign that the quality of the code that the company made is not guaranteed. Even the smallest change can break the whole project and it will take a long time before that bug can be fixed.

Also, without automation testing, it’s impossible to set up a CI/CD workflow for the project.

You will spend more time fixing bugs than creating something valuable. Again, time is precious, so take this seriously.


Throughout history, people always try to find ways to make the working process more effective, and at present, agile software development is one of the best methodologies.

Successfully adapt this methodology proves one thing, that’s the company is trying its best to be more productive, more effective, and that’s the C-level people want to push the company forward.

Find a company that is using ScrumXP, or something similar. Instead of focusing on the final result, you will focus on the progress, which is better for long term results.


This is not a must because each company has a different strategy, so don’t expect that companies must follow all the trends in this IT world.

That’s why I put this point the last, let’s think about it as a bonus point. If the company that you will work for has this, it’s great. If not, that’s fine.

Recently, you might hear some keywords such as cloud-native, Kubernetes, Docker containers, serverless, microservices, CI/CD …

They are all the most trendy things in the world of software development right now. And it’s a great opportunity for you to catch the wave, to be up-to-date.

Also, it’s more productive working on a project that contains many of microservices than a project that is a monolith, that’s why Netflix, Amazon, Google, Facebook are all using this kind of architecture.


Image for post

Photo by Kristaps Ungurs on Unsplash

Maybe it’s hard for you to imagine just by reading those paragraphs, so I will give you an example. I will talk about Linagora, the company that I’m working for at the moment.

1. The co-workers

This is the thing that I love the most about Linagora.

I don’t say that 100% of my colleagues are great (nothing is perfect, isn’t it?), but most of them are.

The open-source mindset is one of the great things here. We are willing to share what we know, and also willing to listen to others.

2. The outsourcing company

Linagora is a “product” company since the beginning 20 years ago. And most of our projects are open-source on Github: https://github.com/linagora.

So, Linagora is an open-source company.

3. The testing

At Linagora, there are more test cases than I’ve ever seen in my whole life.

We have unit testing (both backend and frontend), integration testing (to make sure that the calls to APIs or database storage are fine). We also have a team of automation QAs who their job is to write end-to-end tests.

That’s a lot. The testing stage when CI runs can take an hour or even more.

But when we need to add a new feature, to fix a small bug, or just to refactor an old piece of code, those test cases make us so confident.

The more important thing is: we don’t need QA employees to do the manual testing any time a single developer pushes a new code. It helps us to spend human resources on something that really matters. But don’t get me wrong, we still need QA in our software development process, it’s just we don’t need to waste their time on tedious and boring tasks.

4. The collaborative framework

At Linagora, we use Scrum. The time for a sprint varies for each team, but it’s often around 2 or 3 weeks. This short timeframe keeps us productive and focuses on the sprint target.

In each sprint, a member of our team has to play the role of the Scrum master, which in my opinion is a good thing, because all members now have the responsibility.

5. The modern best practices

At Linagora, we are using Terraform for provisioning, Ansible for configuration management, Kubernetes for orchestration (to manage containers in a cluster), Gitlab for CI/CD, and also version control, …

On the other hand, there are some legacy technologies that we are trying to move away from, such as Angular.js (will be replaced by Vue.js), Node.js callback style, or deployment on bare metal, …

Linagora is a big company with a lot of projects, so moving away from old things will take time and patience.


That’s it, five things you should think carefully about if you want to stay in a company for a long time.

The better choice you make, the faster it is for you to become a true senior developer…

Happy coding! See you in future posts.

By TRINH HUY HOANG – JUNGLES TEAM @ LINAGORA VIETNAM

Thanks to Le Cong Tuan and Christophe Hamerling.

How can we help you?

Contact us at our nearest office or submit a business inquiry online.

Looking for a trusted partner in Open Source?