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...
For further actions, you may consider blocking this person and/or reporting abuse
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?
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.
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!
Perfectly said, @williams-oliver and welcome to dev.to!
Looking forward to read more from you and thanks for the comment!
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!
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!
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! 🚀
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 ...
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 👀
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 ...
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!
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.
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 🚀
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" ;-)
Keep up the good work. Love when these topics come to the forefront on Dev.
Thanks for the kind words @martinbaun! 🚀
Hello, I actually wanted to ask like suppose once we have created and given the software (or any product that we were working on) to the client and also received money from them. So basically our work is done here but you know if we create any software then it also need maintainance and database management etc. and this will be forever till that software exists. Now our work was to just deliver the product or the software the client asked for but if the client asks how to manage it further or asks us only to also manage it for long then what should we do in these both cases? Even if we just explain the client everything needs to be done in order to manage that software, the client still does not have a proper knowledge of it and maybe he/she will not be able to manage it properly and if they'll not manage it, the software will automatically start to throw any bugs or errors and they'll blame us for that. Now if the other option occurs that the client wants us to take care of that software further also for the long run but obviously we can't do that. So how can we handle such situations? How will that software and its database will be managed throughout its lifecycle? And what exactly should we tell the client to do in such situations? (Considering that there's only one person and not a team of many people who owns that business for which they asked us to make the software.)
Hey @srish! Really well written and good question! Let me give you an overview of my process in terms of maintenance and work after being done:
In terms of maintenance per se, if we promised we were going to deliver something in the engineering planning phase, we have to do it. So, bugs and unexpected behaviors are on our end -- I fix and don't charge anything for it.
Now, sometimes, our clients try to disguise small improvements as bugs -- and those are different things. I usually have a rule of thumb of not charging up to 3 small improvements -- just so we can have a great partnership and the client usually will remember that good faith. If the clients ask a BUNCH of improvements that adds up to some hours of work, than, I think you should charge additionally. After all, those things were not prototyped nor planned, so, adding them at a later stage will impact your costs.
That's my usual way of dealing with maintenance and new requests of features disguised as maintenance.
In terms of database usage and infrastructure, I usually try to eyeball the usage/consumption of services by talking to the client and seeing their expectations -- if they are searching for a freelance to create a platform that will have to deal with thousands of customers, you can't put infrastructure costs on your end, but, if you're dealing with a small project, that might be viable.
And lastly, in terms of how to talk with your clients, it's important to remember that they are non-technical people usually, so, try to abstract most of the complexity when talking to them, showing only the high-level overview and the costs each part requires. Here's a quick example:
Instead of saying "It's expected that your customers will use an average of 25 GBs of S3 Storage, and increase the overall CPU usage, so, we are going to need to scale your servers to other EC2 instance ..."
A better way to approach that would be: "Hey, it seems users are sending a lot of big files on our end and it might increase our costs by 20%. Would you prefer that we limit the file size or include that monthly cost (about 50 USD) into your package?"
That's my way of doing things! Feel free to ask more questions and hopefully I answered your topic as you intended hahaha
Thanks and see you around ;)
Thanks for the answers, Lucas.. :)
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.
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:
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:
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.
Here are other sites for inspiration i found useful
behance & figma community
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
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 ;)
Thanks for your detailed response, Lucas.
And clients that need custom code websites often tend to be the ones that pay top dollar, right?
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 ;)
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.
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.
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.
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! 🚀
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!
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!
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
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.
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.
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! 🚀
Oh wow you have done freelancing for 6+ years. Congrats! I have a lot of respect for freelancers because I understand the amount of work that goes into making websites, from planning requirements to designing to coding.
I would love to get your advice on the following questions
1) What's your high level process? More specifically, I am referring to the design & coding process.
2) Do you have a specific stack you use or does it vary based on the requirements? If it varies, what factors do you consider when deciding?
3) How long does it take you on average for a client? How many hours do you work a day? Often times I hear freelancers saying they work 4-5, I find it hard to believe as making custom websites take a lot of time.
4) What factors do you consider when deciding on the price?
Thank you!
Hey @chandra_pantachhetri! Great questions and thanks for the compliments haha
Now, let's go for the questions:
1) Generally, what I do in terms of design & coding goes in the lines of:
This is a great approach because all the refactors are generally done in the designing phase, meaning that you won't have to re-do something because the client changed his mind (since he also agreed with the prototype).
2) I don't have a specific stack, but I do have some choices that I'm more familiar with (and thus, are more frequently chosen). I think here, the whole point is to go with something you know that can solve the problem and you're also familiar (at least a little) with.
3) This varies a lot on the scope of the project, so it's kind of hard to measure. But, to be honest, I think I never did a project that was less than a month, for example. In terms of hours, I generally take something around 3~5 hours when working on freelancing (and yes, that takes a lot of time hahaha, but the point here is, if you keep your client in the process, he's not going to mind if it takes time -- the problem occurs when you keep him out of the process).
4) Infrastructure, complexity and hourly rate are the top 3 factor to take in consideration, I think.
You're welcome! Feel free to leave any other doubts ;)
Thank you for taking the time to reply :)
1) I more or less have the same process - Requirements -> Wireframe -> Design -> Code. Great minds think alike!
3) Oh wow, less than a month. That gives me a bit of relief because I was under the impression that clients expected everything to be done in 1-2 weeks. You make a great point about keeping your client in the process.
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.
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!
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.
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 🚀
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.
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
Awesome, great post @llxd !
Thanks a lot for the compliments, @ricardogesteves! Glad that you liked it! 🚀
👌
Seu post é maravilhoso, Lucas! Tou entrando na área de freelancer e seu texto e os comentários me deram uma noção interessante! Só notei que você era brasileiro depois de terminar de ler e ver seu nome haha! Parabéns pela escrita, és bem claro e assertivo.
Obrigado pelo texto!
Muito obrigado, @poesiabinaria! Pô, como sempre, extremamente feliz de ver outros brasileiros nessa plataforma hahaha, ainda tenho como projeto pessoal traduzir meus artigos todos pra pt-br algum dia (ou pelo menos um canal no YouTube, algo assim haha).
Feliz que o texto tenha te dado um norte e, caso eu possa te ajudar com algo, só falar :)
Valeu pelo comentário!
Thanks for this kind of write.
I would want you to keep it up with this kind of software engineering topics.
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!
Thank for sharing
You're welcome, @mohamed_karim_2dddebb42bd!
This article was really helpful.
Thank for the comment, @nishchaldev! Glad that the article helped you ;)
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!)
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 :/
Good article :)
Thanks a lot, @manjushsh! 🚀
Nice read...thanks for sharing.
You're more than welcome @cmu7228_hca! Thanks for the comment :D
good use of images
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 🚀
Nice article!
Thanks a lot @jottyjohn!
Good article , man
Thanks a lot, @victor_ajibua! Glad that it was useful for ya! :D
Well written article, highlighting important points for people starting freelancing.
Thanks for the comment @gauthamanr! Glad that you liked the article 🚀
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.
That's awesome to hear @sihar! Rooting for you on your freelance journey 🚀
hanks for sharing your insights on freelancing! Your tips about finding clients through networking and the importance of negotiation are super helpful.
You're totally welcome @muhammad_ali_a6ec52608465! Glad that you liked it ;)
Thanks for the content, i needed this 💕
You're totally welcome! Thanks for the comment ;)
So helpful ! Thanks !
You're totally welcome, @chlo_garrigue_df733b0138! Thanks for the comment 🚀
Thanks for a great article it's beneficial!
You're welcome @kalak_khadayat! Glad that it helped you!
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.
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!
is there any help for the project legalization and writing the contract? like a template/sample or bullet points that i must consider? i dont wanna make stupid mistakes or leave something important behind
Great Guide. I'm most proficient in python myself with a year of Java from one of my courses in college. I don't have any industry experience but I have been interested in doing free lance work as I've found great challenges engaging in the corporate life and, generally, having very different goals in regards to my job if you catch my meaning. Would you recommend someone like me giving freelance work a try if they were interested?
Hey Lucas, thanks for sharing such awesome tips and advices