Communicating job requirements was not always difficult. I even enjoyed the process and the challenge. But, I learned there was no way to charge for the work I did both accurately and ethically. This resulted in constantly taking one for the team and doing a ton of extra free work. That extra work also made transitions between jobs require scheduling days or weeks of just in case time.
Checks arrived late about 9 out of times. 2 weeks late was the norm but up to 3 months late is what I learned to expect. There was apparently nothing I could do about this. I used a PO box to isolate issues with paper checks and communicated electronic payment info on all invoices.
I didn’t like the varying levels of quality demanded and the terms of negotiating them. I really like doing great work, but almost more importantly, I needed to do great work for my portfolio. I would make sacrifices for projects that would help me get more work. So, I would take the job with an agreement to do that, and later be told “we decided we just need something quick. spend as little time as possible” due surprise money/time constraints. This led to work of significantly quality lower than what was already in my portfolio, unless I did more extra free work to make it good.
What are the business problems you could solve for potential clients? Make a portfolio of those.
Also, they care more about the value of the solution to them than how many hours you spend doing it. If you spend an hour doing something that increases their revenue by $500k a year, they'd generally be quite happy handing over $20k for that hour's worth of work.
You may find some that are extremely fussy and try to negotiate unrealistically low prices that would have you working for long hours. Those people do not understand the value of your work, and aren't worth working for.
Focus on what results you can achieve rather than exactly how you will achieve them. When I want my pipe leak fixed, I don't care what tools or parts the plumber uses as long as it gets fixed.
1. Networking and selling myself as a freelancer. 2. Getting paid in a timely manner.
Any marketplace I've found is a race to the bottom in terms of quality and price.
That's the best part of it. Networking and sales done properly means giving away some value for free so potential clients consider it beneficial to work with you for additional value.
A successful freelancing career in the software industry can be built on personal expertise, effort and on gradually building up a personal network. Existing contacts certainly help but they're by no means necessary.