DEV Community

Cover image for Beginner’s Guide to Freelancing

Beginner’s Guide to Freelancing

Lucas Lima do Nascimento on September 10, 2024

1. Introduction Hello there! If you’re reading this, I assume that: you’re beginning to freelance (or want to) or you’re just looking...
Collapse
 
zeedu_dev profile image
Eduardo Zepeda

Hello, In your opinion, what's the best way to deal with third party costs, for example the hosting costs or storage (S3) with clients, do you charge a monthly fee and take care of it, or do you ask them to create an account and ask for the tokens?

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Hey @zeedu_dev! Thanks for the comment and really great questions!

Honestly, my take on this is that these will highly depend on the expected resource consumption of each project. If you receive a project that could take a lot of resources over the long run, I usually prefer to have them create the accounts, since that puts them in control of financial cases. That generally comes with the hassle of asking them for tokens, keys, and all the other things, so, I usually evaluate this really early in the planning stage.

If you're doing a small website, with low resource consumption and/or think the client doesn't have a lot of technical ability, charging a monthly fee or a straight-up one-time payment to cover these costs can work, but make sure to clearly outline the terms in your contract (e.g., what happens if the costs exceed the estimate, when and how you’ll review fees, etc.) -- to be fair, most of the freelance jobs I did to this day never crossed the expected threshold, but, you never know.

Collapse
 
williams-oliver profile image
Oliver Williams

I agree with @llxd that it depends on each project. You may want to also take into consideration another aspect - what are you actually selling to your client?

So far I've encountered the following scenarios:

(A) Being a technical expert advising client on solutions.
(B) Developing a one-off solution specific to that client they consider to be theirs.
(C) Developing a solution to a common business problem where client doesn't have a considerably sized budget.

I'm sure others will chime in with other scenarios, but this is just what I can remember from top of my head.

For cases A and B, I normally make sure that everything is in the client's name and control. This allows me to easily walk away when project is done and the client will not be in a position later on where they are held hostage to me and my availability regardless of the actual cost. That includes domain names, SSL certificates, copyright notices, cloud infrastructure, source control, etc. (Plus, domain names and SSL certificates not in your client's name may take away some of the site's credibility.)

For scenario C, sometimes it helps to evaluate whether or not what you're building can turn into some Software-as-a-Service (Saas), fully managed and hosted by you (or your self-owned one man corporation). The infrastructure cost can be spread across multiple future clients and/or you can just convince yourself that your out-of-pocket costs will just be part of your future company's success story. Don't be afraid to dream big!

Hope I at least stretched your imagination!

Thread Thread
 
llxd profile image
Lucas Lima do Nascimento

Perfectly said, @williams-oliver and welcome to dev.to!

Looking forward to read more from you and thanks for the comment!

Thread Thread
 
zeedu_dev profile image
Eduardo Zepeda

Holy crap! to be honest I wasn't expecting such detailed and well structured response, it was perfectly written and clear. Thank you so much, I really appreciate the time you took to write it and the knowledge that you're sharing with us here. I send you a huge hug from México!

Collapse
 
zeedu_dev profile image
Eduardo Zepeda

Hey Lucas, Thank you so much for sharing your perspective and your advice. It's super useful to learn from the different ways of handling things. Lots of takeaways in your reply. Hugs from México!

Thread Thread
 
llxd profile image
Lucas Lima do Nascimento

So nice to hear words from all those different places! Thanks a lot for the comments and feel free to leave any other questions you have! Hugs from Brazil! 🚀

Collapse
 
martinbaun profile image
Martin Baun

Keep up the good work. Love when these topics come to the forefront on Dev.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thanks for the kind words @martinbaun! 🚀

Collapse
 
leob profile image
leob • Edited

Good article ...

