· Jose Antonio López · 18 min read
What Nobody Tells about Working as a Developer
How does an undemanded language affect you? What situations are red flags? What absurdities can bosses tell you? What lengths will you go to for a client?

Introduction
They say the first job leaves a lasting impression. In my case, it was the second. I will base this on my personal experience so you can see what mistakes I made and what work aspects you should consider if you are starting in the programming world. All names that may appear are fictitious. The characters are real.
Table of Contents
Why I Write This Article
I love the IT profession and can’t imagine doing anything else. I’ve seen many posts on social media with laptops in cafes. They are cousins to the posts of hammocks on beaches.
Surely they are excellent places to work, but it is not the reality for most programmers. Especially if you intend to program without prior experience and without a mouse. Just with the pad…
With this article, I want to help you avoid the same mistakes I made due to a lack of information. I want to give you real information about my real experience. I will tell you about mistakes I made and how things can go wrong from one day to the next when the project or client requires it.
I don’t want to alarm you. However, keep in mind that it is also a demanding profession like any other. Maybe the idea doesn’t sell as well as a cafe, but here is a bit of reality that will surely help you.
Second Job
My second job was at a software development company. Specifically, it was a company that develops its own ERP and implements it in manufacturing companies for the automotive industry.
What Happened in My First Job?
I was fired after 5 months despite having a permanent contract and having passed the probation period. The reality is that with 5 months, you are not well-rounded. Additionally, Marc had joined. Marc was a super competent intern who joined for three times less my salary and three times more my knowledge. So I was already expecting some movement.
“In the end, programming is not for you,” said Eustaquio I, the manager. The paradox is that Eustaquio I didn’t know that I wasn’t programming. My team had me writing functional tests in an Excel sheet. If that is programming, then yes, it’s not for me.
Let’s move on to the conditions of the second job.
Salary
In 2014, the salary for which I started without prior experience in software development was €23,000 gross per year. Not bad. They were looking for people who were eager to learn, work, and could defend themselves in English. This value has been lost in the sector today.
The sector is looking for people who already know how to program in many tools that surround a programming language. You can know how to program in Java, but if you don’t know SpringBoot, Junit, and Mockito, they won’t hire you.
Training
After a selection process, they hired me, and I started a 3-month training along with 8 other colleagues. There we learned the basic functional part of the ERP along with a programming language called Progress 4GL. Surely you have never heard of it. You can google it if you want, but honestly, invest those minutes in learning something more useful.
First Year
I was already aware that the language I was learning was not the most in-demand in the market. I didn’t care. I liked programming and was learning a lot. I had a boss who helped and taught me. The learning curve doesn’t have to be frustrating.
If you have someone to guide you, everything is easier. In this first stage, I had a great boss. He let me make mistakes and helped me correct them. Trial and error. There is no other way to learn to program.
Second Year
Here I started to be more critical of the language. Progress 4GL is a language with very simple syntax, and you can manage well with a few things. The problem is that you manage with the easy and repetitive stuff.
When you need more complex things, the language falls short, and you start reinventing the wheel. It can be quite frustrating to have ideas in your head and not be able to carry them out due to the language’s limitations.
To top it off, the language documentation is quite poor. It lacks examples, and the community is very small. There are no forums, no blogs, nothing. Just a couple of gurus who defend the language tooth and nail. Their lives depend on it.
Adding Fuel to the Fire
ERP Implementation Kickoff
They put me on a very important automotive client. They made interior car parts. After 5 months, it was time to start the project, and they sent me to Michigan (USA) to help with the implementation. How cool! That’s what I thought at first.
However, something told me it wasn’t going to be that cool. I did the math, and it turned out that being there cost a fortune for the client. Between flights, accommodation, and per diems, the client was spending a fortune. Oh, and add my hourly rate of approximately €100. Out of those €100, I was paid about €9.85 in salary.
When I arrived in Michigan, I realized the mess that had been created. Mariana was a consultant who had been on the project for a year and told me she had never seen anything like it. The client was not ready for the kickoff.
The users were not clear on the steps to take in the ERP, and the UATs (User Acceptance Tests) had been a farce. To top it off, the integration with the MES (Manufacturing Execution System) and the ERP was failing everywhere.
Consequences of Errors in MES Integration
The integration with an MES is one of the most important in a factory. If it fails, you don’t know what needs to be produced. If you don’t know what to produce, the factory stops. The orders planned for two weeks ahead cannot be produced, and there are delays in delivery.
This can cause you to lose your client because you will stop their assembly lines or force them to buy from someone else. If you lose your client, you lose revenue and will have to start cutting costs. If you cut costs, you will have to lay off people.
The Client Requires It
So why start then? I asked Mariana. “The client requires it,” she told me. That phrase stuck with me. “The client requires it.” That phrase made me work weekends and outside my working hours.
Do you know why the client required it?
The global project manager for implementations of the entire client group required it. When you are that high up, the bonuses for starting a project are very juicy. The client required it because the global project manager required it. The pace of factory startups was frenetic. They were doing 3-4 factories per month.
This is the reality for many software providers or high-level executives in charge of technology projects. The bonuses that should incentivize a job well done become personal monetary justifications for starting projects that are not ready.
In the Fire
The project started. The first day was calm. The client had a lot of questions and didn’t know where to start.
The second day was absolute chaos. I was in the meeting room to report how we were solving the problems. We heard the noise of a helicopter. The noise became more apparent, and some curious people like me went out Cada vez se hacía más patente el ruido y algunos curiosos como yo salimos a ver qué era.
The client had such a mess in their ERP and operations that a helicopter came to take car parts. Their client was about to run out of stock and was going to stop their assembly lines.
If this happens in the automotive industry, it is very likely that the client will ask for explanations. And so it was. On the third day, the client was supervising in the factory to see what was happening. With such a tense situation, it is very likely that if it is not resolved immediately, you will no longer be their supplier next year.
Time to Work
The next 12 days involved rotating shifts for two weeks. They wanted 24-hour coverage from the company I worked for. In my department, there were only 2 of us. The rotation was:
- First day: 8 hours of morning work, 8 hours of afternoon rest, and 8 hours of night work.
- Second day: 8 hours of morning rest, 8 hours of afternoon work, and 8 hours of night rest.
This continued for 12 days. You become a zombie and live to work. The client required it.
Eustaquio II
After working weekends and outside my working hours, it was time to settle accounts with Eustaquio II (my boss’s boss). I knew that with Eustaquio II (from now on Eustaquio), everything had to be well-prepared.
Eustaquio is one of those professionals who knows how to manage projects. Don’t ask him to know how to manage people. His dogma is the Gantt chart. He lives in a kind of kingdom where everything can be planned and controlled. People are time, and time is money.
This type of role is necessary in companies. The only problem I have is that my free time is my time. It doesn’t belong to Eustaquio, the client, or the project. It’s mine.
Overtime
Before going to work in Michigan, I asked Eustaquio for an addendum to my employment contract. The time I worked outside my working hours had to be compensated. Eustaquio didn’t like it, but HR was very supportive. We signed what I believe was an overtime agreement for 15 days.
I was given a total of 10 additional vacation days. Each day represents 8 hours of additional work.
Good old Eustaquio knew about projects and haggled quite a few days. Imagine the monumental anger I felt. He argued that nights and weekends couldn’t be counted as 1.75 days for each day worked. It was extraordinary work with a paper to back it up.
Now, with perspective, I realize that Eustaquio was a trickster. He had agreed to sign a paper to then play with the rules of the paper. Well played, Eustaquio. Well played. In the end, I had to swallow the nights.
Enough is Enough
From Fire to Fire
After a week of all this mess, it turns out that a colleague from another team working for the same client injures his leg and works from home.
The same client was going to start another factory in Germany in 1 month. The client required it. My colleague was supposed to go, but since he was injured, it was my turn.
In 3 weeks, I learned what they were doing in the new project and how it was going to start. The stress level of my new team was beastly. Roberto, my new team lead, had lost 5kg in 2 months due to stress.
Time to Work
I was in Germany for 1 week. Here, I didn’t work nights or weekends. However, the 8 am to 5 pm workdays were non-negotiable.
Then, I continued coding in the hotel until 11 pm. I forgot to take a picture of the hotel cafeteria with the laptop. It wasn’t as cool as on social media.
In the second week, I refused to continue working on the client site. I couldn’t take it anymore. I couldn’t keep working weekends and outside my working hours.
I was very burned out. When you spend so many hours with so much tension in front of a computer, you realize that it is not sustainable. It is not sustainable to work on a project where the client requires it.
You go to sleep and keep thinking about everything that is going wrong and keep working in your head. You wake up and keep working. That time you should dedicate to yourself, your family, your friends, your partner, your hobbies… you dedicate to work.
Salary Review
The salary review came, and as usual in most companies, it was a joke. The juniors who joined were earning more than me. I was taught that every effort has its reward. That’s how I learned it at home and university. This time it wasn’t like that. I felt out of place and got very angry.
I decided to discuss it with Roberto, my direct boss. Roberto told me he couldn’t do anything very empathetically. He had talked to… Eustaquio! The cake was already divided, and due to budget issues, he couldn’t do anything.
“Is this a joke, Roberto?” I asked. “Do you know how much our hour is billed at, right? The normal rate is €100…”
“Yeah, man,” Roberto said. “I’m tired of people leaving after 2 years. I don’t know how to say it anymore. This always ends with people burning out and leaving when they are offered €3000 more outside.”
Roberto’s response calmed me down. I realized that I wasn’t the only one burned out. The anger turned into acceptance. I accepted that I couldn’t do anything.
Reflection
After a few hours, I felt anger. I was upset. The anger had subsided and returned. I was very angry. So much effort for nothing. They were laughing at me.
With the perspective of time and personal work over the years, I realize that it was my ego that was hurt. They had hurt my inner 7-year-old child.
My 7-year-old self worked hard in school. One of the many reasons I worked hard in school was to get good grades.
With that recognition in the form of good grades, I pleased the people around me. I relieved my mother’s burden. I felt good about myself.
The problem was mine. I realized that I was projecting my emotions onto the company and all its elements. I was projecting my emotions onto Eustaquio, the client, and the project.
To please them, I forgot about myself. Neither Eustaquio represents my father, nor the client the teacher, nor the project the school.
Get Out of There
Such was my situation in 2017 that I started looking for a job. My anger and discontent made me put a face to programming. I projected my emotions onto something tangible. I personified programming in the image of the company I worked for.
To make it easy, I lumped programming, anger, and discontent together. I associated programming with Eustaquio and the client who required it.
I decided I didn’t want to continue programming. I didn’t want to stay in the IT industry. I didn’t care if sometimes I had fun programming. I didn’t want to continue. Today, this is called burnout.
Years later, I discovered that the process of anger and acceptance is not immediate. The price to pay is pain. Once you have burned through that anger, you realize that you are fighting against reality.
You are fighting against yourself. You do not accept reality. Once we accept reality, we no longer suffer. We have accepted reality as it is.
Reconnecting with Programming
I found another job blinded by anger in an automotive company to help manage the lifecycle of a car that was going to be released in 2 years. It looked very promising. The reality is that they shoehorned me into making PowerPoints and Excel sheets…
After 4 months of PowerPoints and Excel sheets, I started to miss programming. I tried to automate my tasks with VBA. I proposed to Eustaquia that we could automate the most tedious parts of our work. Eustaquia?
Eustaquia
Eustaquia was my boss. I prepared the PowerPoints that she then presented. She made an effort to let me know that I didn’t know how to make PowerPoints. Eustaquia was better at embellishing them. Especially, removing my name and putting hers on all the slides.
The new ideas didn’t convince Eustaquia much, and she told me: “It’s not necessary. We’ve always done it this way… Have you chased the bumper person yet?”
Given the situation, I decided to look for a job. I didn’t want to stay in a department where ideas are shot down without argument. I chase ideas and dreams, not the bumper person who is 10 times more of a person than Eustaquia.
Lessons Learned
Wrong Programming Language
I didn’t research the programming language I was going to learn. I didn’t even know there were more than one programming language. I did it out of ignorance.
If I searched for Progress 4GL programmer, there were no job offers. If I searched for Java programmer, there were many offers.
I realized that things were worse than I thought. I didn’t know how to program in any of the demanded programming languages: Java, Python, C#… I didn’t know how to program in any of the languages required in job offers.
I was less competitive than other candidates simply because I had experience in a programming language that was not in demand. I knew how to program. But I didn’t know how to program in the languages required in job offers.
High Starting Salary
A high starting salary indicates a possible red flag. Maybe a company wants to attract talent. But if you have no prior experience in software development and they offer you a high salary, something is wrong. The first question you should ask is, what programming language will I be working with?
They may dodge the question by saying that the company has many projects and different technology stacks. Don’t believe it. If they don’t tell you what programming language you will be working with, look for another offer.
In early stages, your day-to-day matters a lot. When you have more experience, you can broaden your horizons and be more flexible.
If it’s not a demanded programming language, you will tie yourself too much to that technology, and your options out there will be limited. Believe me, it’s tough to shake off that stigma. It’s a pain to explain over and over that you know how to program but not in the language required. It generates distrust and makes you less competitive.
Non-Web Environment
I had mostly worked with desktop applications and EDI (Electronic Data Interchange). Nothing web-related.
To give you an idea of the concepts I didn’t know after almost 3 years of experience for not working on the web:
- I didn’t know what a REST API was.
- I didn’t know the difference between frontend and backend.
- I didn’t know the concept of a framework.
- I didn’t know what an IDE was. We programmed with a kind of NotePad++.
- GIT was a mystery.
Not knowing what an API is not a sin. But if you have 3 years of experience and don’t know what an API is, something is wrong, and red flags go up in interviews. It’s not anyone’s fault, but it’s something a new company won’t want to take on.
Legacy Code
Working with legacy code is a burden. They are on old, insecure, unsupported versions without tests. It doesn’t matter the programming language. Legacy code is a burden that will make you less competitive.
In Java, the code is the type that is still on Java version 8 and has no tests. They still use awt and swing libraries. Their tomcat is half cat, half dog, due to so many patches.
Understanding the Market
From tech dissemination, we strive to emphasize that understanding concepts is more important than the programming language. The reality is that if you don’t know how to program in their technology stack, they won’t even look at your CV.
With Progress 4GL, I knew those concepts that we disseminators say matter:
- I understood object-oriented programming.
- Databases.
- The importance of testing.
- Differentiating Agile from Fake Agile.
However, I didn’t know how to program in Java, C#, or Typescript. I didn’t know how to program in any of the languages required in job offers.
Eustaqui@s
Here are some clues to detect them:
- They don’t let you propose ideas.
- They don’t let you make mistakes.
- They take credit for your work.
- They project their limitations onto you.
- They justify with “the client or the project requires it.”
Time has shown me that the problem wasn’t programming. Eustaqui@s are a problem in any profession. The biggest mistake is not standing up to them in time and telling them no.
Your time, energy, and mental health are the most important. These characters can make you feel bad about yourself. Don’t allow it. If you detect an Eustaqui@ in your immediate chain of command, seek help from HR or your superior for a project change. Don’t be afraid. If they don’t listen, look elsewhere.
I suggest you look into the internal backpack you might be carrying. There you may find the answers like I did when I looked inside. You might discover that you are projecting your earliest emotions into the business world.
Knowing When to Say No
It’s not sustainable to work on a project where the client requires it or to work weekends and outside your working hours. Personally, I say no to all that.
If I say yes, it is with compensation commensurate with what is asked of me. If not, no. And I set the limit for overtime. Not the client, not the project, not Eustaqui@.
Knowing When to Say Yes
In your day-to-day, you are unlikely to reach an extreme like I did or many other colleagues I have met. If you stay a little longer one day, it’s not a big deal.
However, if I arrive 30 minutes late any day, don’t reprimand me or give me dirty looks. And if I go to make myself a coffee, don’t check the clock when I return with my team.
- Work
- Development