For higher end market (north of $900 for 7 hours of work), 100% remote, no agencies/only direct, no fixed price projects, I apply the advice I outlined here:
I run a consulting/support business around Prometheus.
I've found that giving talks and weekly writing blog posts (https://www.robustperception.io/blog/) are great for acquiring customers. Beware though it's often at least 6-9 months before any of it directly bears fruit.
My big question, which I'm still struggling with, is how much to specialize.
I'm one of those guys who wants to do everything. After a few years of Java development in financial companies, I now work on real-time web UIs. I'm now eyeing distributed, soft real-time systems with Elixir, and a bit of applied machine learning.
If you look at my blog, you'll see stuff on Clojure, React, and a few other things. So far, the React stuff has helped me land a client.
My question: Is this counter-productive? Should one specialize? How does one adapt when the specialization wanes and a re-branding is required?
One trick is to separate your skills from how you market some of them.
You can remain pretty much (internally) a generalist and a tinkerer (as you are, and I am, too! but make sure not to spread yourself too thin), yet make sure to market /some/ special skills appropriately (and in very specialized/niche fashion).
You'll decide which areas to market based on how you feel the market can generate recurring revenue.
For instance, I'm a tinkerer, yet I have a couple of well-defined niches :
- in the past, "Rails maintenance work" (easy to find, and useful while my second child was still a baby)
I do consulting for a big company and am a bit like you.
Jump between Java, .NET and C++, backend and frontend (both native and web) depending on the project.
Also since I majored in systems programming, I tend to dabble in other languages.
On my personal experience and those on my circle of friends, some specialization is required to keep being marketable.
Switching among technology stacks inside the company is relativity easy, as it is only a matter of being available when the right project is looking for new devs.
Outside on the job market, agencies and HR departments tend to focus on the last couple of projects, so if they aren't the key technologies that are looking for, it is very hard to convince them that we also have knowledge in the specific area.
In any case, just the size of standard libraries for modern languages, make it almost impossible to know everything.
Let alone the third party tooling and most relevant libraries outside the standard.
https://www.wisecashhq.com/blog/how-to-have-clients-find-you....
EDIT: I've been freelancing since 2005, and 100% remote since 2010. Happy to answer questions!