When Life Throws You a Curveball...
At the end of 2023, I left the company that first kickstarted my journey as a software engineer due to my disagreements with the company’s culture.
I learnt plenty from my first stint, picking up skills and technologies far beyond what my bootcamp and personal learnings had taught. Docker, microservices, Expo, and React Native were some of the additional technologies that I picked up within the first month just to be able to make useful contributions to my team. I felt very lucky to have a hands-off manager as well, giving me the freedom to explore various solutions to problems and requested features.
Compared to my first SWE job, the second one was for a much smaller and newer company. I was excited because I looked forward to working with newer tech stacks, such as NextJS, and the team was smaller and younger, which I hoped would allow me to have a greater influence over the working processes.
The Curveball
However, just under three weeks in, I received news that the company was out of cash. So many questions flooded my mind over the coming days. I was looking forward to numerous things, a notable non-professional one being a longer term commitment to lifting weights at the nearby gym via a year-long gym membership. But in a blink of an eye, I was out of a job.
As I write this, I’m still recovering from all that happened within a span of a few days. Life has thrown me a curveball. But I don’t want to be wallowing in the sorrow of my new circumstance; I want to focus on what I can control. So, what next?
My Swing
While the situation might be bad, some discussion with my partner has helped me realise that perhaps this could be a great opportunity for me to really move towards doing the kind of work that I want to do for my regular day job.
The major difference that pops up right away is that I no longer have a steady income stream from a day job. However, there are other differences as well.
The first important one for me is that my learning is no longer constrained to the work that I have to do for someone else; I have greater freedom to increase my understanding of tech I wish to use more of (Go & Rust).
The second one is that I’ll have a little more time to spend with my partner before starting the next phase in my professional career as a software engineer.
Self-learning
Bootcamps focus on teaching skills that have higher employability rates in the industry. In the world of software, that means I learnt JavaScript, React, and web development. However, as I have come to learn in all my readings, JavaScript and web development are but a tiny part of the huge software ecosystem.
In my first year as a software engineer, I have come to realise a few things about what I like.
- I like languages that have stronger type systems.
- I prefer dealing with data structures over user interfaces.
- I am fascinated by the myriad of systems out there to handle data.
- I love working in the terminal, and would much rather find ways to stay there than use other tools.
- I want to use the tool that is the best suited for the job.
To summarise, I want to do more backend-focused work with tools that I think are more suited for the job, i.e. Go.
Point 4 is perhaps somewhat of an outlier here in that it doesn’t contribute to the summary directly, but if I do more backend work, I can technically stay in the terminal for longer without needing to switch to another app, such as a web browser, so why not!
As for point 5, this is something that I picked up from ThePrimeagen. I believe that as a software engineer, I should never be limited by a choice of technology, i.e. I should never be just a “Go Developer” or “JavaScript Developer”. That’s why I believe in learning broadly, so that I can choose the best tool for the job without limiting myself to the tools that I currently know.
I still keep a foot in the JavaScript ecosystem because I ultimately want to develop applications that can benefit the lives on individuals, and with the current tech landscape, the web still seems like it will be very important for that.
However, up till my previous job (which lasted less than a month), I was pretty much doing work across the stack with only JavaScript as the technology of choice. So I see my current situation as an opportunity to do the work needed to move me towards doing the kind of work that I prefer.
Some things that I have in mind:
- Add a web server written with Go to my finance app
- Build simplified versions of common applications with Rust and/or Go, such as build-your-own redis
- Advent of Code 2023 in Go
The basic idea is to keep with the theme that I set for myself for 2024 of more creating and less consuming.
I love reading books to learn (I struggle to leave the library without at least borrowing one book). However, I’m learning that the best way for me to learn software is by creating more with my own two hands. So I am planning to do plenty of creation as I search for the next step in my journey as a software engineer.
My income may be stagnant for now, but my skills as a software engineer will keep progressing forward!
Time with partner
Switching careers is no easy task. I went through a part-time bootcamp with General Assembly, taking classes in the evening while I worked a regular job during the day. Then there is all the side learning outside the bootcamp before and after graduation to try and make up lost ground in all the years that I have lost compared to others who starting tinkering with code at a much younger age. All that time spent with computers means less time spent with my partner.
There is also the mental struggle that comes with switching careers. As much as I have found myself loving software engineering, I grapple with imposter syndrome everyday. I think the fact that I started so late compounds the feeling, such that I constantly worry whether I’ll be able to become a good software engineer in my lifetime. This mental baggage inadvertently affects my partner as well.
So the opportunity here is really the chance to double down on my investment in our relationship. As the saying goes, relationships have little to no short-term gain, but investments in them give exponential returns in the long-term.
I already feel the benefits of my prior investment with the love and support that I received in this challenging time, so I think it makes sense to increase my investment while I have some increased time flexibility. I also think it is a good chance for me to give back the love and care that I have received over the past year as I navigated my career switch.
The Outcome
If I could predict the future, here is what I hope a day in my next job will be like:
I’ll be working remotely from home with ergonomics that I have optimised for my body. I’ll use the flexibility provided by remote work to take good care of my family. I’ll be developing a new feature for a server written with either Go or Rust that will improve the overall product’s user experience. My team will be working asynchronously off a kanban board, so that we spend more time developing software and creating real value. I’ll be constantly challenged as a software engineer, having fresh and interesting problems to solve day-after-day.
But I won’t rely on hope; I will work my butt off so that I can make that future happen for myself. I will focus on the things I can control, such as working hard and creating more software, so that I have the necessary skills to live the life I desire.
So what will I do now that life has thrown me a curveball?
I’ll make the best swing I’ve ever made to achieve the goal of hitting a home run; the results will take care of itself.