Showing posts with label carreer. Show all posts
Showing posts with label carreer. Show all posts

1/24/2019

How to choose the right comapany for you?

To choose the right company for yourself can be really difficult, because each company is different. Of course it makes sense to read the evaluations of companies on websites like glassdoor or ask people who are already working there. But as a first step you need to figure out what kind of company are you looking for.

I tried to set up four main categories of the software companies. Not all the companies are fitting 100% into one category, some of them are overlapping between multiple categories. I tried to cover the four most typical type of company, describe how are they to working, what are the advantages and disadvantages of them. This is mainly written based on my personal experiences and experiences of friends.

Let’s see the four big categories:

  1. The multinational company

There are several well-known multinational companies all around the world which are working with software developers. Their main focus is not always just software development. Most of these companies are well-known, so if someone is asking you where are your working you can proudly tell the name of the company and everyone around the world will know it.

These companies are usually to really directed by one person, in a lot of cases the one who established it already died years ago. The same company is usually present on multiple continents and in multiple countries. Some of these companies were either startup or family business at the beginning.

Advantages of at a multinational company:

  • Salary over the average
  • Connection with people all around the world
  • Well-defined processes
  • Good opportunity for specialists to go deep into a topic
  • Option for travelling
  • Good company events (Christmas party etc.)
  • High variety of trainings
  • Long future at the same company


Disadvantages:


  • High bureaucracy
  • Quite often it is difficult to change to new technologies and new topics
  • Usually the work is done in big open-offices, which can be stressful
  • Strict due dates
  • To high manager/developer rate
  • Often not enough space for new ideas (you need to use what is already done)
  • These companies are often stucked to 20 years old code base


  1. The startup

A startup is a new company with a new idea. At the beginning it is usually financed by sponsors. The successful startups will either become a multinational company with time or they will be simple bought by an already existing multi. The unsuccessful startups will either just go into dept or they will stay as family business.Working at a startup is in my view a bit more than a normal job. You need to believe in the goal of the company and you need to do everything for that.

Advantages of working for a startup:
  • New technologies
  • Great technical challenges
  • Big freedom
  • Interesting product

Disadvantages:

  • Uncertain future
  • Less focus on work/life balance

  1. The consultancy company

A consultancy company is a software house which is overtaking projects of other companies (most of the cases it is a multinational company). If you are working at such a company you will change your projects frequently, you will work with multiple technologies and multiple code bases. Most of the cases communication with the customer also belongs to your tasks. You can learn a lot of technologies, but the constant changes can be stressful after a while. Your freedom on technical topics can be limited by the customer (you won’t be allowed to make bigger decisions).
One of the most difficult issue for the leaders of such companies is to be flexible enough. Just imagine: your customer which was using 10 of your developers for a project just telling you that from next month you need only a team of 4 developers. You need to plan something for the other 6 developers urgently. Or other way around: all of you developers are busy with projects and a good opportunity is coming where 10 developers should start from next week. This is challenging.

Advantages from developer point of view of working at a consultancy company:



  • You can learn multiple technologies
  • You can get connected with a lot of people
  • You have always new challenges
  • You can work for multiple companies without changing employer

Disadvantages:

  • Frequent changes can be stressful
  • It can happen that you are sitting without project for a while
  • Most of the cases you can not go deep enough into topics

  1. The family business

Not all the companies in this category are really a family business. I mean here the mostly smaller companies which are working on one product or service for long time which has a certain amount of users. The company is not taking big risks and not investing too much into new products, they are just doing the same thing since long. It can be either some web application (like creating really similar webshops) or a mobile application (again nothing really special) or anything else. It is also typical for such companies that they are using some older technology which is working well, so they are not changing it. These companies are usually not really growing. It is ideal for people who doesn’t like stress.



Advantages of working for such a company:



  • Less stress
  • No needed learning curves
  • Good work life balance
  • The team is like a family

Disadvantages:

  • It can be boring to work there
  • Not all of such companies can survive nowadays
  • No opportunity to build a real carrier

I hope you could get some info to start to figure out which type of the companies is really for you.

9/13/2018

5 points to do and 5 points not to do if you are asking for a higher salary

It is always difficult to ensure your boss to increase your salary, for some people it means so much stress that they are rather not asking for that at all. I collected some points to do and some points to avoid at asking for a higher salary.
To do:
  1. Find the right time slot

You need to find the best time and place for that. Always be between four eyes with your boss, don’t mention such needs at a party or in front of other colleagues. Only start to talk about that if your boss looks happy and relaxed, make sure that your boss has free time and is not in a hurry. The best strategy is to ask your boss for a feedback session or if you have a regular one mention your needs there. At some companies there’s a yearly feedback meeting, at such companies use that meeting for such reasons. Do not start your discussion with this topic, let your boss finish first all other topics, leave it to the end of your meeting.

  1. Ask for a feedback and use the words of your boss

