I've done freelance web development for a number of years now. In general, the best jobs have all come from inbound leads instead of outbound leads. Upwork and cold emailing and door to dooring can work but require a lot of effort and I don't find the clients to be as high quality as when they come to me.

I much prefer when clients come to me. For this to happen, you have to increase your "luck surface area" - the more you demonstrate competence and value in public, the more chances that clients will find you and reach out.

1. Participating in online communities like Hacker News. I once said in a comment "oh hey, I was a digital nomad for a couple of years and did part time Django work." To which someone replied, "Are you still doing part time Django work? I need someone." They have been my best customer for the past year. Also, make sure your HN profile has your freelancing information in it.

Post every month in the who's hiring freelancers thread. I've gotten a few gigs there.

See if your city has a city-wide slack channel. Chicago where I am has a very large one and hanging out there has exposed me to a number of opportunities.

2. Be helpful. Someone from my college once asked me how to freelance, so I took them out for coffee and spent three hours discussing the ins and outs. Three months later he emailed me saying "I decided not to but do you want this client I found?" That client ended up paying me around $12,000 in the end. People like reciprocating help.

If I see someone asking a question about freelancing, I usually try to give a good answer. Some people use Twitter and post little tips. Some people give talks at local meetups.

3. Bring up often that you freelance as it makes sense. Don't be obnoxious, but let people know what you do. Nobody can ask you to freelance for them if they don't know that you freelance. My longest and best client ever knew that he needed a developer, and went back to my university and asked "do you know any freelancers?" I was the only one the professors knew who had said they were going to freelance, so they referred me.

4. Work in public. I have a mailing list where I write about how to freelance. I recently got an email from a reader saying "hey, we like your emails. Want to work for us?" One of my current best clients.

One of my colleagues has found good work from an open source Django library he maintains. His client of over 7 years was using that library and reached out because of the link to my colleague's website in the Readme.

I once got a client from sitting in a coworking space. A guy I had talked to and told about my freelancing said, "hey I'm getting a full time job, want my client?" Client for 3 years.

5. Keep in touch with everyone. This is a little more labor intensive, but super powerful. Using a spreadsheet or a CRM, regularly send emails to people you've met. Try as much as possible to provide value when you do, whether just asking how they are, giving encouragement, showing them useful articles, or making them aware of opportunities you think they'd benefit from. Don't try to sell, just build relationships. If at some point you need work and don't have anyone, you'll have a large network of people who remember you and will be sympathetic.

---

So, is the answer to be a digital nomad, take college grads out for coffee, have an email list, tell your college department you freelance, go to a coworking space, and maintain an open source library?

Well, no. If you had asked me to tell you two years ago how I would get all of my current clients I would have never been able to predict the exact methods. But as I said, a high "luck surface area" is what makes this work. Doing some combination of the above can make you a pretty "lucky" person.

All of my current clients came to me, and they are all wonderful to work with, pay well, I never have to chase down invoices, and selling to them is way easier because they are already sold on hiring me from what they've seen me do before contacting me.