While I agree that Fiverr and the like are probably cr*p, I think there's still potential in more "serious" platforms like Upwork or (a lesser known one which I've come across) Gun.io (don't let the funny name fool you, it has nothing to do with weapons).

As always "it depends", and while I agree that finding customers "all by yourself" (not via a platform) is generally the best and nicest way, it might not always be feasible, or it might just take too much time (been there, done that) - these platforms were built for a reason ...

Collapse
 
yoadev profile image
Younes

The only time i tried Upwork. I took some time to answer throughly to the potential client and in the end, a couple hours later there was between 20 and 50 other applications so it is really demotivating. I don't feel like giving the time people deserve for nothing in the end.

Never heard about gun.io, will have a look who knows 👀

Collapse
 
leob profile image
leob • Edited

Yeah the number of applications on a given job is generally insane, I agree that that's really demotivating - I think that's ALSO a problem for the people who are hiring - who wants to wade through 50-plus applications? I think that's a problem which Upwork should look at - maybe they should cap the number of applications at 20 or 30 or something, I mean, 50 doesn't make sense ...

And those applications can't all be brilliant, on the contrary - I'm seeing a lot of run-of-the mill, low-quality, copy and paste stuff out there ... I think that's where you can make a difference when you're really good, or better than average - try to stand out from the crowd, by presenting yourself in a way that projects a bit more "quality" ... there are also tools which Upwork offers which you can use in order to make yourself "stand out".

What I do like about Upwork is that their platform is very mature and polished - their website and app are excellent, it's a joy to use.

But generally it just requires determination (and a modicum of luck) to "hit the jackpot".

P.S. Gun.io aims more at the high end of the market, and it's way less "massive" in terms of number of jobs and applicants - you might like it better ...

Thread Thread
 
llxd profile image
Lucas Lima do Nascimento

Awesome comment, @leob!

BTW, 100% agreed that there is a TON of copy and paste/generic problem solvers out there and it's a super valid space for good devs to make a difference! Nice one!

Thread Thread
 
leob profile image
leob

Thanks! Yes, copy/paste "heroes" and "cowboy coders" aplenty, but an area where I think you can really make a difference as a dev is communication - asking the right questions, getting to the bottom of the issues, solving the "right" problems ... that's always where I felt you can stand out from the crowd.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Hey @leob! Thanks a lot for that comment!

Personally, I've never heard of those two you mentioned -- to be fair, I lost most of my interest in those platforms after my bad experience with Fiverr, but, I'll be sure to put that on the list to give a check!

And totally agree, these platforms were built for a reason and you never know when you're going to need them hahah, so, I'll surely keep them on my radar! Thanks a lot for that resource 🚀

Collapse
 
leob profile image
leob • Edited

Thanks! ... well, Gun.io is a platform which probably virtually nobody has ever heard of (I'm exaggerating a bit ... but only a little bit), but Upwork is, well, it's like the "500 pound gorilla" in the "freelancing platforms space" :)

But ultimately they're just "tools", they're a means to an end - for me it worked, but that doesn't prove anything, I think there was also a huge amount of luck involved - "being in the right place at the right time" ;-)

Collapse
 
chideracode profile image
Chidera Humphrey

Nice read, Lucas

I like how you structured the article, including things that no one talks about: legal stuff.

But I have a question:

Is there demand for custom code websites? If yes, how do find the people that need them?

I ask because, a majority of the most successful freelancer web developers are WordPress or Shopify developers.

Thanks again.
Chidera

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Hey @chideracode! Glad to have you here and great question!

To be fair with you, there is going to be a hude demand for solutions in which WordPress and Shopify are going to fit for possible scenarios.

But, in the real life, your customer generally will want just that, a solution -- not a specific technology for that solution. So, if they want a blog, of course, you can use WordPress and solve that problem easily, but, you can also do some pretty cool designs on Figma, make that into React code and add Strapi as CMS -- they're both equally fitting solutions, with the added benefit that the later one is way more unique than the other.

So, yes, there's a lot of demand for custom stuff, and me personally, I've had a few clients that even demanded for me not to use WordPress because of X or Y problem they had in the past with that solution.

Glad to have you here and hope I adressed you question ;)

Collapse
 
chideracode profile image
Chidera Humphrey

Thanks for your detailed response, Lucas.

And clients that need custom code websites often tend to be the ones that pay top dollar, right?

Thread Thread
 
llxd profile image
Lucas Lima do Nascimento • Edited

You're welcome, @chideracode!

And although this is not always necessarily true, generally, when you offer a custom solution, clients are more willing to spend more! This is a great analogy on that too, if you'd like more on that.

Thanks a lot and see you around ;)

Collapse
 
odiiego profile image
Diego Paula

Que conteúdo maravilhoso! Parabéns!

Eu tenho muita vontade de começar no trabalho freelance mas sou extremamente inseguro com minhas habilidades. Vc tem mais dicas a respeito?
Talvez seja uma boa ideia pra um futuro post, a base técnica necessária para começar bem como freelancer. Adoraria ler sobre isso na sua escrita direto ao ponto bem voltada a prática.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Falaa Diego! Pô, super feliz de ver um brasileiro aqui e muitoo obrigado pelos elogios ;)

