π§ In the meantime
Building two projects at once: working in a team and building a SaaS from scratch.

At this stage of my learning I am working on two projects that are quite different from each other, but that complement each other a lot in everything I am learning.
One is a group project for a construction company and the other is a much more ambitious personal project: an online course SaaS that I am building on my own.
Working on both at the same time is letting me see two very different realities of development: collaborating with other developers, and building a complete system by myself.
π·ββοΈ Group project: management system for a construction company
On the group project we are developing an internal management system for a construction company.
The idea is to build a web application that makes it possible to manage different aspects of the daily work of the site workers and the admin team.
The system has different user roles:
- π¨βπΌ Administrator
- π· Site worker
Each one has different permissions and features within the application.
The main features include:
- π site management
- π· worker management
- π internal notifications
- πΈ uploading photos from site
- π§ different panels depending on the userβs role
π§° Technologies in the project
- Frontend: Angular
- Backend: Python + FastAPI
- Database: SQL
- Deploy: Railway
In my case I am working especially on:
- π¨ developing the frontend in Angular
- π preparing the integration with the backend
- π§ designing some of the application flows
Something interesting about this project is that we are starting by developing the frontend without connecting the whole backend yet, which lets us move faster on the structure of the application.
This is teaching me several important things:
- ποΈ thinking about the architecture of an application
- π§© separating responsibilities between frontend and backend
- π working with roles and permissions
- π₯ designing interfaces built for real users
I am also learning something fundamental: working in a team. When you develop with other people you have to communicate decisions, organise tasks and think about how the parts each person builds fit together.
π Personal project: building an online course SaaS
In parallel I am developing a much bigger personal project: an online course SaaS.
The idea is to build a platform where instructors can create courses and students can consume them, with a complete system for authentication, course management and content.
π§° Project stack
- Frontend: Angular
- Backend: FastAPI
- Database: PostgreSQL on Supabase
- UI: PrimeNG
Here I am working on absolutely every part of the system:
- ποΈ database design
- βοΈ backend architecture
- π authentication with JWT
- π API endpoints
- π§± frontend structure
- π§© components and services
- π connection between frontend and backend
Building something like this forces you to understand how the whole system works end to end.
And of course⦠a lot of errors show up along the way.
In fact, one of the things I am learning most in this project is backend debugging.
I have run into some quite interesting problems, such as:
- π differences between Pydantic models and SQLAlchemy models
- π conflicts between UUID vs Integer in PostgreSQL
- β‘ problems with PgBouncer and asyncpg
- π¦ errors caused by badly structured modules or imports
- π problems with datetime and timezone
- π role validations failing because of constraints in the database
They are the kind of errors that look impossible at first, but when you finally understand them⦠you learn a huge amount about how the tools really work.
π§ What I am learning by working on both projects
Working on these two projects at the same time is teaching me something important:
programming is not just writing code.
It is also:
- ποΈ designing systems
- ποΈ understanding databases
- π§ thinking about architecture
- π solving complex errors
- π documenting
- π₯ thinking about users
- π constantly learning new tools
I am also starting to use AI tools like ChatGPT or Claude as assistants to analyse problems, review code or structure ideas. Used well, they become a very powerful tool for learning faster.
π± Building while learning
Something I try to do is not to stay stuck in tutorials or small exercises.
I prefer to build real projects, even imperfect ones, because that is where the interesting problems actually appear.
It is when you have to connect frontend, backend, database, authentication and deployment that you start to understand how everything works.
There is still an enormous amount to learn, but these projects are becoming a kind of laboratory where I can try out ideas, get things wrong, fix them and keep improving.
And in the end, I think that is one of the best ways to learn to program.
Topics