Over the past year, this blog has been silent. I’m finally ready to start writing new blog posts again and I’ve decided to begin this new chapter with a summary of what was going on in the past year.
There is a reason why there were no new blog posts for a while and I’ve decided to share with you why’s that, some major events in my career over this period and what’s ahead for the blog.
There will be no technical content or knowledge sharing in the upcoming lines, but a walkthrough of some events & lessons learned from them. However, although you won’t be learning anything new about how the processor or your programming language works, there is some interesting food for thought which could benefit you or at least spark an interesting discussion in the comments later.
What was going on in the past year
One of my last non-I-am-speaking-on-an-event posts is about my latest role as a Blockchain Training Manager. That was a point when I decided to derail from my engineering path as an embedded software developer and transition into a full-time management & training role.
It was a scary undertaking as I had no professional experience in management before, only a “good potential”. So stakes were high and senior management was vigilant over my progress and results.
During those first few months, there were a lot of first-times for me, such as disagreeing with my boss, leading a presentation skills course, leading a hard conversation with fellow colleagues, among others.
Fortunately, I was able to overcome those initial hurdles and get on board relatively quickly. Stakeholders were happy & things started going well.
The role I had was a great training ground for me to learn. There were many opportunities to grow and expand to from there. People started contacting me for leadership roles in some big and well-known corporations. I was on the path many in the software development industry wanted to embark on – start as a developer and transition into what most considered a “more important” role such as a manager and later, a C-level role.
Although things were going well, I can’t say everything was flawless in my role as a manager. There was still a lot to learn and I was in need of good mentors & managers for me to observe and get help from in order to reach the next level & overcome many of the shortcomings I had.
But I quickly realized that is not the path I wanted to follow. My programming skills started getting rusty, I changed my IDE from Vim to Excel and some previously known concepts slowly began getting misty.
Previously, as a full-time developer, I didn’t think I would miss it so much and that doing it on the side would be enough. But once I was deprived of it, I began to realize how much I love doing it.
I had to lose what I had to start valuing it.
Looking back to this now, I see that although it was painful, it was a great opportunity to understand who I am and what I want to do in life.
Previously, I gazed at people with higher status, position or income as someone I aspired to be. Right now, I’m perfectly happy with receiving a smaller paycheck and having a lower status as long as I can practice my keyboard-fu every single day.
I don’t aspire to end up a wealthy businessman, but rather, a wrinkled grandpa who is sloppily writing another application in an antique programming language.
This is the reason why I stopped writing blog posts for a while. I wanted to fully focus my spare time on development in order to keep my skills sharp & get prepared for the next step.
Switching Gears
It was decided. I wanted to transition into being a regular programmer again. After some research regarding technology and field I wanted to get into, I started looking for my next career opportunity.
This time, I decided I wanted to get into a field I avoided for a while – web development. Throughout the years I had always considered web development to not be challenging enough.
I always thought that doing C or C++ is way more challenging due to pointers, memory management, working with low-level OS code and hardware. I thought that anyone could learn how to do web development with one or two courses on Udemy.
That way of thinking was wrong in two ways.
First, saying that web development is easy because anyone can create a simple CRUD application is like saying embedded development is easy because anyone can make a simple Arduino application.
Any programming field gets quite challenging and complex once you start working on a higher scale project with much more interesting problems.
Second, I was wrong in choosing my specialization based on how challenging the area is. Although that way of thinking was bolstering my ego due to comments of the type “Wow, you’re doing robotics, you must be very smart”, the important metric should not be your status, but the value you bring with your work.
That is at the root of my decision to take on web development. I realized that with my background and goals, I would be able to bring much more value to others and myself if I was a web developer, rather than an embedded dev.
For me, launching an online service is simpler to do and more impactful than providing an embedded device because 1) it involves mostly development knowledge or similar, while for an embedded device you need knowledge in electronics as well as a good manufacturer. And 2) there is a larger market for online services, rather than embedded devices.
And what technology did I choose?
Well, I wanted to transition into web dev, but I’m still attached to C/C++ due to my history in those fields. That is why I stopped on Golang. It is a language that aims to balance between the ease-of-use of high-level languages (such as Python) and the performance of low-level ones (e.g. C).
Its rusty C-like syntax, along with its philosophy and goals for simplicity is what attracted me. Additionally, despite its lack of popularity, it seems many big players and projects are adopting it at scale.
Docker, Kubernetes, Ethereum, and Hyperledger are just some of the big projects written in Go.
So it was decided. My next job should be in the area of Backend web development with Go.
But just because I was craving to get my hands on an exciting project again, I wasn’t willing to choose my next role lightly.
This is why, after some research and careful consideration, I decided to join Uber.
It’s one of the companies where you can get your hands on some extremely large-scale web projects and learn a lot. What’s more, I am fortunate that they have an office in my home country, Bulgaria, hence no need to relocate.
The road ahead
That’s the story of moving into my new role. This time, my goal is to specialize in my field of choice.
Previously, I took a more breadth-first approach to my career as I wanted to get a wider understanding of more Computer Science concepts, rather than getting myself into a rabbit hole, stuck in my bubble of expertise.
That’s how I hopped between multiple specialization boundaries. Starting from my first role in low-level programming, dwindling with hardware using an oscilloscope, I moved to low-level application programming and finally ended up into a high-level blockchain role where I had the opportunity to study networking concepts, along with a high focus on understanding and teaching cryptography.
However, in the long run, what brings more value and satisfaction is to become extremely good at one thing. Choosing one area and becoming an expert in it. There is short-term excitement in being a beginner and long-term satisfaction in being very good at something.
That’s why I’m joining this field with the determination to stay, study it thoroughly and become good at it.
That’s not to say that one should stop expanding his knowledge in areas other than his own. I am still a firm believer in working on attaining general knowledge. But I believe that the time for me has come to set foot in an area more firmly.
Now, one could read these lines and think “Oh, I’m doing the same mistake because I have no idea what I want to do. I need to stop switching areas/jobs and specialize”.
Not necessarily. I’m not saying I’ve made a mistake by taking the breadth-first route. That exploratory phase is what aided me in learning more about myself and what I want to accomplish.
It’s far better to hop around several jobs until you find one in which you feel satisfied, rather than stay in the same role for 10 years and feel miserable.
Conclusion
So that’s a relatively long catch-up of how the past year went by. Hopefully, this story will help you extract some takeaways for yourself.
Feel free to leave a comment and share your thoughts even if you want to disagree with something. I don’t, in any way, think that everything I say is right for anybody, unlike most self-help gurus.
Additionally, there is so much more to talk about – What’s ahead for this blog, some other important lessons learned and much much more, so stay tuned.