Te dando um overview do meu caso, freelance foi a minha primeira experiência com programação real, sem ser projeto de aprendizado e foi essencial pra minhas contratações no futuro.

Na minha visão aqui, o que me ajudou muito a perder parte dessa insegurança no início foi ter algum dev experiente pra me ajudar nas etapas do freela -- então, quando eu orçava, ela revia os valores e me questionava quanto à porque em alguns casos, mesma coisa pra código e outros aspectos.

Isso fez com que eu sempre tivesse a segurança de que, se eu explodisse tudo sem querer, essa dev ia conseguir tocar o freela e entregar, sem deixar o cliente na mão. Nunca aconteceu, entretanto, e no final do primeiro freela, eu descobri que já estava em um nível legal de desenvolvedor sem saber.

Então acho que é isso, se você está bem no começo da jornada, vale chamar algum dev mais experiente pra te ajudar e resolver em conjunto -- além disso, é um networking excelente.

Se você já não está no super começo e quer tentar se aventurar sozinho, manda bala! A grande característica dos desenvolvedores é resolver o problema e no final, seu cliente não vai ligar se seu código tiver gambiarras pra funcionar.

Collapse
 
odiiego profile image
Diego Paula

Cara, ontem indo trabalhar fui ao seu perfil achar mais coisa para ler e acabei no “Creating a personal brand: How to sell yourself as a developer” no primeiro parágrafo percebi que já tinha lido o texto na semana passada e até favoritado no Chrome, é que naquele momento não percebi que vc era brasileiro, curti mto como vc consegue imprimir sua personalidade mesmo em inglês.

Quanto aos freelas. Boto muita fé que consigo fazer uns projetos legais, mas tenho esse receio em dar o primeiro passo, estou cursando ADS na Fatec SP(estou tendo meu primeiro semestre de Engenharia de software e me identifiquei muito com esse tópico no texto kk), acredito que a exp dos freelas me destacaria para as vaguinhas de Jr. e ainda me garantiria uma renda extra.

Planejo ler seus posts novamente, e pesquisar mais a respeito. Vou estabelecer a meta de me preparar para isso até o final do semestre. Tenho em mente alguns projetos que posso executar como voluntário para ganhar confiança.

Continue com seu trabalho! Está ótimo! Muito obrigado pelo seu tempo.

Thread Thread
 
llxd profile image
Lucas Lima do Nascimento

Boa demais, mano! Super feliz que meus textos tenham te impactado positivamente e te inspirado num geral 🚀

Com certeza estabelecer metas pra isso parece ser um ótimo caminho! Espero que você adore o curso de Engenharia de Software hahaha, foi uma das disciplinas que mais me motivou a produzir software profissionalmente -- abraços ao professor Alexandre Cardoso, por isso🫂

E sobre os freelas, com certeza vão te dar uma experiência bem valiosa pra vagas! Tem uma diferença enorme entre falar pra um recrutador que você já fez algum curso XYZ sobre desenvolvimento vs. criar uma solução pra um cliente real. O segundo realmente traz um peso muito maior ao teu conhecimento e é super visto com bons olhos!

Valeu demais pelos elogios e vamos nessa! 🚀

Collapse
 
lynnfredricks profile image
Lynn Fredricks

Good top level advice. It is handy to have a standard, very short agreement template with a separate exhibit for client specifics. For each section of the template, have a separate, canned, simple explanation as to why it is necessary AND how it protects the client. Being able to say “hey, this is me looking out for you” gives a very good impression.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thanks a lot for the comment, @lynnfredricks!

And as I mentioned, couldn't agree more, transmitting that confidence and security feeling really sells the impression that you're an expert, awesome tip!

Collapse
 
yosh_tandiary_4a80cac52c7 profile image
Yosh Tandiary

Hi @llxd , thanks for the comprehensive article. Can you share your insight on how to manage project budget ? Since this sometimes take times like 3 to 6 months, how you put into legal when can you received your payments?

Second, if you have to include some additional manpower, say you need 1 Frontend developer to help as well, how you calculate the budget?

Thanks

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Hey @yosh_tandiary_4a80cac52c7! Thanks for the comment and excellent questions!

So, for the first part, I've usually did 50/50 -- 50% of the value is paid upfront, to cover initial development costs and to guarantee that, if the person doesn't pay you the rest and everything goes wrong, you received at least 50% of the agreed value. The other 50%, is paid at the end, when the solution is delivered. This can be sometimes a little agressive for really big budget freelances, since 50% of a lot is a lot, but, you can break down the percentages in more payments to help on that as needed.

