I have been working as a software engineer for the last 2 years now. I was lucky enough to land a job in an MNC (Multinational corporation) early on and currently working as a Frontend Engineer in my third job and second startup. During these years, I have been exposed to working on client-sites, in teams of all sizes (3-20 people), and various environments like in-office as well as remote!
While working all these years, I came to a few conclusions to become better at your software development jobs. This is for everyone – people employed as software developers and developers who are preparing to land a job in the next couple of months. So, let’s begin…
There is no point of controlling fire when you could have prevented it in the first place. In other words, be pro-active. Now what that means?
Being a pro-active developer means NOT delaying to convey your fuck-ups. That’s pretty much it. Now, these fuck-ups can be as small as an ugly git merge to as big as wrong estimations on a piece of work. When you are pro-active, it gives your team (and your manager) to put a contingency plan in place.
Pro-active also means to convey the updates on your tasks, without being asked. Always consider your team members and managers to be super-busy and hence, try to convey them as much as you can, when you can. Keeping them in-loop will help you ensure everyone is on the same page. Yes, it will take some extra effort, but believe me, having everyone on the same page prior to a SCRUM Call is a boon.
I am not one of those who think being an affluent speaker in a language like English makes you a superior developer. But, being understood, and conveying your point clearly in a message in one go is a super-power and that indeed makes you a superior developer.
The latter is possible only when:
- You are absolutely clear what you want to convey.
- You know how to frame a message that compliments that clarity of thought
Over communication is always better than zero or under communication (if that is even a word).
Now, what do I mean by Over Communicating? It means stating the obvious. At times we withhold a piece of information on purpose just because we have a preconceived notion about other developer’s understanding. Refrain from practicing this. When you are working with humans, nothing is “obvious”. Ensure that the message is loud and clear and the fellow developer understood your message.
Whenever you are unsure about being on the same page, always request the fellow developer to explain your message to you (like you double-check the order while ordering in a restaurant by asking the waiter to repeat the order). That is how you’ll be 100% sure that your message has been conveyed successfully!
Another domain where over-communicating helps is testing. When you are submitting a module to the testing team, ensure that you attach a list of things to test and explain the functionality/feature you built, saving tester the guess work! This also helps you in hindsight as the tester does not poke you time and again for clarifications.
On the other hand if you are a tester, ensure that while raising a bug you also communicate the steps to reproduce the bug saving developer from treasure hunting the bug!
Everyone knows how important writing clean code is, but most of us ignores the sheer importance of it in the long run. But wait, karma is a bitch, right?
It is highly probable that the shit code you are writing today which is in a “working” condition comes biting you in the ass 3 months down the line. This happened to me, and believe me I am writing this because the scar (from that bite) stays!
Clean code is so important that people have dedicated books on the topic. So a few things that I always follow are:
Ensure the entire team has the same indentation settings. 1 Tab = 4 Spaces or 1 Tab = 2 Spaces. Decide and stick to it.
There are lover letters/snippets to your future self as well as the next developer working on your module
- Missing semi-colons
This is just a noob mistake!
- Use TODO
Leave hints/tips and breadcrumbs for yourself and the fellow developer working after you. Complete the TODO before raising the PR.
- Debugging messages
Check for all the console.log() messages before submitting your code. And if you are lazy (like me), click here to learn how to remove all console.log() messages in one-go! Also, remove all debuggers as well!
This is one of the most talked about but yet remains the most underrated aspect of working in a team. Even if you are one of the most bad-ass developer, you have to respect everyone’s time. Just because you are good at what you do doesn’t give you “GET-OUT-OF-JAIL” card for free!
So be on the morning SCRUM calls, be punctual with your work commitments and don’t just take an off abruptly on a weekday (I mean too often).
Sometimes your fellow developers are waiting for you to push your code! Don’t be a jerk for keeping them waiting – on purpose!
Be Organized – Google Sheets
This is my Mjölnir. Google Sheets have helped me organize my workday and my work-flow in general. The number of things to keep a track off can hinder your general programming and hence it is important to be on top of it – all the time. Also, the number of things to follow increases significantly when you are working remotely with 20 other people! For example:
Work-From-Home (WFH) checklist
This helps me to make sure I do everything when I start my day and when I end my day. Get the WFH checklist
If you have worked in a product based company and JIRA, the term Sprint will not be alien to you. But for others, a Sprint is a development cycle adhering to a fixed time period, post which the team has a feature implemented. Details here.
The Sprint tracker is something personal and works like a charm for the work-flow being followed at my work-place. It is important to understand that the workflow can be different for different teams and different projects. So, my advice to you will be to develop a Sprint tracker for yourself. Get Sprint Tracker template
Important R&D Links
Now this is “My Thing”. Some of you will definitively think this is just STUPID. But to be honest with you, this has helped me leaps and bounds and have increased my developments speed. One thing that I am sure off is that the problem I solved after 3 hours and if that problem comes again, I don’t want to again go through the agony of finding that 1 StackOverflow answer or that 1 Medium article.
So, every-time I stumble upon something new, I just make a note of it. Now because I work in startup, it also gives me the opportunity of working with a ton of frameworks. So, I have dedicated tabs for them!
Do not work so much that you collapse. You’ll be replaced within 2 days once you aren’t fit to work anymore. Get this thing into your head.
Keep your sanity intact. Do not try to outwork yourself or anyone in your company as a matter of fact! Take your Saturdays and Sundays. Breathe.
I’ll be updating this article as I progress with my career as a software developer because improving at your skill and productivity is a continuous process!
Rest, to my fellow experienced software developers, please feel free to suggest your productivity hacks down below in the comments!
14 comments / Add your comment below
For some time now, I have always loved visiting sites with interesting content to get more insights. After accessing your site, it was really helpful to me. I really loved the content, plus it gave me what I have been looking for, for quite some time now. you can access my site for interesting contents, just click here and here for interesting details. Thanks for the interesting stock price content by the way.
Thanks a lot for sharing such a informative content. There are also more information which we can follow to be better software development job.
1. Don’t Sell Yourself Short
Companies need you, not the other way around.
2. Invest in You and Your Career
You need to invest smartly.
3. Leave Toxic Bosses and Workplaces
4. Consider Doing a Side Hustle
5. Work on Your LinkedIn Profile
6. Don’t Hesitate to Ask Questions
7. Train Your Social Skills
This is sooo good … you are doing a great kob here
Nice one, Thanks for sharing valuable information with us. Looking forward to learning more from you. Peniel Rita.
This blog helped me to understand the fact that even a simply written article can be best over thousands of other highly qualified no-meaning articles. So always keep in mind that use simple but accurate parameters for your blog.
Great idea! your information is very helpful. Thanks for sharing this article
Thanks for sharing this valuable information with us.
Absolutely I agree with all the points mentioned by the author on how to become a good software developer. Clean Code is a main out of all of them and also I would like to make a small suggestion to add a point of Following Industry leaders by following them on twitter and social media or by reading their blogs developers can get a good knowledge from their years of experience.
Thank you for reading it and I am glad you found it worth your time. You did add a great number of valid points!
Thank you for this post being a software developer this was a very helpful blog to me. I believe there is always room for improvement and this post will make me a better software developer. I will surely share it with my colleagues.
Thank you very much for this valuable information .
While software development is one of the prime requirements for any IT solution organization, this blog totally justifies how to be proactive being in the corporate sector. loved reading it.
Thank You so much for the information about programming language, read 6 Best Cross Platform Mobile App Development Languages to figure out what works best on your goals and desired outcome.