Hey friends 👋,
One of the main struggles I hear developers have is finding the time to do everything.
Not only do we have an endless backlog of tickets to work on, but we also have to keep up to date with technologies and certifications, all while attending far too many meetings.
It can be pretty overwhelming and feel like you are constantly treading water without making significant progress.
Over the years I have come up with some techniques which have helped me manage my time more effectively as a software developer which I hope will help you.
Focus on one thing at a time 1️⃣
One of the biggest killers of productivity is context switching. If you are constantly switching between lots of different tasks you will never get anything finished.
I keep a running to-do list on my desk at all times. Whenever someone comes up to my desk and asks me for something I will add it to my to-do list for later. This way I can keep track of what I need to do without it taking up additional space in my head.
You can use an app like Todoist for this but pen and paper works fine as well.
There are times when the request is urgent and I have to drop what I am doing but I try and keep those occasions to a minimum.
By focusing on one task at a time you will get through that to-do list quicker which can be quite satisfying. You feel like a productivity master whizzing through all of your tasks.
Unfortunately, I tend to add more things to my list than I can complete in a day so that feeling is often short-lived.
Shut out the distractions 🤫
There are some days that I am just completely lacking the motivation to work. Last night I woke up at midnight and it took me 2 hours to get back to sleep. Urgh.
On days like this, reaching for my phone to scroll social media seems much more appealing than doing work.
If you find yourself easily distracted then there are apps out there that can help. There is one called Freedom that works on all your devices and it will help you block all distractions for a set amount of time.
If it is just certain apps that you are wasting your time on then consider deleting them from your phone. I found myself killing so much time scrolling through Instagram and TikTok that I deleted them, which has made a huge difference. I am a lot more present when I am spending time with my family as I haven't got social media to distract me.
It is not just social media that is to blame. I find the biggest distraction at work are meetings. If you have a day littered with meetings trying to get any work done in the gaps between them is futile.
I am sure the other developers on your team feel the same way too. As a team, try and clump together regular meetings so that you can have large chunks of time to be able to work. I am sure your project manager will agree when they see how much work the team gets done as a result.
Track your time ⏱️
Talking about time wasters. If you aren't sure where all the time is going then consider installing a time-tracking app so you can see exactly where your hours have been spent.
If you are a bit of a data geek like me then you might like Rize which works on both Windows and Mac and has a great interface and shows you exactly where you spent your time.
You might be surprised at how much time you are spending on certain websites during the day when you should be working.
Find what time works for you 🌃
We all have different times of the day when we are at our best. Despite the programmer stereotype, I find that I am much more productive in the morning compared to the afternoon.
You must find what time works for you and work around that. As a morning person, I would always start work at 8 so that I had at least an hour of focused time in the morning before everyone else gets in.
I then use the afternoon for work that doesn't require quite as much concentrated effort such as code reviews and meetings.
We don't all have the ability to schedule meetings when it suits us but we can control when we get in and leave work.
Take regular breaks 🍅
If you are stuck on a problem it can be tempting to stick with it until you have solved it. However, I have solved more problems by taking a walk than I ever have by pushing myself to carry on working.
Breaks are incredibly important especially if the time is spent staring at a computer screen. You need to give your eyes a rest and your legs a stretch.
One way to do this is to use the Pomodoro Technique. Set a timer for 25 minutes and stay focused on that task until the timer goes off. Then give yourself a 5-minute break. Repeat this 3 more times and then take a longer break of 15 to 30 minutes.
We tend to slowly lose concentration and focus when working for a long period but it isn't always noticeable. By using the Pomodoro Technique you are forced to take a break which can help reset your concentration.
Script repetitive tasks 🧑🏻💻
One of the best things about being a programmer is having the ability to code your way out of boring tasks.
If you find yourself doing something incredibly time-consuming, is there a way that you could automate it with a script?
If it isn't possible to automate it completely then you might at least be able to speed up the process.
For example, I do a lot of keyword research for my blog posts and YouTube videos. This generally consists of searching for keywords on Google and then copying the numbers that I get from Keywords Everywhere into a spreadsheet.
This is incredibly boring and time-consuming. It might be possible to fully automate it with a headless browser but that would take a long time. Instead, I wrote a script and then saved it as a snippet in Chrome. Now with a few keyboard shortcuts, I can run the script which scrapes all the numbers off the page and copies them to a clipboard ready for me to paste into the spreadsheet.
I also used to spend a lot of time copy and pasting my blog posts from my website to dev.to, Medium and Hashnode. Now I have a script that runs automatically that does all this for me.
Just remember not to get too carried away writing scripts. If the task takes 5 minutes to do manually but it takes you 8 hours to write a script for it then you would need to do that task 96 times to break even. Although depending on how mind-numbingly boring the task is it could still be worth it for your sanity.
Finish on time each day 🛑
This might seem counter-intuitive if you are trying to get more done, but believe me it works. Similar to taking regular breaks, finishing on time each day will make you more productive in the long run.
If you know you only have a certain amount of time each day to get your work done you will be more ruthless in your prioritisation.
When I was working in London I made sure that I left work at 5:45 pm every day. I had a 30 min walk to the station and I had to catch the 6:22 pm train. If I missed that one then the next one wasn't for another half an hour. The train journey itself was an hour long so I didn't want to add more time to my work day.
Set yourself an alarm for 15 - 30 minutes before your work day finishes and another one just before you need to leave. Unless you are stuck in a meeting make it your priority to leave on time each day. Having this routine will make you happier in the long run and decrease your risk of burnout.
❤️ Picks of the Week
📚 Book - This week I have been reading The Psychology of Money by Morgan Housel (affiliate link). One of the key points that stuck out to me is understanding the difference between being Rich and being Wealthy. Many people think they want to be rich so they can buy lots of nice things. The wealthy however have something far more important and that is freedom. Freedom to do what they want each day. That is the key to happiness.
📝 Article - Introducing Apple Vision Pro. Apple just announced their own VR headset, sorry Spatial Computer! It is coming out in early 2024 in the US and late 2024 for the rest of us. Feature-wise it doesn't seem to do any more than the Meta Quest 2 but is a whopping 10x more expensive starting at $3,499. The Apple Vision Pro is more AR than VR with virtual elements appearing as if they are hovering mid-air in your living room.
📝 Article - GitHub - TodePond/DreamBerd: perfect programming language. If you are looking for a laugh, check out this "perfect" programming language. I particularly like the immutable keyword `const const const`, because one just isn't enough.
👨💻 Latest from me
I seem to be falling behind with my YouTube videos recently and this week with a couple of days of poor sleep I didn't manage to get a video out.
I don't think anyone minds (or cares) if I miss a week now and again but it bothers me.
They say to succeed at YouTube you need to be consistent and produce videos at least once a week. However, with each video taking between 6 - 12 hours to script, record and edit it doesn't leave much time for anything else.
To be honest, the ROI on YouTube has been quite low for me at the moment. I was super excited to get monetised after 8 months of posting videos but now that I am monetised I am averaging only $1.45 (£1.17) a day. Which isn't even enough to reach the YouTube payout threshold of £60 ($75) each month.
This should increase over time but I may need to rethink my approach to content on the platform. There are YouTubers like StuffMadeHere that have only released 1 video so far this year and 30 videos in total but has 4.26 million subscribers as well nearly 3,000 Patreons!
💬 Quote of the Week
The ability to do what you want, when you want, for as long as you want, has an infinite ROI.