👹8 Ugly Truths I Found While Working as a Software Engineer👹
Tags: javascript, beginners, nihilism, career
Published: 2020-08-20 16:45:36

Well, I have been paid for writing code for some years. And, I have found some ugly truths that I always wanted to share in a blog. Hopefully, you understand that my intention is not to make you feel bad...

** TL;DR
  * [1) The more on tech trend you are the more replaceable you are](#ugly-1)
  * [2) Your co-workers are not your friends](#ugly-2)
  * [3) Your boss will take credit for any 'good work' created by you](#ugly-3)
  * [4) If you ever let anyone know that you are planning to leave your job the company will be really mean to you](#ugly-4)
  * [5) Certification == Disposable](#ugly-5)
  * [6) People is always looking at your screen or worse](#ugly-6)
  * [7) The Good Place](#ugly-7)
  * [8) Everything will be fine as long as investors are getting their expected revenue, otherwise **Heaven** could become **Hell**](#ugly-8)


![alt surprised monkey meme](https://media.giphy.com/media/3o72F8t9TDi2xVnxOE/giphy.gif)

<strong align="center">
:gift:This post is a special nihilistic gift for everyone.:gift:
</strong>

So, I enumerate these 😧😧ugly truths😧😧 and then I share an anecdote, description, or related information to that specific topic, then closing each with a 😌😌lesson😌😌.

![alt yin and yang symbol represented by fishes](https://media.giphy.com/media/wM2jsoKbVTur6/giphy.gif)

<strong align="center">
☯️Remember, Yin and Yang: A balance between Good and Bad☯️
</strong>


Here we go:

### 1) The more on tech trend you are the more replaceable you are<a name="ugly-1"></a>
####Anecdote:
When I was in college everyone was saying we need to learn Java, that there were many job offers, but I didn't like it. I always thought that I chose the wrong career. However, I found JavaScript and it was so similar to C for my newbie's eyes(now I know that JS is more related to lisp), I always loved C. 

Then, I started to learn JavaScript. Eventually, I started working as a web developer. I found lots of JS projects with people that had no idea how JS works. Also, it is incredible the number of managers that are not willing to pay for a JS specialist until they have no other option, and that's why at least in my country at top senior levels JS is better-paid x1.5-x2 than Java.
####Related:
Here is [Donald Knuth](https://en.wikipedia.org/wiki/Donald_Knuth) giving advice about don't follow trends: https://youtu.be/75Ju0eM5T2c

An extract of my favorite poem in the English language:
*[...]I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I—
I took the one less traveled by,
And that has made all the difference*
by [Robert Frost](https://en.wikipedia.org/wiki/The_Road_Not_Taken)

####Lesson:
Scarcity makes you valuable.

### 2) Your co-workers are not your friends<a name="ugly-2"></a>
####Description:
This is something more related to common sense. Like almost everything in life sharing too much time with people doesn't make them your friends. Of course, you can make friends from work but that is very unlike. Out there are people that are willing to go really low to maintain status or job positions. If you ever find sabotage, lies, and bad intentions don't be surprised.
####Related:
To illustrate this situation. I am adding this scene from Malcolm in the Middle, here the family finds out that Reese's teacher is sabotaging the perception of Reese's performance at school. The same situation is possible with a manager at work:
https://youtu.be/pU-uZztJEcQ

####Lesson:
Be careful with what you do and what you say. There could be people willing to use anything against you.

### 3) Your boss will take credit for any 'good work' created by you<a name="ugly-3"></a>
####Anecdote 1:
In my country, as a requirement to graduate from college, you need to work for free 6 months usually in government projects. This is called 'community service', when I was doing my service I created a project that months later was presented as someone else's work.
####Anecdote 2:
I was working at a consulting company. I found a flaw in our logic in a module that we used in multiple projects. I am not going into details but the fix improved performance 40% and savings for 30% on servers. The CEO gave a raise and a bonus to my direct boss. 😒
####Anecdote 3:
I was working for a product company. There was this bug that many engineer have been working on for like 5 months. Finally, it was my turn to give it a try, I created a fork from the open-source project we were based on. Recreate a whole module and I found out that the official documentation was lying and that some formulas were wrong. After that, I created a solution proposal.

Then my direct boss asked me to go to the CEO office to explain the solution for approval because they were about to buy lots of licenses of proprietary software to work around that bug. When we were leaving the office my boss says to the CEO that he had 'a better solution' than mine that what I said was just an idea. Once when we were outside the office, I asked him what was the other solution, and he told me 'There is no other solution. We are going to use yours.'

Look I don't like to think bad about people, but I am sure that he did that to take credit in case I was right, and if I was wrong to blame me because It was my idea. In the end, the bug was fixed with my solution, and everyone forgot that it was the main problem of the project for 6 months.

####Lesson:
Be prepared to defend your work, use email, control version always document what you do.

### 4) If you ever let anyone know that you are planning to leave your job the company will be really mean to you<a name="ugly-4"></a>
####Description:
This is like a law of software companies. I have made this mistake. On my first job, by saying to my boss that I was going to an interview. He sabotaged the whole interview process calling me all the time during the interview, giving me extra work that week. A lot of passive-aggressive actions like taking away my ID so I suffer to enter the building standing outside. 

Also when something like this happens and there is the need to fire people they are going to choose you first. The worst is when the people at the new job don't continue with your hiring process. Sometimes people end up without a job because of this. I know many developers. I would say that each year, I hear stories like these 1 or 2 times, they were trying to change to another job and something goes wrong and then they lost everything.

####Lesson:
Don't let anyone at your current job know that you are trying to get a new job. If you need to take interviews, take your vacation days, or ask for permission to leave the office earlier. Only say something until you already have a concrete deal with the people from the new job, this means you had accepted their offer and you discussed the details about your hiring. Also, you should ask for time to organize things in your current job.

### 5) Certification == Disposable<a name="ugly-5"></a>
####Description:
Anyone who has enough years in this industry knows that most of the time, certifications are not correlated to how well prepared a candidate is. I have experience in hiring people and creating the annual business plan with the owners of a few companies. 

When we are doing Java projects it is really savage because the certifications are very standardized for that language, so for managers whenever a developer is under the average performance literally they say, *get someone else with the same certifications* and that's how it is done, just like that. The worst thing about it is that sometimes they are letting go, great engineers with many years of experience and replacing them with just graduated juniors that create programs with lower quality.

####Related:
Here, I will extrapolate statistics to be the equivalent to certifications:
*There are three kinds of lies: lies, damned lies, and statistics.*
-Mark Twain

Here is [Kent Beck](https://en.wikipedia.org/wiki/Kent_Beck) criticizing SCRUM certifications:
https://youtu.be/fH4gqsIYzyE?t=1201

####Lesson:
Certifications don't replace hard-smart work. Even degrees don't replace hard-smart work. You should value a person at their job, based on their work and nothing else.

### 6) People is always looking at your screen or worse<a name="ugly-6"></a>
####Description:
The obvious case about this is the situation when your direct boss catches you watching doge memes and videos of kittens, this is embarrassing. It happened to me once with the RHCP concert at the Giza pyramids last year 😁. 

However, when you spend more time with managers you find out, that many companies have tracking software installed on each computer at the company they do that to track workers' behavior. They can know how long people are really working and they have access to almost everything, and you can't do anything because technically those are their computers, not yours.

####Lesson:
Always be professional inside and outside the office, especially when using the company's devices because you never know who is watching. 😅 Btw, always log out from your OS account when you are away from your computer.

### 7) The Good Place (yes!, like the Netflix Show)<a name="ugly-7"></a>
####Description:
The only reason for having a fancy office and amazing benefits are investors throwing money because they want you to make them richer, not because you need a nice place to work.

####Lesson:
It is good to be passionate about work but remember at the end of the day. It is a business and most of the time what moves everything is money.

### 8) Everything will be fine as long as investors are getting their expected revenue, otherwise **Heaven** could become **Hell**<a name="ugly-8"></a>
####Anecdote:
I saw a CEO founder being fired because he couldn't make the company more profitable, we were having a steady 40% annual growth for 5 years in a row. The company went from 40 to 500 employees. Those numbers were incredible, which is really good for any business but the investors were anxious because of the slow return on revenue. Someone thought that it was a better idea to find a 'better CEO' whatever that means after that almost every founder was leaving the company. The last thing I knew about that company is that nobody knew how the products worked and they had a complete year without any new product and that everyone was leaving even the new hires.

####Lesson:
Sometimes you and your team are doing an incredible job. Unfortunately, the real owners of the company are not aware of it and start making wrong decisions. Don't take it personally and don't be too hard on yourself.

## Conclusions

Well, those are a few of the many ugly truths that I have found while working on the software industry.

Enumerating these, makes me think about the people out there thinking that being a programmer is super easy. Because you can land more easily a well-paid job. Or that we are living 'the dream' but that is not 100% truth. Being a great software engineer demands a lot of hard-smart work.

Please, share your opinion about these topics. Thank you for reading.