I was so close to getting my first job on Upwork. I was going to post a very happy congratulations update to myself last Friday. Instead, I lost the deal.
This week, let's break down what happened.
Right up my alley. It's using the technologies I'm great at, finishing a small product (MVP), and is the length I'm looking for. I submit my proposal. It consists of a cover letter (I use a common template and then add in some flair for the job) and links to my socials.
To my excitement and surprise, I get a request to interview. Getting the interview is a big step because I have no reviews on Upwork yet, so it looks like I'm no one. I have no social proof. Getting the interview was awesome.
I talk to the client, and we have a great conversation. I feel really good. They are non-technical and need to finish an MVP that is small in scope. They've been jerked around a lot, and I know I can make this awesome for them. I talk about my technical experience and startup experience. I'm a great fit.
They will interview some more people, but they feel "really good" about the conversation. I'm stoked. They give me code access to assess the amount of work and show me the product. I write up detailed milestones for how I will get the MVP out the door. They say their total budget was about $40k and they've spent less than half of that.
My proposal: $8000, 3-4 weeks.
It seems fair for both of us.
They come back a few days later and ask some follow-up detail questions on a Zoom call. Some more specifics come out, and we talk through some of the requirements. Small things like moving the site to its own subdomain, fixing some of the UX bugs, and adding Stripe payments. None of it is a problem; I've done it all before.
Then she asks if I have machine learning experience.
This is where I think I fucked up.
I do have some ML experience (I took a class a few years ago), and I tell her as such. I ask what she has in mind. She talks about some very rough idea for a recommendation engine for her app. I inform her that true in-house machine learning takes 1, a ton of data that she won't have. And 2, will be very expensive. I say there are probably alternatives we can look at to get this feature in the app.
We end the call, and she seems very happy.
I update the milestones in a Google doc. She adds a few follow-up comments, and I update it again. It all looks great. I also lower the cost based on the new milestones.
Total cost: $7,000
I didn't get the job.
So where did I go wrong?
For me, the machine learning question was a small thing. For the client, it was the sticking point. I should have asked more questions about what exactly they were trying to accomplish. I guarantee, 100%, whoever won this contract is not doing ML. No fucking way. You can't do machine learning with an MVP product that has no users and no data.
But that doesn't matter to the client. The client wants some magic to their product, and I tried to describe that machine learning was not the way to get there.
I confused an engineering conversation with a sales call.
Next time I need to ask many more clarifying questions about what the goal of the feature is. What truly needs to be done? Because it won't be done with ML, that's for sure. But once I know what the client wants, I can implement it in another way. Something much easier for me, but is still magic.
But sure, I know ML. Let me make you a prototype of what you're looking for in 30 minutes and show you so you know I can do it.
Sales first. Then have the hard engineering conversation later.
That's all for this week. If you have any other thoughts on getting freelance jobs, let me know!