Ask HN: How do I get into consulting / freelancing?
I quit my software engineering job about 4 months ago, went to travel, and building my side project into a business.
However, things don't work as fast as I expected. My least preferred option is going back to being an employee, therefor I'm considering switching to freelance or consulting. I believe that I have a very vast experience, and can be of good use.
I, however, have no idea how to get into becoming a freelancer/consultant. I don't want to complete with people on Upwork, and similar, and I tried to reach out to my old connections.
Are there any other tips, or recommendations that you can share? Thanks in advance!
35 comments
[ 3.9 ms ] story [ 188 ms ] threadI don’t have much advice to give though. It’s hard to get started and even when you do find a client it can take months before the paper work has been sorted if the client is a large (and slow) corporation.
Now I am making money again though after living on savings for almost a year, and I have a much better (more flexible) deal than when I was an employee there.
If you are on Upwork or some similar site, you are in a brutal Hunger Games deathmatch with many, many highly experienced people around the world, all racing to the bottom to be commodity service providers at the lowest possible cost. Avoid that if at all possible.
Devote specific time towards keeping your old connections alive, revitalize that network periodically in accordance with your local business customs and norms (the exact things you have to do to do this vary significantly by region.) That network is highly valuable to you as a consultant. That is the one place in the world where you are not merely a commodity.
Take time too to expand your network: attend conferences and technical meetups. Participate in them as a presenter as much as you can. Ask people in your network for introductions to others.
You will find the networking aspect takes up a tremendous amount of time if done properly. Many don't like this, which is fine; these people tend to go back to being an employee.
Finally, make sure you don't spend all of your income as you get it -- that is, save a significant amount of money to cover the low points in your sales cycle. Your income as a consultant is highly "lumpy," meaning you will receive a lot of money at some points, then no money at all for a long time. Make sure you've budgeted appropriately, and you have enough money in reserve to pay for the "no income" parts of the cycle.
Hope this helps.
I see "networking" a lot, but how exactly? Unfortunately, I am not in contact with any of my former colleagues of employers apart from being connected on LinkedIn. Starting conversations with them on LinkedIn would be awkward and weird. What else can you do?
It doesn't help that I'm a introvert, not really a social person. Probably contracting is just not for me.
It must be executed well in advance of actually needing a favor from the network. It is the opposite of a "transactional" interaction, such as buying something from a store.
You must make an effort to continue having a social relationship with people you meet (former employers and colleagues, etc.) from the moment you meet them. What exact activities must be done depends on your local culture.
It is very possible that contracting -- which absolutely requires maintaining a social network of business contacts -- is not for you. That's fine, everyone is different and some people for various reasons don't want to or cannot do the social networking part. In that case, you might be happier as a well-paid employee.
OTOH, if you want to learn to do the networking part, it is possible. There are courses, books, even clubs that teach this sort of thing and create opportunities to practice it. If you see it as an interesting challenge that is outside your comfort zone but doable, that might work. Don't do it as a chore because you feel you must, though; if it is forced or reluctant, it won't work well.
And if you do message, keep it short and to the point, only time I get really annoyed is when someone starts a conversation, asking about work and family then after several messages, they would bring up their real motivation. Usually, it is MLM related and when I say hard NO, they disappear again.
Something like "hey X, been a while, hope you are doing well. I am freelancing these days and looking for a new project. My main focus is tech a but can also do tech b and c. Please let me know if you have any leads. I would truly appreciate it."
And if you really want to build better relationship, you could say something like, "And we should grab coffee one day and catch up. I miss working with you."
It's where most potential clients are. You just need to undervalue your services a bit, bid low, get some good reviews. You do this for a month or two: over delivering, under charging.
Eventually, you get to a point where you have a very solid job history, and your profile stands out because of it.
At this point, you can charge a bit more.
Shameless plug: I made https://contractrates.fyi to help consultants/freelancers figure out how much too charge. It's like levels.fyi, but for freelancers. Also free - I tried monetizing it in the past and failed miserably. Now I just maintain it as a free resource.
There is also the route of Catalant, which is significantly more lucrative than say Upwork, but maybe has a little higher barrier to entry. I know several people though that make insane money on Catalant, because they are billing rates as if they are working for a big 4 consulting firm (~$800+ an hour). Expectations are higher though, and it's much less casual than Upwork. Clients overall are less annoying, in my experience, though.
Secondly, building a brand or online presence would go a long way. This is a slightly more challenging route, but it's also rewarding. For instance, if you have an open-source project, you could secure consulting projects based on your project. Blogging can also be beneficial.
Lastly, if you're just starting out, definitely start with UPWORK and gradually build your brand/online presence.
Upwork is of course terrible, but if you qualify as a US-based contractor, the rates are generally much higher on projects with the US-only filter.
Controversial take, but consider it: try to do some lower-paid gigs on Upwork. The key isn't the money you make, but jump-starting your momentum with positive reviews.
Post your information on the "Seeking Freelancer" monthly posts here on HN.
This is more long-tail, but setup your social media accounts and a blog/website. Make a concerted effort to post content in your specialities, and very importantly, don't discuss anything else.
https://typicalprogrammer.com/how-to-start-freelancing-and-g...
Free, no ads, popups, or other nonsense.
I have freelanced for over ten years.
You talk to them and usually sign the deal relatively quickly and easily without any competitors. Usually, for the type of client that reaches out to their network for a personal recommendation, that recommendation is 90% of the way to closing. These types of clients also are often less price sensitive.
You continue by selling.
And you sell even when there’s technical work coming to deadline.
Nothing matters more than selling.
Sales trumps technical ability.
It trumps quality.
It trumps your ego.
The alternatives to sales are Fivr, employment, and an empty belly.
Good luck.
I switched from engineering management to freelancing/consulting and back to working for The Man as a Solutions Engineer. Honestly, it's all the upsides of consulting (getting to talk to people, solving technical problems, getting results quickly for people) with none of the downsides (chasing people down for money, finding new customers).
As long as customers are happy, my boss is happy. My autonomy is through the roof. There's no sprint planning/story point stuff like many other "normal" engineer jobs. If you're on the pre-sales route, you get to hang around salespeople (which I enjoy) and have no pressure to meet a quota like salespeople do. If I run into a particularly challenging technical issue beyond me, I can rope in an engineer from the engineering team to help if it's a big enough deal.
I wish I would have known about this route sooner. Now there's no way I'd go back to a normal engineering role
1. Get REALLY specific around a skill and a VERTICAL. "TypeScript React Developer" is way too broad. I reworded my resume to be about WebRTC and video precisely and targeted a WebRTC SaaS company. The company I applied for wanted my previous company as a customer so it was a huge help. The job's all about being really great at something REALLY REALLY REALLY narrow in scope because, at the end of the day, you're helping customers understand just one set of APIs.
2. On the resume and cover letter (actually write a cover letter) focus on the people side. Stories about dealing with conflict, and shipping projects across the finish line, help a lot here. Remember, this is a customer-facing role, so the interview isn't coding-focused. They need someone who's friendly and professional and who can smile at a customer even if they're upset.
3. Nail the basics in the interview. Wear a dress shirt on the video call. Have your 5-minute "tell me about yourself" story rehearsed. Have answers for basic behavioral questions prepared. In my experience, I was usually given a paid or unpaid take-home test. Technical-wise, they were all much easier.
4. Focusing on a vertical is important because they'll want to hear stories about how you solved problems in that vertical. They could be technically "simple" problems. E.g. my present company loved that I ran an engineering team at a virtual events company because many of their customers were engineering managers at virtual events companies. I knew exactly how their customers felt because I had been in their shoes before.
If all of these sound "obvious," then you're in luck, you probably have the right personality for this gig. :-) The tricky part is finding the opportunity. Remember when you first graduated and had difficulty finding that first tech job? It's a similar feeling. Ideally, if you have a relationship with a vendor you've worked with in the past that's the best way in. Ask for referrals in your network. Send applications out. Do not expect any recruiters to reach out to you directly for a role like this.
When I did find the opportunity it took about three months to close the interview. So, don't be in a rush!
Yes, this ignores the hard part of "finding those clients".
I know people with expertise in improving website performance, for example, and the mindset shift here is not to think about response times but rather improvement in conversion rates, decrease in shopping cart abandonment rate, etc. Clients don't really care about caching or asset preloading but they really, really care about squeezing the extra dollar from their website visitors. Help them make that extra dollar and you get to keep some portion of it.
Once you establish this foundation, getting to the right clients is easier than if you put yourself out there advertising "will write Python code for $$$".
So for instance, I wouldn't necessarily attend technical conferences / meetups but perhaps conferences where, I don't know, ecommerce website operators discuss issues that are critical to them. Those are your potential clients who can be perceptive to the right pitch. I think that technical conferences are a better fit if you're looking for a job and selling your resume.
Having said all of this, when I started out as a freelance dev, I did use Upwork to get some experience and reviews that I could later repurpose as testimonials on my website.
There's nothing wrong with hands-on freelance coding to get started somehow. It can be hard to define what specific business outcomes I could deliver with technical skills/existing resume, so getting some real-world experience can help with refining that. Always be on a lookout for that answer: once you understand "why" your clients keep paying you (hint: not for the code itself), you can find your niche and improve your sales pitch.
Finally: yes, it's critical to get out there and connect with people! Be it on LinkedIn, email, forums, Discords: you won't get clients unless you talk to people. Talking to past connections could also be a good way to find contract opportunities esp. if you've kept in touch over the years. Being a solo dev/consultant is 80% people work and only 20% technical work.
PS There's another way: you can ignore all of the above and apply to contract jobs (1099) using recruiters to get to clients. That's very similar to employment (clients tend to treat you just like staff) but you can potentially get better rates. I've been doing this for years with "success" but frankly, it's only marginally better than employment plus you get no benefits like vacation days etc. Real, actual consulting/freelance work can be a lot more satisfying if you can make it work!
1. Build a portfolio of work. Showcase some projects you have completed to demonstrate your skills and experience. This will help clients see what you are capable of.
2. Identify your niche and specialize in a particular skill set or industry. This will make you seem like more of an expert and attract the right clients.
3. Create an online presence. Build a website, set up profiles on freelance platforms, and join relevant communities. This will make you easier for clients to find.
4. Market yourself. Reach out to potential clients, post on social media and online forums, and write blogs related to your area of expertise. Spread the word that you are available for hire.
5. Set up contracts and payment terms. Have a contract ready that outlines the scope of work, timelines, deliverables, and payment terms. Get an advance payment upfront if possible.
6. Deliver high-quality work. Exceed client expectations to gain positive reviews and referrals. Provide great customer service and communication.
7. Keep learning and improving. Stay up to date on the latest trends in your field. Invest in tools, courses and certifications to keep advancing your skills.
Hope this helps!