One developer shares life lessons gained throughout his career and shares the questions that can help you move ahead.
At 17, I picked up my first book on Neuro-Linguistic Programming (NLP). Not because a mentor recommended it or out of philosophical curiosity, but because I wanted to understand how I worked and what I could become. I found the world meaningless and thought my problems were too big for me to handle. The book introduced me to an idea that seemed too obvious to be true: If you have a problem, you can solve it. Life doesn’t hand you burdens you can’t carry.
It took me years to understand what that really meant. And even more years to realize that this lesson wasn’t just about fixing code bugs.
What I’m sharing here comes from my personal experience, mistakes included. It might not apply to you, but if even one of these reflections makes you pause and think, it’s worth it.
“Know thyself”: Socrates said this millennia ago, but nobody teaches you how to do it in school. And for developers, this self-knowledge isn’t a philosophical luxury. It’s a survival tool.
Today, I know what sets me off in a code review. I know how I react when someone questions my architecture. I understand why I prefer working on complex features alone before presenting them to the team. But it took me a long time to get here.
The problem is that we’re several different selves: The developer who defends their technical choices tooth and nail, the team member who needs to compromise in discussions, the professional who accepts projects they don’t like to pay the bills, the friend, the son, the father. Each of these selves has its own behavior patterns. And you only discover these patterns by going through experiences, preferably by seeking them out instead of just waiting for them to come.
Early in my career, conflict situations left me stunned: How can people not see the clarity of my idea, the way I see it? Defending a different technical idea seemed like arrogance. But over time, I learned something counterintuitive: I started to enjoy conflicts. Because it’s in friction that you discover what your ideas are really made of. It’s when people lose their cool that they show who they are, and so do you.
But this only makes sense when you know yourself. When you know what your path is.
And this is work only you can do. There’s no YouTube tutorial, no framework. It must come from within.
Is what I do/work aligned with what I feel?
Not in the romantic “do what you love” sense, but in the honest sense: Does this move me or anesthetize me?
Do my opportunities make me grow?
Or am I just repeating what I already know how to do because it’s comfortable?
What do I have to learn where I am today?
If the answer is “nothing,” you should have already left.
An important aside: There’s a dangerous belief that “doing what you like” is a privilege for billionaires. That you need to suffer first, make money later and only then can you afford the luxury of liking what you do. That’s a lie.
The point here is that successful people did do many things they didn’t like, yes. But that’s not why they succeeded; it’s despite it. And curiously, neuroscience shows that doing things you don’t like (like washing dishes) strengthens your ability to deal with adversity. Children who have household responsibilities develop greater resilience and entrepreneurial tendencies.
The point isn’t to avoid discomfort. It’s knowing why you’re doing what you don’t like, whether it’s a means to a clear end or just an escape from the decision to know yourself.
Developers have a strange relationship with solitude. Our profession pushes us toward it, hours in front of the screen, headphones on, immersed in problems that only exist in our heads. And at the same time, they tell us we must be “collaborative,” “work as a team” and “do pair programming” (which, personally, I think is excellent).
The truth I learned is that any person’s life, no matter how social they are, is fundamentally solitary. Nobody’s going to be responsible for your commitments, your architecture choices or your career. You must count on yourself most of the time.
This doesn’t mean you don’t need friends or a team. It means you need to learn to live with yourself first, and that’s a challenge.
And for developers, this skill is even more valuable. Because developing technically is more about thinking than acting. When you’re programming, solving a complex bug or architecting a solution, solitude isn’t isolation; it’s focus. You don’t need constant interaction to deliver. In fact, interruption is often the enemy.
But, and this is crucial, you can’t think everything through alone. A healthy dose of team interaction is necessary. The trick is knowing when to be alone and when to seek others out.
Things I did to master my relationship with solitude: Going to the movies alone, to restaurants, to concerts. It sounds silly, but it’s not. It’s about learning to appreciate your own company. It’s about creating inner life.
Artur da Távola, a Brazilian thinker, said: “Music is inner life, and whoever has inner life will never suffer from loneliness” (free translation).
Quality moments alone, without electronics, without notifications, just you, good music or a good book, make a difference. It’s in this silence that you process the day’s conflicts, understand why that meeting irritated you, and notice patterns in your behavior.
Solitude isn’t punishment. It’s the laboratory where you get to know yourself.

At 21, two years after entering the IT field, I started my own company. Money came fast. A lot of money. It seemed like I had cracked the code of life.
That success stagnated me.
Early success is a dangerous drug. It addicts your brain. It fills you with false confidence because you don’t yet understand that success has context, timing and luck. You think it was all competence.
The problem isn’t success itself; it’s not realizing that the premises that got you there won’t be present at the next level. You level up, but want to play with the same strategies.
I wasn’t prepared for the next level of growth. I didn’t know how to scale people, processes and complexity. And when a serious accident caused me to stagnate for nearly a decade, I realized I had built castles in the sand.
It was during this forced pause that I did the best work of my career. I focused on developing a legal system with features nobody else had: a complete change in history, field by field, and thousands of features meticulously thought out in the most minor details. Advocati was considered the best legal software in Brazil in 2007.
But it took me until 2011 to return strongly to the market.
Those years taught me something brutal: Enjoy your success, but don’t be blinded by it. Don’t become arrogant. Lower your expectations that everything will always work out. This gives you a more realistic view.
I’m not saying dream small. Dream big, but take solid, consistent steps. Our lives are increasingly fluid, and constantly changing goals and objectives get you nowhere. Having a fixed target and mapping out the right strategy to reach it, without illusions, is the safest path.
And there’s something else: You’ll repeat your mistakes until you learn the lesson. Your life is teaching you something. If you don’t understand or don’t even realize there’s a reason behind your challenge, you’ll keep repeating the same cycle.
Life isn’t a game where you pass levels. It’s more like debugging as you run the code, see where it breaks, adjust and then rerun it. The problem only disappears when you understand its root cause.
Knowing yourself isn’t a destination. It’s a daily journey. It’s noticing when you’re reacting on autopilot. It’s questioning why that comment on PR irritated you so much. It’s having the courage to be alone with your thoughts. It’s celebrating success without thinking you’ve become invincible.
When the next conflict comes, the subsequent failure, the next success, you’ll have something most developers never build: clarity about who you are when nobody’s watching.
What I’ve shared here comes from decades of learning. Your journey will be different. But if you start getting to know yourself now, maybe you won’t have to wait for an accident to learn what took me decades to understand.
Having learned my lesson, I’m always looking for new ways to challenge myself.
Today I’m working on an exciting AI project that’s pushing the boundaries of modern development, an intelligent SaaS platform creator powered by natural language prompts. This innovative tool leverages .NET 10 for a robust backend, Microsoft SQL Server for enterprise-grade data management, and React with Next.js on the frontend, all brought together with the rich UI components of the Progress KendoReact library.
The vision is simple yet powerful: Describe your SaaS platform requirements through prompts and watch as AI transforms your ideas into a fully functional, production-ready application, complete with professional interfaces powered by AI and scalable architecture.
To validate the project, we’re developing and refining it alongside five real-world systems built with this new product.
And I look forward to learning about myself in the development of this project.
What’s next for you?
Jefferson S. Motta is a senior software developer, IT consultant and system analyst from Brazil, developing in the .NET platform since 2011. Creator of www.Advocati.NET, since 1997, a CRM for Brazilian Law Firms. He enjoys being with family and petting his cats in his free time. You can follow him on LinkedIn and GitHub.