As technology keeps evolving, “software engineer” has become one of the most in-demand jobs of the 21st century with an average annual salary of $111,190. Being a software engineer or software developer is one of the best jobs you could have in the world. The act of typing lines of code on your computer and getting paid handsomely is extremely satisfying. It also yields better career opportunities, like having time to create a side hustle or launch your own startup.
However, the journey doesn’t always follow a straight line and I’ve encountered so many challenges in my career that I’m still facing and learning from. Some, if not all, of these challenges, have taught me invaluable lessons that I wish I had known when I was starting out. I now wish to teach them to beginners.
So, I’ve written down five pieces of advice I found to be game-changers in my career. I hope you find them as useful as I did. Being aware of these and, more importantly, being able to apply them will not only give you better career opportunities, unshakeable self-esteem, and a higher salary, but it will also ultimately result in a flourishing career.
1. Share Your Journey Online
Let’s start with one of the most important lessons that I had to learn after only a few years: documenting and sharing your journey online. Why document your journey? As a software engineer, you normally spend time alone in your room, isolating yourself from the madness of society, which is acceptable and somehow OK. However, one common quality found among a majority of software engineers is that they’re awkward in a social setting. It turns out spending too much time with your computer and not other people somehow affects your ability to communicate and interact with them. This results in a feeling of discomfort, not knowing how to behave during certain interactions in the public. Sharing your journey means sharing what you currently do and where you are currently at on either Instagram, YouTube, or Twitter. This could be a lesson you are taking on a certain programming language, a project you’re working on, or even building your own startup. Show your progress and the results. Why document and share? Well, you could build a brand and make connections with other people around the world who could also be software engineers or designers. This could result in access to opportunities that you would otherwise miss if you don’t document your journey online. Despite what you think most of the time, people tend to love what you do if you just share it. Additionally, your journey also will help other people’s journey and maybe inspire some to start a career like yours. One of my favorites on Instagram is Lydia Hallie (aka “theavocoder”):
This idea is also commonly coined “building in public” on Twitter. A lot of Twitter users share their journey online by documenting:
Progress Results (even failures)
Achievements or milestones
Lessons you learned
Tell a story. Doing so allows you to build a reputation online, which is beneficial in the long run when you want to pursue other career-defining opportunities. People on Twitter do this and so do I! Of course, you can also do this on YouTube or Instagram, as hundreds of thousands of people do in their careers. This idea isn’t new. You probably already do it when you write in your journal. All you have to do is write online instead. So, go public and online. Document your journey and tell your story.
2. Hone Your Social Skills
According to UpJourney:
“Social skills are important because they are the foundation for having positive relationships with others with your partners, friends, and for your career.”
“Social skills allow you to connect with other people on a level that is important in life so you can have more in-depth relationships with others.”
Social skills can mean the difference between highly successful and not as successful software engineers. Most of the time, your soft skills are what can put you in senior management roles. If you want to get promoted to a product manager or head of development, you need to work on your social skills. Here are some important social skills:
They look simple and easy, right? Well, it takes practice to get better at them. So, keep practicing. This is the landscape where small things matter. Your work environment will certainly change once you take advantage of these social skills. When you’re working on a team, one of the biggest issues for any given project is miscommunication or criticism. Why? Because you have to communicate with other software engineers, product managers, stakeholders, or even clients. You have to present new ideas, features, and countermeasures that your team committed to. Improving your communication skills doesn’t have to be difficult. Start by just talking to people more often than you do. But tell them what is relevant to the environment — not what is completely unnecessary. As a smart software engineer, you should know your strengths and weaknesses. Work on those weaknesses and keep honing them until they become second nature to you. Don’t overlook your social skills.
3. Invest in Yourself
“The tech industry is one of the fastest-changing industries today — if not the fastest. Sometimes, it’s hard to keep track of the ever-evolving ecosystem of software development, especially when it comes to web development. But in order to stay relevant, it’s mandatory for every engineer to keep learning new technologies, programming languages, frameworks, techniques, best practices, skills, etc.” — The Smart Coder And this is one of the most crucial lessons I had to learn — and it took me about five years to be consciously aware of it. Invest in yourself. But how? “The good thing about being a software engineer is that learning can be done from home or the office most of the time, and you can choose from a variety of sources, such as books, eBooks, blog posts, online courses, training, podcasts, and more. However, when learning something new, you need to invest both money and time. Prices vary heavily between formats and so does quality. But what matters most for the majority of us is time. Time is precious, and time is scarce. Many engineers have full-time jobs, and learning happens before or after work, or during the weekend and holidays. So it almost always becomes a trade-off between family, free-time for yourself, and learning.” — The Smart Coder
However, to grow more than a software engineer, you need to think outside of being a software engineer. That’s why you should invest in other skills and opportunities. What could you invest in:
Books that stimulate your creativity Podcasts that make you think deeply
Mental health sessions
An espresso machine
I’d recommend listening to Joe Rogan’s podcasts too. Just trust me. Don’t hesitate to invest in resources that make you more effective, stronger, and clearer-minded. Of course, don’t overinvest and keep a budget. Invest in yourself. You are not a machine. Your computer is.
4. Start a Side Hustle
One of the best things you can do as a software engineer is to build a side hustle. Some don’t simply do it for the money. Most do it to expand their knowledge and indulge their curiosity. While I love coding, it can be tedious. Have a desire to try something else, like writing — just like what I’m doing right now by sharing pieces of advice that come from my own software engineering experiences. It’s not the money that drives me to write here, even though money is a valid reason as well. What keeps me here is the ability to help people in a lot of different ways. A side hustle could be your fail-safe. You’re reading this right now, which means you got curious when you saw the headline and now you want to learn from me so you don’t commit the same mistakes as I did. That’s super smart. After all, that’s why we read personal development books: to learn from other people. So, we think ahead of the game and know what to do to make ourselves better. A side hustle will be good for your career in the long run because you are building yourself doors to new opportunities. Side hustles tame your mind and satisfy your curiosity.
5. Collaborate With Other Software Engineers
This is perhaps my favorite piece of advice in this article. Collaboration enhances critical thinking and analytical thinking, which results in better learning. One thing that I often recognize in myself and others is that we learn faster together than if we were to do it alone. Software engineering certainly has a higher learning curve than other subjects like marketing or design, so it’s harder to get some concepts into your head in a short period of time without collaborating with other people. Collaboration can facilitate learning. Whether you’re just starting your career as a software developer or have five-plus years of experience, if you don’t collaborate, you will face a number of challenges throughout your career. Bear in mind everybody doesn’t know everything, so it’s certainly possible that what you don’t know is someone else’s expertise. So, talk and collaborate with other software engineers but also designers, marketers, and even business people. It’s highly likely that you will learn something if you do.
Pick your work environment wisely As we know now, there are a lot of companies that have built toxic environments. Having a boss who doesn’t support you isn’t good for you, your self-confidence, or your career. A few factors you should be considering when you are looking for a job as a software engineer are whether the company has a great employee retention rate and if the company offers perks for both your physical and mental health. This might not look important at first glance, but it can affect you in the long run. I would advise thinking twice about companies that treat their employees as resources or robots. This is already a red flag. Look for companies that value humanity both inside and outside the company.
These are the major things I’ve learned from my software engineering career that I wish I had known from the beginning. I hope you can apply them to your own career.