freelancing

Learn these algorithms fast to get into lucrative freelance networks

Exclusive freelance networks are an incredible way to gain consistent access to dozens of new lucrative clients.

But there’s a catch — they’re exclusive — it’s tough to get in.

It’s definitely worth it, but you’ll need to go through a grilling multi-stage process to be accepted into most of them.

Now coding quizzes are a core stage, and algorithm knowledge is crucial for you to go through.

Check these out and find out which areas you need to work on to maximize your chances of gaining entry.

The coding questions are an awesome way to test your algorithmic skills.

1. Advanced iteration

You need to know how to implement complex logic and output with while, do..while and for loops.

Common questions

How to:

  • Create shapes and structures with asterisks — like a right-angle triangle, or a pizza slice.
  • Print Fibonacci numbers until n
  • Print sum of numbers until n
JavaScript
function printFibonacci(n) { let a = 0, b = 1, temp; for (let i = 0; i < n; i++) { console.log(a); temp = a + b; a = b; b = temp; } } printFibonacci(10);

2. Arrays

Lists are everywhere in life and code.

If you want to have any chance at the algorithms you’ll meet, you need to know the in’s and out’s of inspecting and manipulating them.

Iteration, calculating sums, finding elements.

Common questions

  • Find the maximum value in an array.
  • Calculate the sum of all elements.
  • Rotate an array.
  • Find the second largest element.
  • Merge two sorted arrays.
