There is something I have been sitting on for a long time. A truth that does not get talked about enough not in university, not in boot camps, and certainly not in those polished social media posts about landing a dream job at a big tech company. The software engineering world, from the outside, looks like a promised land. Good pay, flexible hours, smart people, exciting problems. And sure, parts of that are real. But underneath all of it, there is a side that is messy, political, and at times, quietly brutal.
This is my attempt to lay it bare not to discourage anyone, but because I believe that walking into a war unprepared is far more dangerous than knowing what you are up against. I might get punched in the face for this, like seriously.
He gets a message on a Tuesday morning. A recruiter has found his profile, and the words are warm, almost too warm, even your mom wont praised you that way. "Your experience is incredible. You would be a perfect fit. I would love to connect and explore opportunities together." It feels good to read. It is supposed to. It builds confident in you. You feels appreciated, a little bit blushing at the same time.
What that message does not say is that behind the compliments, there is a commission waiting. Recruiters are not career counselors. They are salespeople, and the product they are selling is you. The moment you are placed, they get paid. The moment you are not, you are simply moved off the list. They will forget you, unless you are usable again when your times “come”. What I mean is they will connect with you again once you feels that you are open for works. For them, open for money.
I have nothing personal against recruiters some genuinely try to do right by the candidates they work with. But the system they operate in does not reward them for finding you the right fit. It rewards them for finding a fit, fast. And so the flattery flows freely, the urgency is manufactured, and more often than not, the person praising your resume cannot tell the difference between JavaScript and Java.
Do not fall for the sweet talk. Take the opportunities they bring, but go in with your eyes open. They are doing their job. Make sure you are doing yours. Do research, be bold and dont play it easy.
There are three kinds of interviews that most software engineers will face at some point. The technical interview, where they test what you know and how you solve problems. The behavioral interview, where they ask you to reach into your past and pull out stories that prove you are a functioning human being at work. And the culture fit interview, where they try to figure out whether you will survive and contribute to the environment they have built.
Out of the three, the technical and culture fit interviews make the most sense. They are direct. They tell both sides something real. Please take this home assessment, do it in a week. Write me a System Design consist of micro-services, utilizing caching mechanisms, listening to Kafka events etc etc. Can this person do the work? Will this person thrive here? Fair questions, and worth asking.
The behavioral interview, however, is where things start to go sideways.
In theory, behavioral interviews are meant to understand how a person handles real situations conflict, pressure, failure, teamwork. In practice, a bad interviewer turns it into something else entirely. The questions keep coming, one after another, each one slightly more loaded than the last, until the candidate says something that can be used against them. It is less of a conversation and more of a trap, dressed up as curiosity. You are being investigated, not tested.
And then there is this one of the quieter injustices in the hiring process. A candidate who can genuinely do the work, who has built things, solved things, shipped things, gets failed because they could not recite the textbook definition of a factory pattern versus a strategy pattern. As if memorizing terminology is proof of ability. As if the ability to label a concept is the same as understanding it deeply enough to apply it under pressure.
The interviewer sitting on the other side of the screen, serious face, list of questions loaded is not always the all-knowing authority they present themselves to be. Many of them are reading from a checklist. Many of them would struggle with the same questions they are asking. But the power dynamic in that room, or that video call, is real. And some interviewers lean into that power not to find great people, but to feel great themselves.
The worst ones are easy to spot. They wear their seriousness like a weapon. They are not there to discover whether you are good. They are there to catch you failing. Know this going in. Do not let the performance of authority convince you that you are less than you are.
If you feel that the interviews start to went south, know that you have the power as a candidate to stop the interviews, due to the uneasy situations that you are being put on. What can go wrong? Go for another hiring companies that value you as a people, not testing you as a lab rat.
And then, there is the other side of this coin, one that does not get talked about nearly enough.
There are engineers out there who walk into technical interviews and absolutely nail them. Every answer clean, every concept recited perfectly, every problem solved with textbook precision. They come out looking like the most hireable person in the room. And then they get the job and the cracks start to show almost immediately.
Because memorising answers is not the same as knowing how to work. Performing well in a controlled, structured, one-hour interview is not the same as sitting with a messy, real-world problem at nine in the morning with three people waiting on you. Some people are exceptionally good at preparing for interviews. They drill the questions, they photocopy the answers into their memory, they show up polished and confident. But when it comes to actually executing, building, problem solving, delivering capacity is very little.
What makes it worse is that these same kind of people often carry the biggest egos. Because their entire identity in this industry is built on how well they interview, how impressive they sound, how many offers they have received. The moment that image is challenged by the reality of actual work, the defensiveness kicks in.
Here is the truth that the industry needs to sit with interviews are not proof that someone can do the job. They never were. They are a filter, and like all filters, they are imperfect. They catch some things and let other things through. A person can do averagely an interview and be an exceptional engineer. A person can ace every round and struggle to ship a single feature. The interview is just the door. What matters is everything that happens after you walk through it.
The first ninety days at a new job carry more information than most people realize.
There is a framework that managers use 30, 60, 90 days. The first thirty are about orientation, learning the ropes, understanding who is who and what is what. The next thirty are about finding your footing, starting to contribute, beginning to show what you are made of. By the time ninety days have passed, you are expected to be running.
But here is what nobody tells you about those ninety days. By the time you hit 60, you should be watching carefully where the company is placing you. Companies are not sentimental. They are strategic. A high-value engineer does not get quietly slotted into a team that is running on fumes, working on a project that leadership has already mentally written off.
If you find yourself there on a team that feels forgotten, less value, on a project that nobody seems excited about that is information. It does not mean you are easily replaced. But it might mean that the company has not yet seen your worth, or worse, that they are comfortable with you being replaced.
Take it as a signal. There are two roads from that point. The first is to prove yourself so undeniably that they have no choice but to move you somewhere that matters. Show up, deliver, make noise through your work. The second is to have an honest conversation with your manager not a complaint, but a claim. Tell them where you want to grow. Ask what it takes to get there. Fight for your own trajectory, because nobody else will fight for it as hard as you will.
Unfortunately, the less noise you make, the better for the managers. They can have a cheerful days, a blissful sip of coffee.
Not every difficult person at work is simply having a bad day. Some of them are something else entirely. There is a certain kind of colleague and every workplace has at least one who has made it their quiet mission to watch others fall. Not out of competition in the healthy sense, not because they are fighting for the same promotion or the same recognition.
But because bringing someone down gives them something that doing good work never could.
These are the people who smile at your face and whisper in the right ears. Who find ways to frame your work as a problem. Who will report you to management not because you have done something wrong, but because the act of reporting you makes them feel powerful. Who will take credit when things go right and make sure your name is attached when things go wrong.
They are not loud about it. That is what makes them dangerous. They operate in the in side conversations, in subtle re-framings, in the kind of politics that leaves no fingerprints.
Learn to see them, but with clarity. You do not need to fight them directly that is usually the trap they are hoping you walk into. What you need is to understand what they are, keep your work visible, your relationships genuine, and your integrity intact. People like this eventually collapse under the weight of their own behavior. Your job is to make sure they do not take you down before they do.
If and only if, you have the upper hand, play it dirty once in while. Make fun of the clown in a thread. Mentions all names as good contributors, except the clown. “You have the right to express yourself”.
Surviving all of the above is one thing. Thriving is another. The engineers who genuinely stand out are not always the most technically brilliant people in the room. They are the ones who show up consistently, who absorb pressure without breaking, who find ways to deliver even when the situation is far from ideal. Resilience, in this industry, is underrated. It is one of the most valuable things you can bring to a team.
Use the tools available to you and right now, that means AI. Not as a shortcut. Not as a replacement for thinking. But as an accelerator. Let it help you understand things faster, work through problems more efficiently, and spend your mental energy on the parts of the work that actually require a human being. The engineers who treat AI as a threat are already falling behind. The ones who treat it as a partner are pulling ahead. But beyond tools, beyond skills know your own direction. There will always be people who try to decide your path for you.
A difficult manager, a dismissive colleague, a company that sees you as a resource rather than a person. Do not outsource your career to any of them. You and only your (good) manager, the right manager, are the one who actually have the rights invests in you are the only ones who should have a real say in where you are headed. Everyone else is noise.
At some point, the message arrives. Another company, another offer, another number sitting in your inbox that is higher than what you are making right now. And suddenly, a question you may not have been asking yourself out loud becomes very loud indeed, should I leave?
It is one of the most important career decisions you will make, and most people make it too fast, for too thin a reason.
Let us start with money, because that is usually where the conversation begins. If you are moving for a salary bump, that is completely valid this industry has a long history of rewarding those who leave more than those who stay. But ask yourself honestly is a twenty percent increase actually changing your life? Or does it just feel good in the moment? Because if the new company comes with longer hours, a toxic culture, a micromanaging boss, or a two-hour commute, that twenty percent will feel very small, very quickly. Know your value, push for what you deserve, negotiate without apology, but do not let a number on a screen be the only thing doing the talking. At the same time, be humble bro. Please.
And if the company you are currently at comes back with a counter offer pause before you celebrate. A counter offer is not always a sign that they finally see your worth. Sometimes it is just a company buying time until they can find your replacement. Ask yourself why it took you handing in your resignation for them to suddenly care about keeping you. That answer matters. Have a heart to heart conversation with your boss. Whats next for you? What are your growth area? What do you planned for me?
Staying has its own kind of value too, and it deserves an honest look. Flexibility, hybrid arrangements, a team you genuinely like, a manager who actually goes to bat for you these things are real and they are worth something. Growth opportunities, stability, the kind of comfort that lets you be present for your family none of that should be dismissed just because a stranger on LinkedIn offered you more digits.
So how do you actually decide? Bring everything into the room. Not just the salary. Your family situation. Your current stress levels. How much of your life the job is taking. Whether you are growing or standing still. The commute. The culture. Where you see yourself in three years and whether this move gets you closer to that or just sideways.
Make a proper list pros on one side, cons on the other, for both staying and leaving. Be ruthless about it. Be honest about what you actually want, not just what looks good on paper.
Here is the part that nobody really prepares you for though. No matter what you decide, someone is going to feel it. Stay, and the new company moves on without you, sometimes closing that door permanently. Leave, and your current team carries the gap you left behind, at least for a while. The relationships you built, the projects mid-flight, the colleagues who counted on you leaving leaves a mark, whether you see it or not. And staying has its own quiet cost too, a road not taken that you may find yourself thinking about longer than you expected. Burning a bridge is not a choice anymore.
Most of the time, you will not have the luxury of satisfying both sides. That is just the reality of it. This is not a decision where everyone walks away happy. Which is exactly why it deserves your full, unhurried attention not a gut reaction, not a decision made in frustration after a bad week at work. TAKE YOUR TIME BEFORE DECIDING!. If you are worth it, the offering company will be willing to wait for even 2-3 weeks for your answer.
And for the Muslims reading this you already know what I am going to say. Do your istikharah bro. Seriously. You have done the research, you have weighed the options, you have talked it through. Now ask the One who actually knows what is best for you. There is a reason that practice exists, and it is precisely for moments like this when the variables are many, the stakes are real, and no spreadsheet in the world can tell you with certainty which door to walk through.
Whatever you decide decide with intention. Not out of impulse, not out of ego, and not out of fear. A career is long. Make your moves count. Money will comes, but money comes will a lot of hidden agenda as well. For what its worth, I didn’t really agree with the term “Leave when you are at your peak”. Agree to disagree right?
The journey from sending out your first application to becoming someone that a team genuinely relies on is not a straight line. It is messy and political and sometimes deeply unfair. The system, the recruiters, the interview process, the workplace dynamics was not built with your best interests at the center of it. That is just the truth. But here is another truth. None of it is impossible to get through. Do not become the thing that hurt you. Do not inherit the toxicity, the political games, the quiet cruelty that some people in this industry have made into a personality. Let the clowns bark. Let the bullying interviewers have their moment of power. Let the recruiters send their rehearsed compliments.
And if you ever find yourself on the other side of that table because at some point in your career, you will be the one interviewing the candidates. For God sake, be nice. Remember what it felt like to sit where they are sitting. These are people looking for work, trying to build a life. They are not pitching for a $10 million Series A funding round. Treat them like human beings.
You do not need to fight all of it. You just need to outlast it. Be the kind of engineer and the kind of person that others can look up to. Helpful. Grounded. Honest. Unafraid. Think of the people who made you feel seen and capable when you needed it most. Then be that for someone else. That is how you win. Not loudly. Not bitterly. But steadily, and with your integrity still in one piece.
Writing this, honestly, from the heart. No grudges, no agenda against anyone in particular. But the bitter truth has its own right to be said and sometimes, someone has to say it.
Last but not least, be nice man. Be nice.
Written with love by Arif Mustaffa
Back to blog page