← Back to Blog
APR 22, 2026 · 4 MIN READ

Freelancing as a student: lessons from my first paid app

A picture of Thomas Béchu
Thomas Béchu
Article4 MIN READ

Freelancing as a student: lessons from my first paid app

APR 22, 2026

Thomas Béchu© 2026

During my second year of computer science, a local coffee shop owner asked me a question that changed everything: "Hey, I know you write code. Could you build a custom mobile loyalty app for my shop? I'll pay you."

My immediate reaction was a mixture of absolute excitement and pure panic. I had built small terminal games and simple web pages for class, but a production-grade mobile app with a backend? I didn't feel ready at all.

I said yes anyway.

That project was a trial by fire, but it taught me more about real-world software engineering, client management, and pricing than any lecture ever did. Here are the three biggest lessons I learned.


Lesson 1: Scope is a Conversation, Not a Contract

When we started, the client gave me a list of requirements. They wanted a loyalty card, an in-app map, a pre-ordering system, a push notification dashboard, and automated birthday coupons.

If I had agreed to build all of that immediately, I would have failed. I was a full-time student with exams, and that scope was easily a three-month project for a professional team.

I learned that scope is flexible if you communicate. Instead of saying "No, that's too hard," I proposed a phased approach:

  • Phase 1 (The MVP): A simple app where the barista scans a customer's custom QR code to add a stamp, and 10 stamps unlocks a free coffee.
  • Phase 2: Adding the shop map and pre-ordering once Phase 1 was stable.

The client was thrilled because they got a working app much faster, and I avoided burning out before finals.


Lesson 2: Avoid the Hourly Rate Trap

As a student, it's easy to think: "Well, minimum wage is $15/hr, so if I charge $25/hr I'll be rich!"

This is a massive trap for two reasons:

  1. You get punished for being fast: If you write a feature in 2 hours instead of 10 because you used a library, you make less money.
  2. It creates friction: Clients will micro-manage your hours and ask why a certain button took 5 hours to align.

Instead, transition to value-based project pricing. I estimated the project would take about 40 hours. Instead of proposing "$30/hr for 40 hours = $1,200," I priced the project at a flat $1,500 for the completed app.

This shifted the focus from "how long Thomas was working" to "getting a high-quality loyalty app." It made the relationship much healthier.


Lesson 3: Surviving Exams and Deadlines

Balancing client expectations with university coursework is incredibly tough. There will be weeks where you have three exams and a project due, and the client's server suddenly goes down.

Here is how I survived:

  • Under-promise, Over-deliver: If I knew a bug fix would take 1 hour, I told the client: "I'm in lectures today, so I'll have this fixed for you by tomorrow at noon." When I fixed it by 6 PM that evening, they were ecstatic.
  • Use Stable Tools: Don't use experimental libraries on a client project. Use mature, well-documented frameworks (like Flutter and Firebase) so you can search StackOverflow for help when you're stuck at 2 AM.
  • Schedule "Focus Blocks": Block out specific evenings for client work and keep your weekends for studying (or vice-versa). Trying to do both at the same time is a recipe for errors in both your code and your exams.

Taking on that first paid app was terrifying, but the confidence boost of seeing real customers scan my app at the register was unmatched. If an opportunity comes your way, don't wait until you feel "perfectly ready." Say yes, and figure it out along the way. ☕