editione1.0.1
Updated August 7, 2023Sometimes, you’ll find yourself working on a problem towards the end of the day and it’ll feel like you’re making good progress. You’ll want to keep the momentum going and will feel like working a little late to wrap things up. You’ve almost got your code working; just a few more lines of code and everything should compile without errors.
At some point, you need to find a good stopping point and just call it a day. For your own sake, it’s better to close up your laptop and unplug at the end of the workday. You can always pick up where you left off tomorrow, or next week, so don’t put too much pressure on finishing a task before heading home for the night. The work will always be there tomorrow.
It’s a marathon, not a sprint, so you need to set stopping points and take breaks from the computer. Good software takes years to build, so you’re never going to get it all done in one day or one week. Rome wasn’t built in a day, as they say.
We’re never done building software. There’s always something that can be improved, whether it’s fixing bugs for more reliability, implementing a faster algorithm or a better user experience, or reducing the cost of our infrastructure. There will always be more work to be done, so don’t put so much pressure on yourself to stay late and finish what you’re working on.
You won’t be able to hit every deadline, and it’s not the end of the world if a project runs over schedule occasionally. Software projects are notoriously hard to estimate correctly, and sometimes your estimates will be wrong. In the end, quality software that takes a little longer is better than buggy software that was rushed through to production, so keep that in mind when you’re working late.
An important aspect to a good work-life balance is to keep a regular schedule. It’s easier to close up your computer at the same time every day than it is to decide at different times when you’re done working for the day. You may notice some engineers pack up their computer once the clock hits a specific time because they know how important it is to spend time away from their work. They know the importance of stepping away from the computer and of having a meaningful life outside of the office.
It’s equally important to find a routine in the morning that works for you. Try not to rush into work as soon as you roll out of bed, which can lead to stressful and hectic mornings. It’s important to find time in the morning to relax before getting your workday started. Maybe that involves doing yoga, reading the news with a cup of coffee, spending time with your family or your pets, working on a side hustle, or exercising. Spending time to relax before the stress of your workday is important for your mental well-being and a good habit to build if you want to perform well.
Writing software for work can be fun. You get to use cool technologies, and you get paid to solve tough technical problems. But writing software for fun can also be satisfying. When you’re at work, you don’t get to make every single technical decision, but when you work on side projects, you have a blank canvas. You can build whatever you want, however you want. It’s refreshing, satisfying, and frustrating all at the same time. Experiment and try new things, and don’t worry if the code gets messy because you don’t have other engineers peer reviewing your work. You’re able to cut corners in order to get something to work quickly, and this is where your creativity really shines, because there’s no risk of failing.
The excitement you get when you take an idea in your head, build it with code, and see it come to life is hard to describe. Lots of developers enjoy it so much that they’ll work on their own projects outside of work. It’s easy to get immersed in these projects because coding often doesn’t feel like work. We do it because it’s fun and we love the challenge of problem solving.
But it can be hard sometimes. Not because you can’t solve a problem, but because it often feels like there’s a stigma in our industry if you’re not working on a side project or contributing to an open-source project, especially when you’re applying for new jobs. There’s pressure to work on side projects so that you have some work to show a potential new employer, especially if you’re just getting started in your career and don’t have a lot of professional experience.