My freelancing adventures are continuing. I've been focusing on WooCommerce related work. WooCommerce is the main WordPress plugin for doing eCommerce stuff. Things are going well. It turns out people selling stuff online have money and need developers. Who knew?
One think that's helped increase revenue a lot is spending a lot more time doing sales. Previously I was spending around 10% of my time on it. I mentioned this in passing to a friend who works in finance and he was scandalized. He pointed out that financial consultants will generally spend half their time doing sales related work. Because in finance there's basically only one variable that matters: the AUM (assets under management). As a consultant, you're going to get some cut of that, and it varies by a huge amount between companies, so it makes sense to spend a lot of time finding and pitching the clients with the biggest AUM. It's the same with technical freelancing. It does suck to spend a lot of time on sales rather than "real work" (meaning the engineering work I'm much more comfortable with), but I can't argue that this has been yielding much better results.
Speaking of sales, it turns out it's really simple. You pretty much just:
- Pick something people theoretically want
- Identify a large pool of people who might want the thing
- Talk to 100 of them about what you have to offer
- 90 of them will ignore you completely, 10 of them should show interest.
- If less than 10 people show interest, people don't actually want the thing. Go back to step 1.
- Talk in much more detail about the work to be done with those 10 people
- Of those 10, 1 should decide to buy
- If no one decides to buy, people don't actually want the thing. Go back to step 1.
Someone who is good at sales will have a much better conversion at rate every step of the funnel than someone who is bad at sales. But the fundamental recipe is the same. It's not complicated, but it is rather grueling to get rejected over and over.
I've spent a large amount of time doing detailed planning work for clients who pass through the initial sales filter. It can take like ten hours to understand the company and even begin to estimate the amount of work that will be required for a job. Since only a few of these clients convert that ends up being a huge amount of wasted effort. But those who do convert pay a lot, and that more than makes up for the wasted time.
I removed my portfolio entirely from my Upwork profile: https://www.upwork.com/fl/jessealdridge I didn't really have anything great to show there. Most of the pages I've built so far were for clients with low budgets who were ok with mediocre websites as long as long as they could be delivered fast and cheap. At some point I intend to spend some time building some properly designed portfolio sites, but for now I'm finding plenty of work without them. I've got a 100% success rate across 10 jobs, and Upwork gave me a little badge for that. That badge combined with my resume and reviews from previous jobs seems to be sufficient to get clients to respond to my proposals.
I seem to have found a sweet spot for the kind of work I specialize in. It's clearly much more economical to build web applications by combining plugins together via a framework like WordPress than by writing code from scratch. It's literally 1000x cheaper and you get a better end result. However it's often the case that plugins don't quite work together out of the box. But by hacking a couple of lines of code here and there, they can be made to fit together. It's like there's a boulder damming a river connected to a huge reservoir -- and I can use my technical skills to blow up that boulder and unlock a huge amount of value for my clients.
On another note, I added multi-tagging to Task Ranger. This is actually a very important feature that I doubt anyone but me will appreciate. Task Ranger is a time tracking tool that provides a nice UI for manually keeping a log of the work you do, and for categorizing it. The old version of the tool only allowed users to add a single tag to a task. But the idea behind Task Ranger is to build a profiler for knowledge work -- and it wasn't quite there -- because profilers allow you to recursively drill down to find bottlenecks within bottlenecks. But now with multi-tagging Task Ranger is genuinely a profiler for knowledge work -- I can take intersections of co-ocurring tags to drill down into a type of work. https://github.com/JesseAldridge/taskranger-fs
The above change makes Task Ranger more confusing and drastically less approachable for a mainstream audience. But I think I made a mistake in trying to turn it into a tool for normal people. So I've decided to revert it to its primal form -- a tool for me to personally understand where my time is going in order to make myself more productive.
I divide my work into three parts:
- Building software for clients
- Selling my services to clients
- Building software for myself that enables me to serve an ever larger number of clients
The third is the most important and what I believe will allow me to scale far beyond your typical software agency.
Other random notes:
Technically illiterate people can't do screen sharing. It's too hard to get set up. Talking on the phone while we simultaneously open the same page on our respective computers is the best solution modern technology has to offer.
Technically illiterate people are intimidated by tech support. A key service I provide is simply being a liaison between the client and tech support for the services they are using.
I fixed a bug in repoq.com that was causing requests to occassionally time out: https://github.com/JesseAldridge/repo_quality
I made a spreadsheet template in order to analyze WordPress plugins: https://docs.google.com/spreadsheets/d/1Zn1NXC01TlEOgA3ubHQ6rQybMOfjBbzXTT08SYU-wsE
I want a computer assisted GUI tool for doing text analysis of large corpuses via NLP. The closest thing I've seen for this Unbird.com but it's not quite good enough to be useful.
The best clients are those who have had a bad experience in the past. If you get burned by a lowballing incompetent freelancer, you will be much more willing to shell out for quality.
I ran this script several times to allocate my time for the upcoming week: https://github.com/JesseAldridge/weighted_choice_tree Seeing every upcoming hour laid out starkly before you is a great way to force yourself to grapple with the finite nature of reality and make necessary tradeoffs.