7 Tips to Master your Software Development Career from Day One.
From succeeding at coding to succeeding at your career.
After working at Microsoft for over a decade, I can vouch for this — It takes several years to realize that a career in software development is much more than mere coding. While coding helps get things out the door into your customers’ hands, it is the other things that you do that will significantly shape your career and define your success over the longer term.
Sometimes I wish someone just told me when I was starting out — how some of the simplest things that you ought to do as a software developer could end up being so career-defining and accelerate your growth at work.
#1. Build your identity
Your job at a cool (read, well-paying) company helps you brag about yourself early in your career. And even when you necessarily don’t, many in your circle will reach out to you for random help reinforcing your social position. Heck! Sometimes, your job may even help you score a date. Soon you’ll also realize that your identity is so tied up with where you work.
But it is never too late to realize that you are you, and there’s the company you work at. If you go to work every day knowing that you are as dispensable as anyone else and pursue your passion for building products at work only as a small part of something bigger, you’ll soon start to develop an identity.
Start writing blogs (even if into the void), answer questions on the internet, code for fun, or contribute to open source. Make podcasts and YouTube videos if you like to. If critics bother you, make pseudo accounts, turn off comments, or do anything that helps. But in the end, do focus on building your identity. Do realize you are much bigger than the company you work at.
Focus on your identity to ensure you don’t get into an identity crisis. Not at least the mid-life kind.
#2. Get exceptionally good at technology
Don’t be just as good so you can deliver what’s asked of you. That’s a low standard to hold yourself to. You should always strive to get extraordinarily good with technology and software development. That is not just a goal but is the foundation for a strong career in tech. This is not something you can work around by immersing yourself in “strategic” discussions outside of code that make you feel important.
Copy-pasting code or getting things to merely work without knowing why they do is a crime. It’ll only lead you to rely on assumptions and accrue knowledge debt. And often, you end up paying this debt along with huge interest in the form of sleepless nights and more effort unlearning your assumptions. The sooner you put in the effort to understand something right, the easier it gets.
Always start with the official documentation for the programming languages and tools. That should be the starting point instead of a random YouTube video or a blog or a beginner’s class in Udemy. This helps you hear from the horse’s mouth and puts you on the right path because you now have complete context on the how and the why.
Get exceptionally good at technology. That’s your job anyway.
#3. Start your day early
Start your day early. Come to the office (assuming non-pandemic times) by 8 am, sip the free coffee, and socialize. Connect with your peers who come in early — highly likely the most successful among the bunch. Discuss the products you’re building and how you’re selling or marketing — or anything!
Make progress on your work every day without postponing it till the inevitable deadline is 2 days away. No one cares if you worked late or pulled an all-nighter the day before to make releases happen. They might appreciate you, but many will secretly hate you for putting the project at risk. Always remember to put your team first.
By starting your day early and getting involved in broader discussions while also keeping pace with your work, your name will soon come up in good ways in meetings you’re not even a part of. Now people care. They talk about you. They think you’re smart because you know the big picture. Everyone walks into your office when they have concerns, or want to get something done.
Start your day early — Try it out, doesn’t take much.
Consider subscribing, if you haven’t already, and receive new posts straight in your inbox.
#4. Break the damn code
I’ve learned way more in my 15 years of coding by breaking things than building them. Most code is mumbo-jumbo anyway written to impress the computer, not those who have to maintain it and build on top of it. So, it’s only right for you to break it and learn from it. And if you don’t break it, the customers will anyway — through bugs and feature requests, and usability questions.
So — go ahead and break it — your code and others’ too and fix it with better code. Let someone else break that code too, and make it even better. In the process, make a few friends in the team — the same ones who hated you for coming in early or stealing the limelight. Chances are they’ll break your code too, and together you’ll learn and get better.
With every bug fix and feature, both the product and your skills are only getting stronger by the day. And more Anti-fragile.
Break the code and fix it. It’s worth it.
#5. Develop processes and standards
Whether you’re working at a start-up or a huge enterprise, you’ll always notice room for improvement. Be it code reviews, deployment checks or software builds, or anything else, find things you can improve at work and up your team’s productivity. Always focus on the processes, ask for feedback, and own the improvements.
You’ll not only get better at what you are already doing — but you’ll also soon become the go-to person. Developing processes is hard, and it requires you to level up your skills. And as you grow in your career, your ability to streamline work through processes and standards is essential for you to develop.
The processes you design help you get things done your way without losing control as you start delegating work.
In MBA, you’re taught, “Culture eats strategy for breakfast.” But Process can eat both even before they get to the breakfast table.
#6. Take up a tech side hustle
Technology side hustles are awesome. Design a plugin for a friend. Or offer to build an e-commerce storefront for a local business you love and shop at. Do it for free, so it lessens your stress about the time you will take to deliver or if you’ll get paid.
Taking up a side hustle develops your skills beyond software. The learning you get more than compensates for the efforts you are putting in. It often helps you realize the power of software and how it helps transform businesses — increasing your worldview on technology.
Chances are, the same side hustles will become paid gigs, help you with ideas at work, or someday even help you run your own business.
Hustle away — it helps you develop your world view on technology.
#7. Be a learning machine
Strive to be a life-long learning machine. Some may call you “Smarty Pants,” but the same people will soon look up to you and aspire to become who you are. Find learning in your job and from your peers. Take training, read a book, or watch a talk. Get hold of anything that helps you become more knowledgeable in different fields.
Filter the signal from the noise and start challenging traditional stances. While learning may not be natural, curiosity is. Asking questions about everything around you as part of being curious and trying to answer them will make you a great learner without much effort. Stock markets? Traveling to Mars? Environment? Climate Change? Solar energy? Electric cars? Autonomous driving? As a bonus, your learning will also help you be the person with the most interesting conversations at work.
John F. Kennedy once said, “Leadership and learning are indispensable to each other.” and that is true now more than ever.
I write about growing as a developer and a career in tech and attaining mastery and faster growth in your role. — You can connect with me on Twitter and LinkedIn.