JavaScript
function rotateArray(arr, k) { const n = arr.length; k = k % n; // in case k is greater than array length return arr.slice(-k).concat(arr.slice(0, n - k)); } // Example let arr = [1, 2, 3, 4, 5]; let k = 2; let rotatedArr = rotateArray(arr, k); console.log(rotatedArr); // Output: [4, 5, 1, 2, 3]

3. Linked Lists

Essential for lists needing efficient insertion.

Common questions

  • Re-order a linked group of words by their first element
  • Reverse a Linked List
  • Find the middle of a Linked List
  • Swap nodes in a Linked List
  • Find the starting point of a linked list

I was asked a variant of this in one of the live coding quizzes:

JavaScript
function reorderWords(pairs) { const map = Object.fromEntries(pairs); let start = pairs.find( ([from]) => !pairs.some(([, to]) => to === from) )[0]; let result = start; while (map[start]) { start = map[start]; result += start; } return result; } // Example input const pairs = [ ['G', 'A'], ['L', 'P'], ['R', 'T'], ['P', 'O'], ['O', 'R'], ['T', 'U'], ['A', 'L'], ['U', 'G'], ]; console.log(reorderWords(pairs)); // Output: 'PORTUGAL'

4. Time complexity

Time complexity evaluates how the runtime of an algorithm increases as the input size grows.

You’ll often be asked to analyze and optimize the time complexity of your solutions in coding interviews.

Common concepts

  • O(1): Constant time operations.
  • O(n): Linear time, where the runtime increases with input size.
  • O(n²): Quadratic time, often a sign that optimization is needed.

Learning how to analyze the time complexity of loops and recursive functions is key to writing efficient code.

5. Counting elements

Common questions

  • Count the number of distinct elements in an array.
  • Find how many capital letters are in a string
  • Find the majority element (appears more than half the time) in an array.
JavaScript
function findMajorityElement(arr) { let candidate = null; let count = 0; // First pass to find a candidate for (const num of arr) { if (count === 0) { candidate = num; } count += num === candidate ? 1 : -1; } // Optional second pass to confirm the candidate count = 0; for (const num of arr) { if (num === candidate) { count++; } } // Check if candidate is indeed the majority element if (count > arr.length / 2) { return candidate; } else { return null; // or throw an error if you want to indicate no majority element } } // Example usage: const arr = [3, 3, 4, 2, 4, 4, 2, 4, 4]; const majorityElement = findMajorityElement(arr); console.log(majorityElement); // Output: 4

Using data structures like hashmaps or dictionaries to count occurrences helps solve these problems efficiently.

6. Two-pointer method

A two-pointer technique used to solve problems involving subarrays, like finding subarrays with a given sum or maximum length.

Common questions

  • Find all subarrays with a given sum.
  • Determine the maximum subarray length that satisfies a condition.
JavaScript
function findSubarraysWithSum(arr, targetSum) { const result = []; let left = 0; // Left pointer let currentSum = 0; // Current sum of the window for (let right = 0; right < arr.length; right++) { currentSum += arr[right]; while (currentSum > targetSum && left <= right) { currentSum -= arr[left]; left++; } // If current sum equals targetSum, we found a subarray if (currentSum === targetSum) { result.push(arr.slice(left, right + 1)); } } return result; } // Example usage: const arr = [1, 2, 3, 7, 5]; const targetSum = 12; const subarrays = findSubarraysWithSum(arr, targetSum); console.log(subarrays); // Output: [[2, 3, 7], [7, 5]]

This technique is essential for optimizing sliding window problems.

7. Prefix sums

Prefix sums efficiently calculate the sum of elements in a subarray, enabling constant-time range queries after linear-time preprocessing.

Common questions

  • Find the sum of elements between two indices in an array.
  • Solve range sum queries efficiently.

Understanding this technique can drastically reduce the complexity of sum-based problems.

8. Sorting

Sorting is a fundamental algorithmic concept.

Bubble sort, quick sort, merge sort…

Common questions

  • Sort an array of integers.
  • Sort an array based on custom criteria.

Interviewers often expect you to recognize when sorting can simplify a problem and to implement common sorting algorithms.

9. Stacks

Stack of cards, stack of books, stack of plates…

It’s all about LIFO — Last In First out.

They’re there for problems needing backtracking or maintaining order.

Common questions

  • Evaluate expressions using stacks (e.g., reverse Polish notation).
  • Implement a stack with basic operations (push, pop, peek).

Understanding stack operations is key in solving problems like balancing parentheses or processing nested structures.

10. Leader at position

The leader in an array is an element that is greater than all elements to its right.

Identifying such elements efficiently is a common interview problem.

Common questions

  • Find all leader elements in an array.
  • Return the leader of a particular segment.

This concept help solve problems related to maximizing or minimizing values over a range.

Final thoughts

Mastering these concepts will go a long way towards acing the coding quizzes. Not just for freelance networks but for traditional job interviews.

Remember to practice not just solving problems but understanding the underlying principles behind each solution

5 overlooked ways to make $5000/m online as a programmer

Developers are turning code into cash on the internet every day.

Just look at Pieter Levels, a developer making over $300,000 per month from his laptop.

He’s just one of many who combined ingenuity and skill to create tremendous value through the internet.

If you’ve been coding for a while, you can also provide value with your knowledge in several ways.

1. SaaS: Build it once, sell it forever

This is how Pieter makes most of his money.

It’s the holy grail of online income.

Build it once and sell it forever. It’s as passive as it gets.

The hard part is, what are you building? What problem are you solving?

Ideas are not a dime a dozen. Good ideas are rare.

And how do you find good SAAS ideas?

Look into your life.

What are some problems you face regularly online or offline, and can software solve them?

Uber started because the founders found themselves stuck in Paris with no way to find a taxi.

React, Polymer JS, and many other dev tools came about because the existing alternatives just weren’t good enough.

2. Freelancing the right way

I love freelancing.

It’s packed with new and exciting opportunities with unlimited earning potential.

One minute you’re building a sleek landing page for a startup; the next, you’re diving into an AI project for a company on the other side of the world.

But please don’t make the same mistake I did.

I used to spend hours cold-emailing strangers and applying to random low-quality job listings.

I thought it was all a numbers game.

But it was a complete and utter waste of time.

I stopped cold applying and focused on building your network instead. Warm.

I meet new people from people already in my network on WhatsApp and my email contacts.

These people ended up either becoming clients or referring me to clients.

An even faster way was by joining exclusive freelance networks.

In the networks I’m in I get offered at least 3 new freelancing opportunities every single day.

I could have saved all the time and energy spent on the above — but less control and hard to find and get into legit ones.

3. Create “content”

Every line of code you write has a story behind it. Let’s hear it.

Let’s hear how — tools and techniques.

Let’s hear why — your motivations, thought processes, and breakthroughs.

Don’t just throw your knowledge out there; it’s about storytelling.

Share your discoveries, ideas, and opinions; share what you’re passionate about.

And content doesn’t only mean posting on social media or blogging.

“Content” also includes your portfolio — on GitHub and more.

So it also means creating significant projects in your niche and talking about them.

The point of all this is to broaden your reach.

You either end up earning directly on the platform (like YouTube), or you greatly boost your visibility and attract great opportunities.

4. Coaching: Teach what you know

Nothing beats interactive and personalized learning from another human.

Someone who’s been there done that. They’ve seen it all, they know all the tips and tricks and pitfalls.

If you’ve been coding for more than a few years, this is you. You are the one.

Turn your knowledge into an income stream by teaching others.

And it doesn’t even have to be online. Look into your life.

When I was in uni there were tons of my coursemates who needed someone to guide them on learning coding and the other CS topics.

That was a serious opportunity.

Especially as I was one of the few who had already been coding for quite some time.

5. Patreon and GitHub Sponsors: Rally a community

Donations? Lol

How can anyone make any real money from donations?!

Until you hear of how Caleb Porzio makes over $100K/year from nothing but those same donations🤯

That’s the magic of Patreon and GitHub Sponsors.

By offering exclusive perks—like priority issue responses, educational guides on the project, or early access to your latest builds—you can turn your most devoted fans into your sponsors.

You can even sell advertising space, just like Vuetify does:

It’s not just about code anymore—it’s about building a community around your work, a tribe that’s willing to keep you going.

Final thoughts

Making money online as a programmer is about turning your skills into something bigger than yourself.

Whether you’re a freelancer battling through client projects or a creator gathering an audience, the key is the same: know your value, share it, and let the internet do the rest.

How I get $1000+ freelance clients consistently as a software developer (5 ways that work)

Don’t make the same mistake I did.

I used to spend hours cold-emailing strangers and applying to random low-quality job listings.

I thought it was all a numbers game.

But it was a complete and utter waste of time.

The truth is there are only 5 major strategies that work — and they are NOT easy (sorry).

If you use them blindly like 95% of people do: you will fail.

Or you get flaky, low-quality clients — if you’re lucky.

1. Build your 1st party network the right way

Most ways of networking are just a waste of time for freelancing.

Either they don’t work or it’s not worth it.

I don’t follow the tired clichéd advice of attending network events and meetups.

You will achieve much faster results online.

2 major ways I use:

  • Internal network building

My primary strategy.

I meet new people from people already in my network on WhatsApp and my email contacts.

These people end up either becoming clients or referring me to clients.

But it won’t work when you don’t have any network in the first place.

In that case, you’ll do:

  • External network building

You deliberately search for new people on social platforms — LinkedIn and Twitter are the best.

But you won’t just add any random people — quality matters just as much as quantity.

They need to meet specific criteria:

Example: if you already have a client in mind, you’d search for people in their network — like employees of the company.

2. Join an exclusive freelance network

This was by far the easiest way for me.

Building your network from scratch gives you more control — but it takes a lot of time, effort, and planning.

This is much faster.

In the networks I’m in I get offered at least 3 new freelancing opportunities every single day.

I don’t accept them all but when I do — these are no-nonsense clients with serious budgets.

But the hard part was finding legit networks and getting entry — they’re called exclusive for a reason.

3. Use freelancing platforms properly

Upwork is dead!

No it’s not. If it’s dead then where is their $1,400,000,000 market cap coming from?

You’re using it wrong. Simple.

For a start:

  • Don’t be a generalist:

“Programmer” won’t get you far.

“Next.js web developer” is much better.

“Next.js web developer building AI chatbots” is powerful.

  • Don’t expect fast money

I can tell you for free — starting from scratch on any online platform is no easy feat.

But once you get past a certain point, all the initial focus and consistency will be worth it.

  • Don’t be intimidated by the competition

A job may have 50+ proposals but many of the applicants are just mass-buying connections and spamming with AI.

You’ll stand out greatly if you personalize your cover letter.

4. Create “content”

And by content I don’t only mean posting on social media or blogging.

“Content” also includes your portfolio — on GitHub and more.

It means creating significant projects in your niche and talking about them.

It means sharing your experience and teaching others what you know.

Your discoveries, ideas, opinions, and what you’re passionate about.

You will boost your visibility and improve your chances of attracting great opportunities.

5. Run targeted ads

I put this one last because it’s quite risky.

Without a well-defined strategy, you’ll end up wasting money and getting nothing out of it.

You’ll need to run extremely targeted ads on Google, LinkedIn, and Facebook — and constantly refine your approach to see any real results.

Follow one or more of these strategies with persistence and you’ll eventually find high-quality clients.

Key points

Recap: 5 major ways to find $1000+ freelance clients as a software developer:

  1. Build your 1st party network
  2. Join an exclusive freelance network
  3. Use freelancing platforms properly
  4. Create content and code
  5. Run paid ads

How to guarantee a coding job by writing the perfect cover letter

So who told you nobody reads cover letters?!

If you really believe that then prepare for a massive shock…

83% of hiring managers absolutely DO read cover letters.

And they’re not just skimming through — 60% of hiring managers spend at least 2 minutes reading your resume!

Cover letters are the unique selling point that gets you chosen over people with dangerously similar qualifications.

Learn the perfect to write them once and stand out in every job application. Every job platform: Upwork, Indeed, and so much more.

Blind mass applying leads to failure

Don’t behave like those irritating email spammers.

Sending the same old generic message to thousands of addresses hoping for 2 replies.

Your cover letter needs to be personalized to:

  • The job description
  • The company’s mission and values.

It shows you’re genuinely interested.

Make sure to include these gems

1. Attention-grabbing intro

If you mess up the intro everything that follows is automatically worthless.

Get straight to the point without using so much formal baggage.

Recommended: Quickly state your niche and intentions to “learn more” about the company 😉

Example:

I’m a passionate full-stack web developer with over 6 years of experience interested in learning more about the Coding Beauty team.

2. What have you achieved recently?

Solutions before features.

Recruiters care more about concrete real-world achievements than the dry technical details behind them.

Example — for the full-stack web developer role:

Over the past 3 years, I helped my company generate over $2 million in additional revenue by spearheading the development a new e-commerce web platform.

Wow, amazing achievement! Who is this guy?

Then leading up to your experience, you say:

And now I’m thrilled to continue my journey by contributing and growing with Coding Beauty. These are three things that make me a perfect fit for this position:

3. Experience

Alright, I’m now much more curious to see the skills & experience you gained to help you reach such majestic heights:

Firstly, at XYZ Corp, I spearheaded the migration from AngularJS to React, enhancing the user experience and improving performance by 30%. My focus was on creating reusable components, which streamlined the development process and fostered collaboration. I believe in writing clean, maintainable code and mentoring junior developers, which I did by conducting weekly code reviews and workshops.

Secondly, while at ABC Solutions, I led a project to integrate a Node.js backend with a MongoDB database, reducing data retrieval times by 50%. I am passionate about efficient architecture and robust security practices, which I implemented by designing a comprehensive API and setting up automated testing, ensuring a seamless and secure application.

Notice how they state something about themselves in relation to the experience they gained in both cases.

Making it unique to the individual — rather than some random generic rambling no one cares about.

4. Why this company?

Why do you want to work here?

Show how you resonate with the mission and values of the company:

Example:

Finally, I’m drawn to Coding Beauty’s mission because it aligns perfectly with my belief in empowering developers to reach their fullest potential. By fostering personal growth, promoting the enjoyment of coding, and facilitating avenues for financial success, Coding Beauty embodies values that resonate deeply with me.

5. Strong conclusion

Confident but not too brazen:

Example:

I’m sure my background aligns sufficiently with Coding Beauty and this role. I am enthusiastic about leveraging my expertise to contribute meaningfully to Coding Beauty’s objectives and look forward to hearing back.

Putting it together

I’m a passionate full-stack web developer with over 6 years of experience interested in learning more about the Coding Beauty team.

Over the past 3 years, I helped my company generate over $2 million in additional revenue by spearheading the development a new e-commerce web platform.

Firstly, at XYZ Corp, I spearheaded the migration from AngularJS to React, enhancing the user experience and improving performance by 30%. My focus was on creating reusable components, which streamlined the development process and fostered collaboration. I believe in writing clean, maintainable code and mentoring junior developers, which I did by conducting weekly code reviews and workshops.

Secondly, while at ABC Solutions, I led a project to integrate a Node.js backend with a MongoDB database, reducing data retrieval times by 50%. I am passionate about efficient architecture and robust security practices, which I implemented by designing a comprehensive API and setting up automated testing, ensuring a seamless and secure application.

Finally, I’m drawn to Coding Beauty’s mission because it aligns perfectly with my belief in empowering developers to reach their fullest potential. By fostering personal growth, promoting the enjoyment of coding, and facilitating avenues for financial success, Coding Beauty embodies values that resonate deeply with me.

I’m sure my background aligns sufficiently with Coding Beauty and this role. I am enthusiastic about leveraging my expertise to contribute meaningfully to Coding Beauty’s objectives and look forward to hearing back.

Thanks,

Coding Masters

Keep it short

Don’t write a book — everything we’ve gone should be done in 4 or 5 paragraphs.

No need to impress with fancy vocabulary or formal language.

Lean towards a conversational, semi-formal tone.

Follow these tips and tricks and you’ll drastically improve the quality of your cover letters for Upwork, Indeed or general job listings.

How to earn full or side income as a freelance developer in 2024

Don’t waste time cold applying to job listings.

Your success rate will be painfully low after all that time invested. There is a better way that many never use.

Many have used it to guarantee responses and interviews every single time. This is my #1 way to find clients.

I use LinkedIn as a case study, but the strategy applies to any place you interact with other people.

It’s all about referrals at its core.

Referrals drastically improve your chances of getting a job at any company.

But you need to do it right.

Follow this ultimate step-by-step guide to landing high-paying, flexible freelance + full-time jobs.

1. Plan: Know what you want

This is extremely important, especially for future jobs.

The broader your niche the more jobs for you — but there’s more competition.

Example: “Web developer”.

Smaller niche makes you the big fish in a small pond — less jobs but standing out takes far less time.

Example: “Next.js developer, implements social media integrations into web apps”. Super specific.

If you’re just starting without much experience, start small. Then you can slowly broaden your niche as you gain experience and social proof.

2. Find jobs in your niche the right way

Now start action.

Find jobs in your niche don’t apply directly.

What are the best places to find jobs?

Wellfound

I previously talked about the massive number of software jobs from rapidly growing startups on Wellfound.

It has over 49,000 jobs on there right now with not enough people to fill them — incredible opportunity.

LinkedIn Jobs

LinkedIn is full of the latest job listings from high-quality companies. Filter by your niche and add to your collection.

3. Create a unique LinkedIn profile

It’s the first thing anyone checking you out will see — make it incredible.

First impression matters everywhere and LinkedIn is no exception.

Great photo

Use a high-quality face photo with great lighting that shows confidence.

You can smile to appear friendly and approachable — not necessary though! Too fake for some.

Attention-grabbing bio

Forget about being quirky or cute here.

You mean business and the first piece of text describing you must show this.

What should you put in your bio?

1. Your niche

You know your ideal job type, now make it known to the world. Let people know you’re qualified.

2. Impressive achievement

Include a notable achievement to grab attention.

Example: 1,000+ stars on GitHub.

3. Open to work

Add “freelancer” if you’re specifically doing freelance.

Many won’t want to waste even a little energy to ask if you’re open to work; Let them be sure from the start.

Also use the #OpenToWork LinkedIn feature.

4. Start building your network with intent — like this

You’ve built up your LinkedIn profile beautifully, now it’s time to find valuable people.

Don’t just add any random person — focus on people who meet these criteria:

1. Connected to the target job

People who work at the companies of the job openings you found.

And people who know those people — 2nd-degree connections.

2. Something in common

  • Is their industry and niche similar to yours? More on this shortly.
  • Did they go to the same school as you?
  • Are you two from the same city? Or the same not-so-popular country?

We are tribal and more likely with people similar to us in an important way.

3. Creators

Target software developers like yourself. Then designers, writers, authors — creators in general. But prioritize people who code professionally.

Focus on quality AND quantity connections.

The more people in your network the more likely opportunities will come your way.

And you can add up to 30,000 connections!

5. Nurture your relationships

Adding people is NOT enough — You must patiently strengthen your connections with them.

And how do you do that?

Engage

If you don’t show up in people’s lives, they’ll forget about your existence.

Leave genuine thoughtful comments on their posts.

Like posts that resonate with you — but don’t just like every post or you’ll cheapen the value — like a chronic flatterer.

Send them personal messages offering value. Ask them for advice and make them feel valued and invested in you.

Create posts

Another great way to offer value and maintain the relationship.

Share what you know and what you’ve done. Don’t give us coding platitudes — everybody knows about <br /> tag. We all know about HTTP POST.

Try not to always share cold impersonal facts; sprinkle in your thoughts and opinions. Make jokes without causing painful cringe.

6. Ask for referrals

The best way to do this: Ask to meet them physically or virtually to learn more about the role or company.

Prepare engaging questions in advance to show genuine interest in the company — not just about getting a job.

If you’ve built a cordial relationship at this point, they’ll probably ask you if you want a referral — ✅.

If not, you can say something like, “This sounds like an amazing place to work! Would it be possible to get a referral if I applied?”.

You don’t even have to tie the referral to any specific role — you can ask them to keep you posted with job requests.

If they’re a great developer they’re probably high in demand and get more offers than they can handle. With a strong relationship, they’ll be more than happy to refer you.

People trust people they know. You’re far more likely to get the job with referrals than with cold job listings.

Final thoughts

Follow this strategy focus and intent, and you’ll start landing high-paying freelance jobs faster than you think with high certainty.