For the second part, it's important that you plan features and time estimations together. The usual way I do that is: I estimate the time needed for each task and then I send the spreadsheet of estimations to the other developer, who is going to fill out their part of the work in terms of time.

After you receive it back, give it a quick look to see if the person did not overestimate or underestimated something (they can do that as well), sum the time, put your hourly rate in, and you're good to go.

For dividing stuff up, I've usually did 50/50 too, since the values of front-end and back-end stuff generally turn out to be close. But, in case that doesn't happen, you can pay accordingly to the percentage of the total value and that's perfect as well.

Collapse
 
clink50 profile image
Clink50

Hello! Thanks for the great article! I’ve always wanted to do freelance work where I would write a custom solution, but where I get discouraged and eventually stop is the design. I can look at a Figma design and code that solution no problem, but I can’t design a website from nothing because I just don’t have that design-oriented mind. Do you have any advice on how to get over this? I imagine lots of customers will come to you with no idea of what the end solution will look like and are looking at you for creating something that looks really good.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Hey @clink50! Thanks for the comment!

And yes, a lot of customers are going to come to you with 0 design related stuff. For me, that's not such a big of a problem because I do have a degree in graphic design, but I can try to give a quick summary (and maybe even a future more in-depth article) about the process I go through.

When I was designing my first few solutions, two problems were the most impactful and recurrent:

  • I didn't had inspiration to create the design, so, I wasn't able to start, just staring at the blank Figma
  • Sometimes, I didn't know how to do certain thing to accomplish the desired result

So, the thing I'm going to say from now on, are my personal takes on how you can solve those two impactful problems. If they're not the cause feel free to elucidate more!

For the first one, lack of inspiration for me is usually solved by a few things:

  1. Creating a moodboard and drawing inspiration from other similar resources, I generally search on Dribbble.
  2. If the client doesn't even have a brand, that's 100% design, so, if you're not comfortable with that, maybe it's time to reach for someone to do that part
  3. If the client has a brand, start with the low fidelity prototype, so, create the general idea and pages to make all the features that you thought early on the planning phase a reality
  4. After doing the low fidelity prototype, go through it with the client, putting comments on what should be fixed
  5. From the low fidelity, create the high fidelity prototype. Use the same brand guideline as the brand itself and follow the 60-30-10 rule (60% primary color, 30% secondary, 10% highlight) that you're going to be fine.

For the second one, you can use the way to learn things you have acquired with programming to learn other stuff too! So go YouTube, forums, etc -- you know how to search for things, that's our specialty. If you don't have a structured guide on that, feel free to check this article I wrote about self-learning.

Collapse
 
bmetsmith profile image
Brooke Metoxen-Smith

Thriving Technologist YouTuber suggested The Scrum Guidebook before one of my first freelancing projects and it helped tremendously. Organizing your self and the skills you use in a log to leave with the company was another thing I did as a professional courtesy. Really stand by your guns and be secure in the role as independent. I recommend keeping the freelancing roles hush to remain independent as a developer for as far as possible. Obviously citing ethics standard rule to enjoy!
I enjoyed your post, informative and concise!
Thank you!

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Awesome comment, @bmetsmith!

That part you mentioned to leave a log of the skills and tech used really resonated with me and it's surely an awesome practice! I usually do that as well, but forgot to mention.

And great reference there too, Scrum Guidebook seems like a great read, although, I haven't read that myself.

Thanks for the comment and see you around!

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

Awesome read, Lucas 👏
I can see that you've put in a lot of effort. I never thought you would mention the client did not pay snippet lol. Websites like Upwork are very saturated in my opinion, because there are just too many people. The best way might be to build or showcase in public and someone might end up getting clients.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thanks a lot, @anmolbaranwal! That snippet always has me laughing, so, I couldn't leave it behind hahahaha.

And awesome tip too! Building in public can certainly be a way to showcase things and attract clients! Nice one! 🚀

Collapse
 
sai_velagala_a23caf8c4e profile image
SAI 1 VELAGALA

Thank you so much for the article.
I tried my luck at my first gig at UpWork, and waited for months, but still did not received any projects. I am unsure where I went wrong.

But after reading your article, it gave me an inspiration to try it again.

Hopefully, in future, when I look back at this comment, I would be already doing freelance gigs.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Hey @sai_velagala_a23caf8c4e! Thanks a lot for the comment!

Glad to hear that you got inspired from my article, try it again and learn even more this time!
Keep pushing it 🚀

