Good habits for Software Engineers
“I’m not a great programmer; I’m just a good programmer with great habits.” - Kent Beck
Do you want to be a great Software Engineer? There are many things beyond knowing how to code or a technology deeply. In this blog, I break down all the habits that have served me over the years and that I’ve picked up on by observing other successful senior engineers.
I’ve been a software engineer for around 14+ years now and I feel this profession has been truly incredible in terms of learning new technologies, meeting incredibly talented people and working on a whole buffet of problems related to Testing. The feeling and rush of working together with a group of people to land a feature, capability, project with style and taste and see it being used by millions of people and create value in the world is truly unparalleled and makes it all worthwhile.
I’ve also had the joy and privilege to mentor or influence many bright upcoming engineers around me in my day jobs and on Topmate. Each one is a beautiful snowflake with their own unique habits, workflows, aspirations and world view. I still learn from them and their unique perspectives.
Over the years, I’ve made tons of personal mistakes, learned a lot of things through experience and being at the craft for this long and in this blog I wanted to share some of these habits which I wish I had adopted sooner and looking back have made all the difference in my life.
Some of these may sound obvious to you and this is not a short laundry list of checklist items to evaluate, but hang on and read the whole thing. You just might pick up something a bit more nuanced?
3 pillars for a software engineer
What are the 3 most important pillars that a software engineer should focus on?
♥️Health
🫂Connection with Family and friends
🧑💻Career and growth
Wait, you may be wondering the 1st two points have nothing to do as an engineer, so why are these here?
Yes. You are right and they are at the top because as you’ll discover failing in these fails you in your career as well.
Health
Why is focussing on health so important?
Software engineers could become incredibly unhealthy 🤒 pretty fast. We sit at our desks for long hours putting an incredible amount of toll on our bodies and minds, some of us are over caffeinated on coke or coffee and binge on junk food from the vending machines a lot.
Have you observed the intense fatigue you experience as you close the end of your work day with a heavy head, tired legs and slightly burning watery eyes.
Sometimes I wonder, all I did was type away on my keyboard and talked to people, how is it that I feel so tired at the end of the day?
I’m not a lifestyle and fitness coach, but I’ve seen many software engineers neglect focussing on their health that ends up causing a lot of harm. If you also want to do this job for as long as you possibly can, you need to start taking care of the fundamentals first.
What do I mean by health?
Let’s break it down a bit, shall we?
💪 Physical health
Let’s focus on our most important asset first: our body. 💪
🪑 Posture: You should learn about ergonomics and invest in getting yourself a good height adjustable table, chair, monitor, keyboard and mouse. Please don’t type away on your laptop with a hunched body. The amount of time and money you’ll spend here is negligible compared to the amount you may have to pay later in hospital bills to relieve yourself of back pain, neck pain and wrist pain etc. Here is a good downloadable PDF to know more and get started.
☀ ️ Taking regular breaks: Ergonomics and having good equipment is a great first start, but your body needs movement. After every 45 mins of sitting at your desk, take a 5 min break to walk around, stretch your body. It would relieve the built up tension in your muscles and your body will really thank you.
🥛 Hydration: Humans need at least 2-3 liters of water in a day. Avoid having too much coffee, tea or soft drinks. Yes, 1-2 cups of tea is perfectly okay but don’t go overboard on caffeine/coke in order to stay alert and pound away.
🤸 Regular exercise: Take the time to go to the gym at least 2-3 times in a week, join a dance class or learn how to do Yoga. I personally set up calendar reminders on my personal calendar and also used Habitica to nudge me into forming these habits and do a self evaluation on if i’m on track with these or not. There is something about your digital avatar losing health because you did not follow up on your dailies.
🌿 Diet and nutrition: Please learn about nutrition, chew your food and ideally prefer home cooked food over hitting the restaurants every alternate day. Learning how to cook delicious, healthy and nutritious food is literally a superpower. 🦸
🧠 Mental health
If you follow the above advice, hopefully you are investing in your body and this will also have a direct impact on your cognition, mood and energy levels.
You’ll notice the increased energy and productivity to do more, but what about your most important partner in crime: Your mind?
🧘 Meditation: I started meditating using Headspace in 2018 and have had a pretty regular meditation practice followed by 10-15 mins of Yoga with surya namaskars in the morning. You can choose your own workflow/app for this but I’ve found this incredibly helpful to be more relaxed, calm and mindful. Yes, I’m still a work in progress but I really enjoy learning new things about the art and science of mindfulness. I’ve found software engineering could burn you out pretty fast and having a healthy mind is table stakes
📓 Reflection: Set up some regular time blocks to reflect on your day, activities and growth. Take the time to organize your thoughts better, reframe challenges into opportunities and more and cultivate a growth mindset
🙏 Gratitude: You only get 1️⃣ one life, and it’s your own. Please don’t compare yourself to others journeys and highlight reels. I occasionally take some time to remind myself of things that I’m grateful for before a meal or sleeping and the things that are going well in my life and trust me it helps. Of course, I’ve blocked all social media app notifications and I’m embarrassed by the joy of missing out (JOMO) instead of fear of missing out (FOMO).
✈️ Travel: Please don’t be glued to your office and desk 365 days a year. The world is vast with interesting experiences and you should plan regular breaks and travel with your friends and family to unwind and not think about your work/office. Yes, working on your career and success is important, but it’s not the most important thing you’ll do with your life. There is a life beyond the tech-verse, explore it!
😴 Good Sleep
This is an area you should never neglect for anything.
We all have different circadian rhythms. Whether you are a morning person or night owl, getting 7-8 hours of good quality sleep is essential.
Invest in building good habits like slowing down with a calm and relaxing night routine wherein you ensure your body is primed to sleep and wake at consistent times. Your body will thank you.
Your projects and tasks will still be there when you wake up, but if you don’t sleep well, your body will not be able to repair itself and you’ll pay the toll the next day anyways so cutting on it really does not help.
💰 Financial health
I consider it to also be part of your health.
Why?
My logic is simple. If you don’t have good financial habits and money, you’ll not be able to think of anything else. Your career success can help you acquire money, but saving and growing it is a different skill.
This is also a topic they don’t teach well in school but is extremely important. Investing in living a life of simplicity and moderation where you live way below your means while you invest in your career growth and invest smartly may be the single most important thing to learn early on in your career.
How I wish I knew more about the financial traps early on in my career and not miss out on the wonders of compounding. It’s never too late to start and the best day to start your personal finance journey is today. I’ve found Personal finance modules in Zerodha Varsity and Zero1 by Zerodha - YouTube to be incredibly useful.
⌛ Working hours
This one has become unnecessarily controversial
Working 10-14 hours daily or 996 culture has been way over glorified by hustle/startup culture with promises of exponential growth and riches. Your body may be able to sustain itself for short bursts of such an environment but this is definitely not scalable over a long time period.
This is also truly a personal decision and I will not tell you how to live your life, but personally I’ve found 8-9 hours of focussed, well planned work a day to be more than enough for my brain to sustain. If I can do this consistently for 5 days with some good outcomes, impact or progress at work then I can head into the weekend feeling like I spent my time well.
Why does discipline this matter?
I don’t wish to have a 5 year career sprint, retire and sip martinis on a beach somewhere. I realize that is aspirational for my people and I have no issues if that’s what you are striving for.
I want to work for as long as I possibly can, have the desire and love for the craft, and this is directly proportional to me having a holistic life. Thus, I need time to focus on all the other stuff I’ve mentioned above. If I work 14 hours a day, when would I realistically have the time for other stuff?
So yeah, healthy boundaries are incredibly important to me.
There are some exceptions to this as well.
Your production service may be down
Your app may be crashing leading to direct revenue loss,
or you may be a new employee with no trust or street cred yet.
In such cases you should definitely try to help your company get over the issue in the most safe, efficient way possible or spend a bit extra time ramping up and being productive. But don’t make it a long term habit.
So let’s summarise health shall we?
Please focus on below core priorities.
Your body
Your mind
Your sleep
Your finances
and you’ll be fine … Well, mostly! 😏🤷
🤝 Connection
Why are you working as a software engineer?
It could be because of any of the below:
Do you have a deep love for the craft?
You are a technology nerd who has passion for learning new things,
You love solving hard technical problems
You enjoy developing yourself as an engineer and professional
You aspire to climb the career ladder
You want to genuinely help your product and company win the market
… etc … etc
All of the above are great ideals to strive for and what makes this job fun and rewarding to spend 8-9 hours of your weekdays
A more pragmatic reason for why you may want to work for someone else is also to earn enough money to support yourself and your family. So in the end, it does boil down to social connection doesn’t it?
If you neglect your social connections in the pursuit of career success and meaning, then does the end justify the means?
🏡 Make intentional family time
Spending quality intentional time with your partner, children, parents, siblings and other relatives can be incredibly rewarding.
Your family is probably the biggest area for you to invest your time, attention and care in. Over your career, you will probably work for multiple employers and meet many interesting people in your life that you can call friends. However, at the end of it all. Family is what will hopefully stick with you in all your good and bad times.
A popular anecdote that I often copy and repeat is:
You will not remember code, powerpoint presentations, or projects on your death bed but you’ll definitely cherish the connections you made, experiences you lived and memories you created with your family and friends. These relations compound with time as well if you nurture them.
We humans are social creatures and we need these connections to not only live life well, but they also create the necessary support structure for us to thrive at work as well.
So please, give them your time and full attention. They deserve it.
🍻 Friends time
Friendships and bonds are amazing. These are relations you nurture not out of obligation but out of choice and as such they can be incredibly precious.
Friends support you, give advice, laugh with you, act like free therapists and are generally damn fun to spend time with.
So, take the time to stay in touch and connect with your childhood, college friends, meet prior colleagues, mentors that hopefully become friends and connections. Attend mixers and work events and be nice to folks around you.
Engineers can sometimes have a pretty myopic and dystopian view of other engineers in their vicinity, sometimes treating them as competition. However, for the most part, everyone is mostly trying their best to explore their own life’s stories and your workplace should not be a zero sum game.
You can choose to be additive and make some cool friends in the process. Please bear in mind that it can’t always be sunshine and rainbows, but you can develop genuine connections and friendships with people at work. If you choose to take the humane approach, you’ll often find this network that you build may be your biggest takeaway from a job or role far exceeding returns earned from your take home pay as well.
🏢 Career
Okay, 2000 words in, give or take and we haven’t spoken anything about your actual career as a software engineer.
Where the hell is this blog going? 😕
If you’ve been a patient reader so far. Thank you! Give yourself a pat in the back.
I think you must have realised by now that your health and connection with others is a super important lever 🧗 in your hand, pretty vital to your career success and overall well being.
If these areas are sorted, you may literally be able to move mountains ⛰️ at work. 😉
If not, ahh.. Life is going to be tough. Truly your choice. I mean it!
With that said, Shall we look into what good habits for a Software engineer look like?
😌 Deep Focus blocks
Hopefully you are no stranger to The Flow
The magical state of mind when ideas, code, docs all flow in a perfect stream. Where the world reduces to your monitor, keyboard and IDE/ doc/sheet editor and nothing else matters except the problem you are solving one step at a time. Losing track of time in such a state is quite common and software engineers are addicted to this state. This may be the real reason you fell in love with the craft all those years ago.
However, do you have the time at work?
What about the 4 back to back meetings with a 30 mins delay in between, 10 DM’s and constant ping and notifications you have on your Teams/slack that you absolutely must respond to right away?
Yes, this is the modern workplace and we all suffer from some degree of ADHD (Attention deficit hyperactivity disorder). Welcome to the struggle!
But, there is a better way and it’s actually quite simple.
Let me break it down for you.
Find a quiet place at home with a workstation, a focus room at work or in the worst case noise cancelling headphones in your open office.
Block 2 hours calendar blocks on your calendar. Anything less is not really useful. 30 mins to 1 hour does not count.
Turn off notifications on your email / instant messaging clients / mobile phone
Take 10 mins to get into the zone
And then go and work on the problem that you really care about with impact.
If you can get 2 such blocks in a day, congratulations 🎊 it’s a day well spent at work.
If not even one 😞, you need to take a hard look at what you’ve been doing at work all this time.
Stop trying to look busy, and actually be busy producing meaningful and impactful work.
📵Turn off notifications
Psst! Do you know the big secret?
You can pretty much turn off notifications from devices/apps constantly stealing your attention every moment.
The world actually can wait for a couple of hours. We often give ourselves too much self importance. In the worst case, if something is truly burning you just might get a call and then it’s fine to break your focus block and go solve that urgent and important thing.
📔 Work journal
Do you ever wonder:
What the hell have I been doing for the whole day and actually got done? Yet feel totally drained and exhausted?
Does this compound badly to you having to look at your past emails, teams/slack posts when the time comes for you to write your annual review?
Does your boss need to constantly pull you aside for that quick update?
Yes, all of these are real problems.
It’s also not possible for you to have a perfect recall and memory of everything you did.
Maintaining a work journal is very important and helps solve these problems.
What does it look like in practice?
Glad you asked, Say you want to start this practice from October month
Create a doc and put it in your cloud drive (GDrive, OneDrive, Dropbox etc)
Add title of October 2025
Add H2 of Week 1 - Mon, 6th Oct - Fri, 10 Oct
Add H3 with Mon, Tue, Wed, Thu, Fri
Add H4 with your current project title, say Project A, Project B, Meetings etc
Take 5 mins at the end of your day or after you’ve completed something meaningful and add a bullet point under these
When the week is done, summarize your impact under each project
When the month is done, summarize these weekly summaries into a monthly one
And voila, you have a pretty good, detailed reflection of how your time was spent and what the hell did you actually do
If you did something truly outstanding, put it in a brag doc and share it with your manager
This practice has few really good benefits
You can use this for self reflection, if the points are thin or the work is mostly busy work, it may be time to carve out intentional time to work on the big meaty problems
You can refer to this before standups and give clear, concise updates and sound cool while doing it.
You can share this monthly summary with your manager and ask for feedback on what else you should be doing
Annual reviews don’t seem that intimidating
I’ve seen this practice advocated for by many Principal engineers and have been following this for the past 5 years. It does help!
The only barrier to this is laziness and procrastination, but hey. There is nothing called a free lunch. You may also be tempted to use an LLM (Large Language model) for some of this work and sure you can use it in a way that works for you. I’ve found summarizing these points and reflecting on them does help me self calibrate.
🌱 Learn
Yes, you learn a ton at work.
The projects you work on, that legacy framework or stack, one off tidbits from a Teams/slack message from that Principal or Senior engineer you admire, hallway conversations and all of these are great ways to grow.
But …
You still need to carve intentional learning time for yourself
Why is this important? 🤔
If you take the time to learn a topic in good detail, it helps you develop solid taste in that ecosystem and often awareness and knowledge of a technology helps in you making an educated design choice.
It’s hard to create this dedicated time during working hours since you have couple of projects running in parallel
So block time to learn outside work, this can be either morning or evening or nights or weekends, it depends when you can create that time for you, but regardless of whatever time you block on the calendar, make sure you stick to this. Consistency really is the key
📓 Notetaking
I don’t care what tool you use but make sure you have structured notes on different topics somewhere.
Ideally synced and backed up in the cloud and searchable and editable on all your devices – laptop, mobile or tablet
Every time you learn something new related to a topic, come back and take 5-10 minutes to update your notes. Learned a new subcommand in git that worked for this niche usecase, come back and update. Discovered a new cool python module, you know what to do 😉
You’ll notice after some years, you will start using this as your second brain and you can very quickly recall good practices, bespoke approaches to solving certain problems and appear like a total wizard to the folks around you. Your knowledge will compound with each year and you’ll see the difference in yourself as you are not struggling with fundamentals, but building on top of these.
✍️ Writing is the new super power
Good writing is clear thinking made visible - Bill Wheeler
If you can strip away distractions and put down your thoughts in a doc in a concise and clear manner, it would really set you apart from your colleagues.
It’s no secret that a large part of software engineering is to communicate your ideas to other people, and influence without authority
Meetings are one expensive high bandwidth way of doing so, but often drains everyone.
Being able to write down your ideas on a doc, post or thread can help others participate or review and give you feedback on their own time.
Sharing my own personal journey, I started blogging in 2018 and in my opinion this was the inflection point that had led me to become a much better writer and communicator. This not only helped me in building a brand on social media but also immensely at work, as I could explain my ideas/thoughts clearly to different stakeholders in good writing and a positive comment from an interviewer where they went through my newsletter and blog to see what i’ve been up to outside work does not hurt my chances.
This is a core skill for Senior engineers and with AI models working primarily on text and instructions, being able to write down a project, specifications in clear English may just be as important as learning to code.
And that’s all folks.
I hope I left you with some ideas and approaches that help you in your software engineering career.
Did I miss any other good habits to develop? Please drop in your thoughts in the comments to share them with others and if you got something valuable from this, please share it with your friends and colleagues.