It's Been a Minute! Hello Again!


In December 2021, I published my first blog post, Hello World. I was in my senior year of university, excited about what was coming next.
I couldn't wait to graduate, start my career in software engineering, and put everything I'd learned into practice.
At the time, I pictured myself becoming a full-stack engineer. I wanted to work across different parts of a system, solve interesting problems, and turn ideas into working software.
Well, life had other plans.
Between graduating, moving between continents, and settling into a new chapter of life, I eventually landed my first software engineering job.
It was in React Native, which wasn't exactly what I'd imagined myself doing professionally.
Not quite the plan, haha!
Looking back, though, I'm glad things turned out that way. These past few years have taught me quite a bit, and I wanted to share five lessons that have changed how I look at software engineering.
1. An Unexpected Path Can Change Your Perspective
When I first started working with React Native, I wasn't entirely convinced it was for me.
I had always wanted to be a full-stack engineer, and at the time, I saw mobile development as mostly frontend work. I thought the more interesting architectural decisions and engineering challenges were happening in the backend.
Looking back, I can see how limited that perspective was. Still, I decided to give React Native a chance, and I'm glad I did.
I already had programming experience through different projects and academia, but working professionally introduced a different set of responsibilities.
I was building on what I already knew while learning to collaborate with other engineers, navigate existing systems, and deliver software that people actually depend on.
I also started appreciating what makes mobile engineering interesting.
Smartphones have so much more to offer than a screen for displaying information. There's GPS, cameras, gyroscopes, NFC, and all sorts of sensors and hardware capabilities that developers can work with.
Then you have differences between operating systems, device performance, connectivity, and user expectations. All of these introduce challenges that you don't necessarily encounter in the same way when developing for the web.
The more I worked with mobile, the more I realized that it was a fascinating engineering discipline in its own right.
And perhaps the biggest lesson was that I didn't need to work in a particular part of the technology stack to grow as an engineer.
2. Your Job Title Doesn't Define Your Capabilities
My interest in backend engineering never really went away. In fact, it's still something I want to pursue further.
What changed was how I understood that interest.
I realized that I wasn't necessarily chasing a particular title or trying to work with a specific technology for its own sake. I wanted to understand how things worked together and have the ability to contribute wherever a problem needed solving.
That naturally led me to think more about systems as a whole.
I became increasingly interested in what could go wrong, where potential failure points might exist, and how a decision in one part of an application could affect another.
I've learned that while job titles help define our responsibilities, they don't have to define the limits of our curiosity or what we're capable of learning.
And that realization has made software engineering much more interesting to me.
3. You Don't Have to Be the Smartest Person in the Room
Here's another lesson I've come to appreciate: you don't need to have all the answers.
The more experience I gain, the more I realize how much there is still to learn.
Someone else might understand a system better than I do, notice something I've overlooked, or suggest an approach I hadn't considered.
And that's okay!
I've learned to appreciate asking questions, discussing ideas, and listening to other engineers, even when their perspectives challenge my own.
At the end of the day, we're working toward a common objective. I'd much rather learn something new and help deliver a better solution than insist on being right about everything.
4. Believe in the Product, Not Just the Technology
When I was starting out, I cared a lot about which technologies I'd get to work with.
I still do, of course. I enjoy exploring different programming languages, frameworks, and approaches to building software.
But something I hadn't appreciated enough was how much it matters to believe in the product you're building.
When you understand what a product is trying to accomplish and care about the people using it, your technical decisions start to take on a different meaning.
The question is no longer just about which framework or architecture would be interesting to work with. It's about what makes sense for the product and how you can help make it better.
I've come to believe that software engineering, like any other noble engineering discipline, is fundamentally about using technical solutions to solve people's problems.
Whether we're simplifying a process, making an everyday task easier, or giving someone more time back, we're ultimately trying to build something useful.
Thinking about it now, I believe that's what attracted me to full-stack engineering in the first place.
5. Good Engineering Requires Both Judgment and Execution
Of course, having an idea is one thing. Turning it into working software is another.
In professional engineering, we work with constraints. There's time, available resources, performance requirements, existing architecture, maintainability, and a whole host of other considerations.
And here's something I've become increasingly convinced of:
There is no perfect solution. Period!
Every approach has its advantages and drawbacks. Part of our responsibility as engineers is to understand those tradeoffs, communicate them, and make the best decisions we can with the information available.
But making good decisions is only half the equation. We also need to deliver.
Deadlines matter. Deliverables matter. Getting working software into people's hands matters.
After all, what good is an elegant solution if the people who need it never get to use it?
I've also learned that writing code quickly and delivering software efficiently aren't necessarily the same thing.
Being able to turn an idea into code quickly is useful, but we also need to think about performance, algorithms, computational complexity, memory usage, and whether the approach makes sense in the long run.
Sometimes, spending a little more time thinking through a problem can save a lot more time later.
To me, that's part of the challenge: finding the right balance between quality, performance, maintainability, and timely delivery.
And with AI becoming increasingly capable, I think this balance is even more important.
I'm excited about AI and the opportunities it creates to develop software faster, automate more processes, and build solutions that might not have been practical before.
But generating code faster doesn't remove the need to understand what we're building or take responsibility for the decisions behind it.
If anything, I think it gives us more room to focus on those decisions.
That's something I look forward to continuing to learn about as the industry evolves.
So, Why Am I Writing Again?
That brings me back to this blog, and why I've been away for so long.
Over the past few years, I've spent a lot of time trying to rediscover myself, both personally and professionally.
As I grew and my perspective changed, I began to feel that I no longer entirely identified with the person who wrote that first Hello World post.
I hadn't lost my interest in writing or sharing ideas. I just wasn't sure what I wanted to say, and I didn't want to publish something merely for the sake of keeping the blog active.
I wanted to have something worthwhile to share.
Now, after all this time, I feel like I finally do.
Not because I've figured everything out. Far from it! I still have plenty to learn, and I'm sure my perspective will continue to change.
But I have experiences to share, things I've learned, and questions I'd love to explore with other developers.
I believe the human experience becomes richer when we share what we've learned with one another.
We all come from different backgrounds, with different experiences and ways of thinking. My journey has shaped how I approach problems, just as someone else's experiences might help me see something from an entirely different angle.
That's one of the things I enjoy about being part of the developer community.
With this blog, I hope to share what I'm learning and thinking about, whether that's React Native, backend development, full-stack engineering, AI, or software engineering in general.
Maybe you'll find something useful here, disagree with one of my opinions, or share an insight I hadn't thought of before.
Whatever it is, I look forward to the conversation.
A Note to My Younger Self
Before I wrap this up, I want to leave one final thought.
If I could go back to December 2021 and sit down with the younger version of myself who had just published his first blog post, here's what I'd tell him:
Dear younger self,
Just keep going. Keep showing up, keep trying, and don't let the moments when things don't go according to plan discourage you.
Looking back, I honestly can't think of a time when things didn't eventually work out in one way or another.
That doesn't mean everything happened the way I expected, or even the way I wanted it to. Far from it. But somehow, I found my way through those experiences, and I believe you will too.
I could try explaining everything I've learned over the years, but I don't think it would truly click until you've experienced it for yourself.
Some lessons can't be taught through words alone, so you have to put in the work, make decisions, make mistakes, and learn from them. That's when things will start to make sense in ways they didn't before.
In the end, trust in God's plan, and trust in your ability to work, create, and grow. Don't be afraid of your shortcomings or let them define what you're capable of becoming. If anything, they make you human.
Here's to another chapter, new experiences, and hopefully plenty of interesting conversations along the way.
It's been a minute. It's good to be back. Talk to you in the next one.