Collapse
 
ricardogesteves profile image
Ricardo Esteves

Awesome, great post @llxd !

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thanks a lot for the compliments, @ricardogesteves! Glad that you liked it! 🚀

Collapse
 
ricardogesteves profile image
Ricardo Esteves

👌

Collapse
 
nobertobrown profile image
Norberth

Wow! Thank you for the amazing tips, gotta say that solution for handling clients that don't pay has enticed me😂. Been facing the same issue as you were when you were starting, relieved to find out it is universal. Thank you for the motivation, hope with your tips I would be able to secure clients.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

You're more than welcome, @nobertobrown and glad to have you here ;)

That solution for not paying customers has made me laugh a bunch of times already

Collapse
 
sagar_nunia_2cef473b80196 profile image
Sagar Nunia • Edited

Thanks for this kind of write.
I would want you to keep it up with this kind of software engineering topics.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thanks for the kind words @sagar_nunia_2cef473b80196!

I generally spend some time to make the article a more concise and fun read, so I'm glad that resonates with you!

Collapse
 
nishchaldev profile image
nishchal singh

This article was really helpful.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thank for the comment, @nishchaldev! Glad that the article helped you ;)

Collapse
 
cmu7228_hca profile image
Cuevas Marlon

Nice read...thanks for sharing.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

You're more than welcome @cmu7228_hca! Thanks for the comment :D

Collapse
 
jottyjohn profile image
Jotty John

Nice article!

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thanks a lot @jottyjohn!

Collapse
 
syedmuhammadaliraza profile image
Syed Muhammad Ali Raza

good use of images

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Hey @syedmuhammadaliraza!

Glad that you found that helpful, I generally spend a good amount of time searching for images/GIFs that help with what I'm trying to say without being super boring, so, glad that's paying off hahaha 🚀

Collapse
 
yoadev profile image
Younes • Edited

I really feel the same for platforms like Fiverr and Upwork. You are like in competition with hundreds of people even though you may be the more qualified for some missions.

(Love the use of GIFs!)

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Hey @yoadev, thanks a lot for the GIF compliment hahaha, I took some special time selecting those, glad that you liked it ;)

And totally agreed, it's a really unfair competition for newcomers too, not only there are hundreds of people but they all already have near 5 star positive rating, so, they are going to show earlier than you are in the sorting process, which is usually sad too :/

Collapse
 
manjushsh profile image
Manjush

Good article :)

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thanks a lot, @manjushsh! 🚀

Collapse
 
chlo_garrigue_df733b0138 profile image
Chloé Garrigue

So helpful ! Thanks !

Collapse
 
llxd profile image
Lucas Lima do Nascimento

You're totally welcome, @chlo_garrigue_df733b0138! Thanks for the comment 🚀

Collapse
 
gauthamanr profile image
Gauthaman R

Well written article, highlighting important points for people starting freelancing.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thanks for the comment @gauthamanr! Glad that you liked the article 🚀

Collapse
 
victor_ajibua profile image
Victor Ajibua

Good article , man

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Thanks a lot, @victor_ajibua! Glad that it was useful for ya! :D

Collapse
 
sihar profile image
Sihar Simbolon

Thanks for the article @llxd
Hope I can get more long term client as time go on.
I am a part time freelancer right now.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

That's awesome to hear @sihar! Rooting for you on your freelance journey 🚀

Collapse
 
nurhusien1970 profile image
Omar N Idris

I think your advice through friends in the profession assumes you either are a graduate. If you are like me coming to IT from Biology your networking style almost entirely unachievable. But you are right the job platforms do not work either. This makes me wonder if the American system really is corrupt. I lose trust in fairness of the system. If I keep trying enough I should come up to be successful.

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Hey @nurhusien1970! Thanks for your comment!

I understand that transitioning from a different field like Biology can make networking seem challenging. In my own experience, many of my early gigs didn’t come from graduation friends but from connections I made over time—friends of friends or family acquaintances who knew I was freelancing. The key was to make it known that I was available for work and to build connections gradually.

While I did eventually get some gigs from graduation friends, they mostly came after I had already established some initial work through these other connections. The important thing is to let people know you’re available and build your network step by step.

It’s true that getting started can be tough, especially in a new field. Networking might seem extra complicated, but it is more of a gradual process of building relationships and spreading the word about what you do.

As for job platforms, they can indeed be tough and sometimes feel unfair there were a few other mentions in this post comments, if you'd like to check others, though.

I appreciate your input and hope you find a path that works for you!