Nathan Wailes - Blog - GitHub - LinkedIn - Patreon - Reddit - Stack Overflow - Twitter - YouTube
Upwork
Table of contents
- 1.1 Table of contents
- 1.2 Child pages
- 1.3 Related pages
- 2 To-dos
- 3 My thoughts
- 3.1 Things I like
- 3.2 Things I don't like
- 4 Tips
- 4.1 For freelancers
- 4.2 For clients
- 4.2.1 Job description
- 5 Journal
Child pages
Related pages
...
To-dos
Figure out the best place to put this page.
Look into how Upwork's time tracking works. Does it track by the second? it seems like you either get credit for a 10-minute block of work or you don't, and whether you get credit is dependent on whether a screenshot is taken(?).
My thoughts
Things I like
I love the sense of freedom I have: I'm not beholden to any particular person. If a client treats me badly, it's extremely easy for me to not work with them anymore.
I love the variety of assignments.
I love how easy it is to switch into new specialties by underbidding others to get a kind of 'unpaid internship'.
Things I don't like
It's annoying that Upwork makes you propose milestones before the client has fully specified what they need.
I'm not sure of a better way to handle it, though. Maybe allow the freelancer to modify the proposal after having chatted with the client? That might already be possible, I'd need to look into it.
Tips
For freelancers
Deciding what rate you should ask for
If you're already Top-Rated and have as much work as you can handle, you can put a higher-than-your-current-rate rate on your profile, and if you have clients reach out to you and offer you work at that rate, you can just swap out one of your existing customers for this new customer.
See how you match up with other Python devs:
https://www.upwork.com/ab/profiles/search/?nss=90&q=python&revenue=10000&rate=60&pt=independent&hrs=100&last=15&user_pref=2&page=17
My look at how my rate compares with 'the market'
There are 173 freelancers and 25 agencies that have stats similar to mine.
There are only 37 freelancers like me who have taken the Python test and scored in the top 30%. Of those only 1 charges between $10-30/hr, 7 charge between $30-60/hr, and 19 charge $60/hr and above, and only 5 have "Python" in their job title.
Freelancers and agencies that are similar to me have their hourly rates listed as follows:
Total: 198
$10 and below - 0
$10-30 - 15
$30-60 - 62
$60 & above - 121
Of the $60 & above group, it seems $65 is close to the average, with the standard deviation being maybe $15 (so rates tend to range from $50-80).
Getting notified about new jobs
After a lot of trial and error, here's the best method I've come across for how to be notified about new jobs:
Install Feed Notifier.
This is going to give you a desktop notification whenever new jobs are posted that match the filters you've chosen.
Inferior alternatives to Feed Notifier that I tried:
Feed Notifier doesn't display job post summaries as nicely as the Upwatcher Google Chrome extension, but that extension doesn't seem to work with the "My Feed" Upwork RSS feed, so when using that extension you have to settle for a single imprecise filter and you end up wasting time looking at a lot of job posts you're not interested in.
The Upwork Feed Notifier Chrome extension won't let me turn off the notification sound and won't let me quickly preview new job posts, so it's an inferior option to Feed Notifier.
Create one or more saved searches on Upwork.com.
Click the green "Search" button to be brought to the advanced search screen.
Set up the filters the way you want.
Click the "Save search" button.Â
Copy your "My Feed" RSS URL.Â
Use Google Feedburner to get a new RSS URL that will work properly with Feed Notifier.Â
Â
I got this idea from here after I got an error while trying to use the RSS URL Upwork gave me with Feed Notifier.
Add the URL that you got from Google Feedburner as a new feed in Feed Notifier.Â
Submitting proposals
Be aware that there are clients who will ask for help debugging code they're writing but (for some reason) don't know how to check the documentation for the libraries they're using, and/or don't know how to ask for help on Stack Overflow.
One guy I helped with a single line of code I found with a few minutes of searching Google.
Another guy asked for help with Pandas and I spent a ton of time trying things and writing up a non-Pandas solution, and then after he accepted my answer I asked for help on Stack Overflow and got a 1-liner working answer in about 5 minutes. So I should've just immediately asked on Stack Overflow once the client had given me a minimal example.
This kind of "be the middle-man for people who don't know better" was basically the entire basis of the business of Westlaw Court Express.
These clients probably also make good first clients for people just starting on Upwork.
If you're starting out and bidding low to build up positive reviews, don't waste your Connects on job postings that are asking for "Expert" developers.
Taking on Upwork clients who don't have a history is risky because they may give you an inappropriately-low score, which can mess up your job success rating, and force you to take low-paying jobs to get your job-success rating back up.
My standard (generic) proposal:
Hello,
I'd like to be considered for this position. You can learn a lot about me at my website (which has links to my various online accounts), and my resume has links to some videos in which I explain work I've done for past clients.
I'd also like to highlight some Stack Overflow answers I've written, which--as far as I can tell--are the best sources of information on these topics currently available online:
How do I implement social login with GitHub accounts? -Â https://shorturl.at/lvQUZWhy use OpenID Connect instead of plain OAuth2? -Â https://shorturl.at/brwD7
- Someone on Hacker News wrote this about my answer: "Wow, this is the first comprehensible documentation on OAuth (post 1.0, which I actually did understand) I've ever seen. If the author of the StackOverflow post is on here, please publish a book, I'll buy it." (Source: https://shorturl.at/cjpsK)How do I read NPM dependency-conflict errors? -Â https://shorturl.at/qR137
Nathan Wailes
www.nathanwailes.com2024 - Someone on Reddit said he'd had success having the first two lines focus on how to solve the user's problem rather than a generic introduction.
Cover letter
Start the cover letter with something a little formal like "Hello,"Â to signal that you mean business.
(As opposed to saying "Hey," or "Hi,")
After two line breaks say something that inspires confidence in the client, like "I can do this." or "I can do this quickly."
(As opposed to hedging yourself by saying something like, "I should be able to do this" or "I think I can do this").
Cover letters that have gotten me responses:
Hi <first name>,
I was invited to apply and I'd like to be considered. I bid on the low end because my schedule is currently free, but I'd appreciate a higher rate if your company can afford it, as I only bill for time actually worked rather than clocking in at 9am and clocking out at 5pm, so I generally end up with much fewer than 8 hours worked per day. You should be aware that some devs on Upwork will bid lower amounts and then fake activity to increase the number of hours they can bill for. You should also be aware that some devs will lie about their past experience, so I recommend discounting anything you're told that can't be verified.
Time tracker
Important: Be aware that if you don't provide descriptions of what you did in the "Work Diary", a client can refuse to pay and you will get nothing. So whenever you click the 'Start Tracking Time' button, immediately update the memo of what you're working on.
Upwork.com - Upwork’s Work Diary: What It Is and Why Use It
Email I got from Upwork when a client's payment didn't go through:
Anytime a client’s payment is not completed, Upwork will review the Work Diary and reverse any billed time that does not meet Upwork’s Hourly Protection criteria.
During our review we found that some or all of the hours billed did not meet the criteria due to insufficient or no memos recorded in your Work Diary.
We would like to use this as an opportunity to send you a courtesy notice of the policy instead of reversing payment back to your client. Please note that if there are other issues with your work diary you will receive a separate notification with the reversal reason listed.
Having detailed memos related to the work being performed ensures your client is aware of the tasks being completed and is also a requirement for Hourly Protection. Going forward, any hours not logged in accordance with the policy will be reversed.
When entering manual time via the Upwork desktop app, the app assumes the time zone that you have specified in your profile rather than your computer's time zone.
It seems Upwork only bills clients for full ten-minute chunks of work, which means that you could be losing about 5 minutes' worth of pay per day, on average, for each hourly job you have. Or maybe more if you have several blocks of work during the day and each is being rounded down to the nearest ten-minute chunk of time. I need to learn more about how this works.
Traits to aim for / things clients praise in reviews
Respond to the job post ASAP
answered the job post in a matter of minutes, which speaks very well of their availability
Communicate what you're doing / keep the client updated
he was very communicative. He was sending me drafts of the project and giving me daily updates.
Excellent communication too.
Get the task done ASAP
I was extremely impressed with his quick turnaround time.
Finished the job in under 30 minutes
He did miss the timeline we set forth by over 100%
developed a solution in a record time that speaks very well of his skills.
the project was completed within a reasonable timeframe.
Completed On time .
He went beyond all expectations to help me with a project when the deadline was tight.
I like the way Project had been completed in adherence to scheduled time.Really very helpful.Nathan is very cooperative and his timeliness for the work is fantastic. (...)Â Thanks a lot once again Nathan for the Quick Work.
Nathan did a great job with an extremely fast turnaround time
Job completed very quickly
Be patient with the client
He was very patient and collaborative
was super flexible and patient working through the process with me.
Starting an agency
Having an agency is the only way to have another freelancer submit proposals on your behalf without needing to give them access to your account (which would be risky and apparently also violates the Upwork TOS).Â
"The benefit of agency ownership that I think is rarely talked about is being able to hire a VA to submit bids on your behalf without violating the TOS. Even a small agency (yes, even solo ones like you) can benefit from this since ROI is potentially so high. I did this in the AI/data science area and it works very well so long as you have a high quality profile to submit. It’s a numbers game at the end of the day." (source)
As of the time I'm writing this, you have to pay $20/mo to have an agency. There's a "free" tier but you can't do anything with it (you can't add team members and you can't submit proposals).
For clients
Job description
If you don't give enough detail about the scope of the project, you may very well have freelancers refrain from submitting a proposal because they don't want to spend their Connects to submit a proposal only to find out that you are expecting far too much work for the rate you're willing to pay.
Real example: Someone posted that they wanted a freelancer to create "Python multiple-choice questions", and that they were willing to pay "$100". I (as a freelancer) only had four connects remaining for the month, and so I said to myself, "I don't want to spend two of my last connects only to find out this guy wants 100 or 200 in-depth questions." Note that as of July 2019 Connects aren't limited per month anymore, but if a job requires 4 Connects to apply, freelancers may still not apply if they don't want to risk the $0.60 (4 times $0.15 per Connect).
Journal
Â
Â
Â
Â