Many of us who love WordPress, and know how to use it, sometimes catch ourselves wondering what it would be like to be a WordPress developer, perhaps even dream of becoming one. In this series we will try to offer you an insider’s perspective on what a day in the life of successful WordPress developers in different areas of the marketplace are like, what they do on a daily basis to remain successful, and what advice they’d have for an aspiring WP Developer.
In this first installment where we look at a day in the life of a freelance developer, we’re joined by Bill Erickson, a Freelance developer/consultant who has had some rather high-profile clients in his day; Yoast, The University of Cambridge, to name a few. The questions are the headlines, and Bill’s answers follow below.
1. What’s the first thing you do after you wake up in the morning?
When I get up I check my phone to make sure there’s nothing urgent (SITE DOWN emails), but try not to get dragged into work too early. I take a long walk with my dog, then prepare some type of breakfast (usually just a glass of orange juice unless I’m really hungry), shower and get ready. Around 9AM I’m in my home office ready to get to work.
2. How do you deal with coder’s block?
It’s really helpful to have a group of developers to bounce ideas off of, see how others would build something and review your code. I have a Slack chat with a bunch of other developers, which is great. It’s hard when you’re working at home by yourself, and I think more developers should find ways to reach out to others – whether it’s working together at a coworking office / jelly, creating a Slack/HipChat chat, or simply keeping touch through Twitter.
If it’s something particularly difficult or interesting, I’ll spend extra time researching it and really understanding how and why something works. I then share it publicly on my blog. For instance, I had a project where I needed to set default values for a bunch of different types of content (post meta, options, term meta). I dug through WordPress and Genesis core finding all the relevant filters, then wrote a post about it. I’ve found that if I know something will be public and viewed by others, the quality is much better. Try to write all your code with the expectation that it will be viewed and shared.
To be honest I don’t experience coder’s block very often. I’m fairly conservative with the types of projects I take on. If I’m not 100% confident I can deliver on the requirements and exceed my client’s expectations, I don’t take on the project.
I try to do projects outside my comfort zone every 2-3 months or so. My effective hourly rate (project price divided by time spent) is usually pretty horrible on them, but they’re fun and help me learn new things. But you have to be careful with these types of projects since they can ruin your schedule, taking much longer than expected.
3. What tools/software couldn’t you get through your workday without(other than WordPress of course!)?
I do all my development on a MacBook Air with my Varidesk sit/stand desk. I really like this desk – I find standing helps me focus and be more productive.
Software-wise, I use Slack for chat, Freshbooks for invoicing, and Toggl for time tracking. I bill everything on a per-project basis, but keep track of time for finding my effective hourly rate and comparing projects. I also love WP CLI.
4. Do you follow a set schedule every day? If so what does it look like?
I have a fairly set schedule, but it’s more about defining large blocks of time for work. I’ll usually sit down to do emails around 9am, with the goal of being done by 10am. Things that can’t be done in 5-10 minutes get an appropriate tag in gmail (changes, out-of-scope, migrate, quote) and get saved for later. I then switch to the standing desk and work from 10am-noon. I take about 30 minutes for lunch and get another 3 hour block of work done from 12:30-3:30. I’ll then switch back to sitting and work through what’s left in my inbox – preparing quotes, doing a few change requests…
During those large blocks of time I’m focused either on initial development or change requests. If I have a large site to migrate, I’ll migrate it in the background while doing change requests.
5. What’s something you do on a daily basis that helps you keep work coming in?
The most important thing I do to keep work coming in is exceed client expectations and have happy clients. 50% of my work is projects from past clients, and another 25% is referrals from past clients.
Sharing what I learn through my blog and code snippets helps me grow and build a reputation. Contributing to open source projects like WordPress core, Genesis core, and my public plugins also helps. But the value in these are more indirect and diffuse. If I try to measure the ROI on these things it’s pretty low, but I do it because I enjoy it.
Keeping clients happy has a huge ROI and is just the right thing to do.
(Follow-up question) Is it possible you could elaborate a little bit on how you keep your clients happy?
One of the best tools for having happy clients is properly vetting prospects before they become your client. Look for common red flags: unrealistic estimate of time and cost, needs functionality that you’re not experienced in delivering, communication mismatch (client wants everything done by phone, you communicate by email)…
When a project doesn’t go well, review it and see if there’s anything you could have done to prevent either the issue or accepting the project in the first place. I think a large part of me having happy clients is selection bias (choose the right people to work with).
Another way is to exceed expectations, and this is often done in the backend. When a client gives you a design, she expects the site you build to match that design on the frontend. But there’s a ton of ways to implement a design in WordPress. My goal is to always deliver an elegant solution, to ensure the site is easy to manage regardless of its frontend complexity. Many of my clients come back to me specifically for this reason – they’ve worked with other developers and always find the websites I build to be easier to manage.
6. Do you have any habits or rituals that help keep you grounded throughout the day?
With a home office, it can be difficult to find a work/life balance. One thing that really helps is using my wife’s job to define my work time. When she gets home (usually 4:30-5:30) I’m no longer “at work”. I leave my computer in the office, close the door, and I’m home.
7. What do you do on days where you’re not actively working on a project for a client?
I stay pretty busy, there’s usually always something that needs doing. If I’ve finished the initial development of whatever projects I have scheduled that week, I usually have change requests for other projects, or out of scope changes (billed separately). And when I really don’t have pressing deadlines, there’s always improvements to my plugins that need to be made and have been put off.
8. How is the lifestyle different from what you expected when you first started out?
It’s really up to me to determine how high- or low-stress my work can be. Any time I have a project that goes poorly, I do a post mortem to determine what ways I could have improved or avoided it. This includes changes to my sales process (finding new ways to eliminate bad projects), changes to my contract, and changes to my communication process throughout the project. As a freelancer I have the freedom to take on whatever projects I like, so I try my best to only take on projects I will enjoy.
The other thing that I didn’t expect is how difficult it is to take a vacation. I can’t disconnect for any length of time without months of planning and a huge hit to my income. I took two weeks off this summer to visit family and travel. The month before I left I couldn’t take on any work and had to wind down existing projects. The month after travel I slowly brought my business back up (starting work but not getting paid for another month). Those two weeks off decreased my annual earnings by about 20% (2.5 months of no new income).
I can travel for months and work at 50% capacity, but it’s not realistic for me to ever expect a reasonable period of 0% work unless I hire someone. I probably won’t hire anyone since I enjoy the benefits of the single freelancer lifestyle more than the cost, but it’s definitely something that needs considering.
9. At the end of the day, when do you stop looking at blue-lit screens? (On good days, and bad days.)
Usually about 4:30-5:30pm. But when I do have to work late my screen isn’t blue-lit since I use fl.ux 🙂
10. Looking through your portfolio, you have had some very impressive clients, (Yoast, University of Cambridge) what did you to distinguish yourself from the crowd, and land more high profile clients?
I don’t do a very good job of describing my unique value through my website. My current website was built when I focused on smaller projects, and updating my message is one of my goals for 2015.
I was able to get most of my larger clients because the person making the hiring decision is also a developer and is familiar with my work. By releasing my plugins, tutorials, snippets and contributing to larger projects I’ve been able to prove my value to technical decision makers. For most of the other projects, I worked with them on a smaller project and once they realized what I brought to the table they utilized me on other projects.
11. What’s one piece of advice you would give to an aspiring WordPress developer just starting out?
There is more work out there than there are high quality developers to do it. In my opinion, one of the best ways for a developer to get more business now is to contribute to projects with other top developers. Your talents will be recognized and when those developers receive work that isn’t a good fit for them, they’ll send it your way.
I just looked at my stats. Of the past 200 people who contacted me to do work, I took on 13 projects. That means I turn down 93.5% of the work that comes my way. This is for a variety of reasons – outside my skillset, too short of timeline, too small of a project, and many other reasons. I bet many other developers would have similar statistics if they looked.
When I’m not a good fit, I try to recommend people that might be. And the best way I know who to recommend is by seeing them in action, contributing to projects I follow and work with.
Thank you for taking the time to tell us about your day and work in general, Bill. If there are any questions you would like to add to the list, a kind of developer (theme, plugin, etc), or even a specific developer you’d like us to interview next, please let us know in the comments.