First figure out what is the opinion of your boss about your work. Don’t tell as reason that you are working well if his opinion is totally different, it won’t work. It is a good strategy to ask your boss to a feedback about your work. Most likely there will be positive and negative points as well. If there are only negative ones than sorry, you have a low chance for a higher salary. First always reflect on the negative ones, ensure your boss that you are trying to change them. After that you can tell something like this: “As you mentioned you satisfied with my work, because …, I’m glad to hear it, because I like to work here as well, I have only one problem, I’m not feeling comfortable with my current salary”. Your boss can not really give a negative answer for this sentence. The only thing how he can regret your request is to tell that “the company has a hard financial situation”, but that’s all. One more thing: ask for a feedback session even if you don’t wanna request for higher salary, because on long-term it is bad if your boss knows after your first question that it is all about your salary.
  1. Mention all the success of your projects

    The most important counter for a team manager is the success of the projects in his team, that’s what is making all the benefits for the team. So if your project is running well (meeting the due dates, customer is satisfied etc.) then it is a good point to mention. Don’t mention your projects if they are not running well.
  2. Mention all the extra efforts you did

Mention everything what you did in the previous period over your project work, like: you supported new colleagues, you wrote a good training material for the team, you developed a tool which is helping the daily work, you were representing the team at some events. These are always good points to mention. If you wanna reach a higher salary it is a good idea to do something like this before asking for a higher salary.
  1. Mention all you responsibility you are having

    Next to the things what you have really done mention the points you are responsible for: you are taking responsibility over a software component, over functional tests, over a subproject, you are organizing a meeting session, you are responsible for a student at the company: mention it, even if you didn’t need to do anything with that. Do not mention it if something went wrong with the topic in the previous months.

Not to do:
  1. Do no compare yourself to others

    It is never a good reason that “I’m working harder than XY”. Maybe you are mentioning the favorite team member of your boss and no one likes if someone is speaking against their favourites. Or if your boss is not satisfied with the one, then he will simply think: “it is not so difficult to be better than that guy”. Always concentrate only on yourself.
  2. Do not mention concurrent companies (or use it only as your last weapon)

    I don’t see it as a good idea to tell that at the neighbour company your could have a higher salary, even if it is true. Your boss will think you are not loyal enough and won’t trust you anymore. Mention this point only as your last weapon before resigning.
  3. Do not use your personal situation as a reason Do not mention things like, “I have a big family, it costs a lot” or “I need to pay back my bank credit”. First of all it is your private thing. On the other hand it makes the feeling that you are weak. You are paid after your performance and not after your private situation.

  1. Do not mention your weaknesses It is good if you know what are your weaknesses, but it is not time to mention them. Here you need to show that you are the best employee ever, even if it’s not true.
  2. Don't be impatient Most likely your boss won’t give you a direct answer, be always patient, don’t ask it again every day, let him have the time to make the decision!


Do you have any other idea?




All the best:

Relaxed Programmer

8/16/2018

How to deal with stress?


In this article I won’t tell you any secret magic which counts down with all the stress during your work and I don’t wanna write like a “positive energy coach”, because I think it makes totally no sense without some more concrete points. But if I ask any of the good software developers about that what is the most difficult part of their work, some of the following expressions will be part of the answer for sure: pressure, stress, too much work. So I think it makes sense to talk about this topic.
The stress if there for everyone, the most common sources of stress are time pressure, technically difficulties, bugs and communication with colleagues and customers. Some of the developers can handle stress quite well, some of them have a worse stress handling skill. Usually the ones with better stress handling can reach better positions during their career, better work-life balance and all things considered they are happier.
When I was a beginner sometimes I had the feeling, that I’m the only one who is under stress and the more experienced colleagues are not under pressure. Later I realised that it was not true at all. They were stressed as well, but they could handle it. Later on during the years I learnt to handle it in a better way, but sometimes I’m still having difficult weeks. These are the most important points in my view:

  • Always know what is your motivation to work there, why you are doing it at all. For example my motivation is to bring the best life quality to my family what I can. For that I need a job with a good salary and with good work-life balance. Next to that it is making me fun the develop my technical skills. Find what is your real motivation and think about that in difficult situations. It’s giving you some energy.
  • Try to always do your best, but not more than that. So if you have a challenging task first of all try to understand before starting with that if you are able to achieve it in time and if you have the needed skills or not. If not ask for support in time. After that try to do your best during your working time. But if it is not enough to finish the task in time, don’t worry, always think that you did your best.
  • Always communicate in a clean way. If you are seeing in advance that you won’t be done in time, just tell it to your team and manager, avoid surprises. But of course always make sure them that you are doing your best. Unless doing it in this way the others will think that you are not motivated enough.
  • Don’t let yourself stuck in uncomfortable situations. If you’re feeling yourself uncomfortable, because of your tasks, colleagues etc. always let your team lead/manager know that you are feeling uncomfortable with the current situation. That is the way to give it a chance to change your situation. But you need to know, most likely it won’t change immediately, sometimes it needs some time.
  • Never communicate in an aggressive way with your colleagues and customers. If you are angry rather go down and walk a bit or drink a coffee before writing your e-mail or talking to your team mates. Always try to tell them your point in a calm way. Aggressive communication is just generating a stressful working environment.
  • Don’t think that other projects are running better. I was working at different companies on different projects, but one thing was common: the project was always behind the schedule. As I was talking with other programmers they had similar experiences. It’s so because that’s one way how managers are trying to let work done faster: if something is running on schedule let’s reschedule it and let the project have less time/workforce.
  • Never forget: if you are a good developer you will have a job even if your project or company is failing!
  • Go through on previous articles about How to manage your work time and How to estimate your tasks.
These were all of my points, but I hope you can extend them with some new ones!



All the best!

RelaxedProgrammer

How I prepared my first online course

Since long I didn't publish anything here. It's because I was busy with some other topics, but now it's time to share the result...