How to Stay Sane as a Developer
Web development is an awesome field to work in! Interesting projects, fun clients, plenty of creative outlet - on good days this job has it all.
But it's also a field where it's easy to get stressed or even burnt out. This is especially true for freelancers and one-man shows, but also for those working in agencies or even companies.
Watch out for your Mental Health
Starting out I definitely put on too much of a work load. This is fine for a while - you're motivated and excited enough that you don't mind working 60-80 hours a week. It's okay spending your Friday night debugging a site instead of going out with friends, because you have a goal in mind.
But over time it will most likely take a toll on you. I spent most of my weekends doing extra work for super demanding clients, wasted the few vacations I was able to take glued to my laptop because projects ran late, and generally was never able to just shut off and relax.
In the end that combined with some personal issues sent me down a spiral into a deep depression and I actually needed professional help to get back on my feet. Since then I've been a lot more cautious of my mental health and how my work load and lifestyle affect it.
I wanted to take the time and summarize a few of the most important lessons I and my agency colleagues learned over the years - maybe it will be useful for some of you just starting out on your journey or already going down the path that I first took.
Choose your Clients and Projects
Yes, when you're starting out you have to accept pretty much every gig you can get. We've all been there, but it's something you will want to distance yourself from as quickly as possible.
Working for crappy clients doesn't only have immediate effect on your happiness, it also keeps you from finding better ones. It's hard to develop your business and market yourself when you're chasing your tail trying to deliver results for a "I'll know what I want once I see it"-type client.
Once you have enough cash flow to support yourself, take a look at your roster of clients. Eliminate the ones that aren't worth your time and use that free time to find better ones instead.
What Makes a Good Client?
Here are some qualities we look for in (potential) customers:
A good client sees us as the experts, not just executors of their ideas. It's important that the relationship with a client is one of equals, not boss and subordinates. At my agency we have decades of experience between us, which we want to bring to the table. It's frustrating having to build something that you already know will fail, just because the client isn't open to your constructive input.
A good client has a specific plan for their project or is willing to work one out with our help. Especially when it comes to design, some clients give you little to no direction and want you to keep producing concepts until they like one. Those will generally change their mind over and over and be a pain to work with.
A good client is willing to adapt to our project workflow. There's a reason we want the design signed off before we start developing. Each project phase depends on previous ones for us to be able to work efficiently. And no, we won't accept the client's feedback as commented screenshots in a power point, that's what we have specific tools for. Our project workflow is part of our expertise.
A good client has the time and manpower to work at your speed. At many points within a project you will need input, feedback, and content from your client to keep working. If there's a two day delay each time because they are drowning in work, your timelines and planning are worthless. There needs to be commitment from both sides.
This isn't all black or white of course, and there are a lot more factors in play. A lot of it depends on our personal gut feeling. If we believe that a client will be a pain to work with, we won't even send over a quote.
What Makes a Good Project?
This one is a lot less an issue of the client or project, but about what you are comfortable with.
A good project is something you're comfortable with. Of course it's possible to learn on the job, and often you can use a client project to learn one small new technology you've been interested in. But modern web development is a complex beast, and taking on a project with multiple new concepts will drain your batteries quickly.
A good project enhances your portfolio. In order to fill your pipeline you need to look interesting to prospecting clients. So you need to make sure your portfolio leaves a good impression and is updated regularly. If most of your projects are under strict NDA, it might be worthwhile to throw in a smaller portfolio project every now and then so you have something to show for.
A good project is one you believe in. You might be mostly in it for the money, but in my experience projects are a lot more enjoyable when you actually like the company, product, or at the very least the design. On the flip side most projects I hated working on didn't follow this - like a site for an esoteric snake oil peddler or a landing page for an app that was obviously dead on arrival.
Don't be Available all the Time
Here's something we do differently than many freelancers and agencies: we don't do phone calls, and we don't always offer our clients a maintenance retainer agreement.
Let's start with the phone calls. Of course my agency has a land-line people can call. But most of the day this goes straight to voicemail, as we are focusing on getting quality work done.
Why we don't let our clients call us
You can't deliver a great product on tight deadlines when your focus is lost to pointless calls every 20 minutes. And 98% of the calls are simply a waste of time - people trying to sell you their services or asking questions that could much more conveniently be answered via e-mail.
Want to talk to us about a new project? Go on our website and book a time slot for a video call. Need a change done on a site we built? Send us an e-mail and we will get to it as soon as we can. Want to pitch your amazing and novel outsourcing opportunity to India? Just don't.
This might be surprising to some, but we hardly ever hear anybody complain about this. Our clients know how the communication works from the start and they don't mind, they know things will get done, and that's all that matters.
This also goes hand-in-hand with picking the right kind of clients. In the past we also had clients that got a hold of my personal phone number and called me on a Sunday night to talk about switching out an image on their website. After this happened a few times we had to ask them to look for a new agency.
Service Level Agreements are a Double Edged Blade
Everybody loves predictable income, so selling a client on a support contract after a project is finished seems like a no-brainer. The client will most likely need help down the way anyways, and by setting them up with a monthly retainer covering a few hours you get that sweet recurring revenue.
But the issue here is with the client's expectations. The project might have been a cooperation between equals, but now you've put yourself in the role of a subordinate. And worse than that, they expect you to make changes asap, no matter how busy you are with other projects.
What happens if you are chasing after an important deadline but multiple clients suddenly need support? Offering SLAs isn't simply additional income, it means you have to budget the time to fulfill them and can't focus 100% on new projects.
Plus, in my experience, most support tasks are a lot less fun than building new sites.
That doesn't mean you shouldn't try to offer your clients some sort of service level agreement. But make sure you have enough resources available. And don't offer them a retainer over five hours for five times your hourly rate or - even worse - at a discount.
Your short-notice availability has value, which should always be reflected in the price tag. If a client isn't willing to pay that premium, you can of course still help them if issues come up - but it's easier to then push that to a time that's convenient for you.
Schedule some Play Time
Most of us got into web development as a way of turning a hobby into a profession. We love creating web projects, so we decided to offer that service to others as well.
But spending all day dealing with clients and trying to meet their demands is very different from tinkering on your own ideas. I was always interested in trying new tools and solving interesting issues, but for many years ended up mostly building run-of-the-mill WordPress sites for boring businesses instead.
Doing the same things every day is neither fun nor exciting, and it will make you dread going to work very soon. So I made sure to change this up and add a good chunk of play time to my day, usually in the morning before clients and coworkers are getting active.
What do I do? I read Twitter, Discord and Reddit to see what's new in web development. I listen to podcasts, read blogs and talk to other people in the field. I whip up a quick site to try that new library I read about. I take on small side projects if they're about solving interesting problems. And fairly recently I started sharing some lessons and thoughts on this blog and on my Twitter.
Now you may ask: doesn't that take up a lot of time that could be better spent billing clients? And of course it does - I'm no longer tracking eight or more hours a day on client projects.
But it helps me and my agency in a lot of ways as well. Without taking the time to try out new toys and tools we might have never made the switch from WordPress to Statamic, which was a major step forward for both us and our clients.
And there are countless workflow improvements that we introduced because we didn't just put our noses to the grindstone but actually took the time to see what else is out there.
But what's more important in regards to this post is that it has made work a lot more fun for me again. Sure, not every project is sparkles and rainbows, but I also don't spend all day fixing WordPress bugs anymore.
Instead I have things to look forward to, new toys to play with, and new improvements to present to my team.
Find Your Own Balance
These are just my experiences and ideas. They might work for you or they might not. What's important is that you make it your responsibility to actively look out for your own mental health.
Take a breather and try to grasp where you are, where you want to be, and if you're on the right track. Look out for symptoms of stress or fatigue and don't try to fight your way through it. You're never getting these years back, so make sure you actually enjoy them.
And most importantly: don't believe all those hustle-gurus on Twitter telling you success needs to be earned via 18-hours work days and constant productivity. Nobody does that long term, those accounts are just an endless stream of meaningless marketing-nonsense.