June 12, 2025

Beginner

First Steps as a Freelancer: Challenges, Tips, and Discoveries.

Starting your journey as a freelancer is like setting off on an adventure full of uncertainties, but also brimming with possibilities. At first, everything feels new and challenging: finding your first clients, setting fair prices, organizing your routine, and learning how to sell yourself in the market. The freedom of working for yourself comes hand in hand with a lot of responsibility, and it's precisely in that balance that the learning lies.

In this article, I share my perspective and the lessons I learned at the start of this path.

How do you land your first clients?

In the beginning, plenty of questions come up, especially about how to get your first projects. In my case, I started by offering help to people close to me. A friend who was graduating in psychology agreed to build a simple website with me to promote her work. I did it for free, as a way to practice and also to build my portfolio.

A good tip is to talk to friends in other professions and suggest a simple landing page. Even if it's nothing very complex, it's already enough to showcase your work. If you still don't have any clients, create projects focused on a specific niche. This helps show off your style and lends you more credibility.

The role of networking in the freelance gigs I landed

Networking is essential for landing freelance work and, really, for many other areas of professional life. Since I was 13, a large part of my work opportunities have come through connections. With freelance work, it was no different.

In December, while chatting in a WhatsApp group for developers, I mentioned a landing page I had built for my psychologist friend and noted that I was starting to pick up freelance gigs. Shortly after, one of the members messaged me privately offering a frontend gig, and I accepted on the spot.

Ever since then, whenever something comes up in the field, he reaches out to me. This shows how networking can open doors and make all the difference in your career.

Advice for those who want to start freelancing

If you're just starting out in programming, look for your first freelance gigs among people close to you, like friends or family; it's a safer environment to build confidence.

For those who already have experience working as a developer, the tip is to start with simple projects, like a landing page, and gradually grow from there. If possible, work alongside someone more experienced. This helps you feel more secure, learn hands-on, and build your network right from the start.

More than just developing, it's important to know how to communicate the value of what you do. The client needs to understand the benefits, such as how a landing page can attract more patients, for example.

Another important point is understanding the client's real needs and what they actually require.

Tips for putting together a freelance contract

Drafting a contract isn't easy, especially if you're just starting out as a freelancer. However, it's essential for ensuring security in your work.

To put together my first contracts, I counted on the help of a lawyer friend to review them, and I can tell you that it made all the difference.

If you don't know where to start, seek the support of someone in the legal field to review the document and, if possible, have it notarized.

In addition, it's important to understand the profile of the client you'll be working with. Right from the first conversation, you can get a sense of the kind of relationship that might develop. Always document whatever is agreed upon, whether by email or another written form. This avoids misunderstandings and protects both sides.

How I handle the client process: briefing, delivery, and more

In the freelance world, I know some people follow a process for setting up a project with the client, ranging from the briefing and the contract to setting a delivery deadline. However, I don't yet follow a fixed process.

Generally, everything starts with an informal conversation with the client. I listen, try to understand their needs, and figure out what they really expect from the project.

From there, I adjust the proposal, and if everything checks out, we move forward with the work. Little by little, I've come to realize the importance of creating a more structured process, with a clearly defined briefing, contract, and delivery stages. This helps keep things more organized and conveys greater professionalism.

How I organize my day-to-day as a freelancer

I don't usually use specific tools to stay organized, but I always take notes and keep an eye on delivery deadlines. Delivering on time and with quality is essential for building a good reputation as a freelancer.

What do I wish I had learned before starting as a freelancer?

I wish I had learned backend before I started working as a freelancer. I've already missed out on some opportunities because I didn't have a command of that side, especially on projects that required a more complete delivery. Today I'm studying to become full stack and broaden my chances of landing more complete and challenging gigs.

How did freelancing help me grow as a developer?

Being a freelancer has helped me grow a lot as a developer. You're constantly challenged to deal with situations outside your comfort zone and to learn things you don't yet have a handle on. Unlike studying, freelancing puts you face to face with real problems, with deadlines and client demands, something you only truly understand once you start working.

For example, on one of my first projects, I needed to create a form with multiple file uploads. It seemed simple at first, but in practice, several difficulties came up that I had never faced while studying.

Explaining this lesson a bit better:

On one of the projects, I needed to create a form with a select to choose the file type and a file input to handle the upload. There was also a button to add new fields with the same structure.

The problem arose when we added a second field: when changing the value of the first select, the second one would also change automatically. They were sharing the same state.

After a lot of trying to solve it, the solution was to create a fully custom Select component, with isolated state control for each instance. Only then were we able to get it working correctly.

💡 Note: These day-to-day challenges made me grow much faster.

Conclusion

Working as a freelancer has been a journey full of lessons, challenges, and discoveries. Every project has made me grow, both technically and in the way I deal with clients and position myself in the market. I'm still building my path, learning from every experience, but one thing is certain: with dedication, curiosity, and good connections, it's possible to grow a great deal in this field. And most importantly: start simple, but start.

Post Author

Alves Jhonata

Alves Jhonata

Com mais de uma década na área de tecnologia, transformei minha paixão por inovação em soluções tangíveis. Como especialista em Front-end e RPA, crio interfaces intuitivas e automatizo processos complexos, otimizando operações e elevando a experiência do usuário.