Motion is reduced on this device. Use the chapters below to move through the story: Act I · Act II · Act III · Act IV · Act V
In 2023, Cleverse Academy was founded to help career changers become software engineers, even without coding experience.
Here, their ideas could take shape as websites they built and were proud to call their own.
Cleverse engineers Men and Art planned and designed the first cohort’s curriculum.
Before teaching students, they rehearsed it inside the company—plan, feedback, practice, rehearsal—refining it with every pass.
In time, an engineering student joined Cleverse Academy as a T.A.
Their work ran through Front-end, Back-end, and the Final Project, helping the teaching at every stage.
During Front-end and Back-end, Tiger led students through problem-solving practice.
They worked through LeetCode problems such as Jump Game or Pow(x, n).
After Front-end and Back-end, students put their learning into Final Projects.
They began with their own idea, designed the front end in Figma and the database schema in Draw.io, then built their sites.
Regular instructor reviews kept the work to professional standards.
Every review sent the code back for another change.
And every change sent a person back to the server to deploy it again with docker-compose.
Fix a bug.
Deploy it again.
Build a new feature. Deploy it again.
To get rid of this repeated manual work, Tiger imagined a service that deployed the system automatically whenever code was pushed to GitHub.
Tiger chose Rust for the service out of curiosity, knowing it was a risk.
He had never used it in production.
Learning Rust took nearly all his time, leaving no working software.
Tiger could not deliver the service he had promised the students.
Poor time management and misplaced priorities left instructors such as Art helping every group deploy by hand. The whole process became chaotic.
Looking back, Tiger should have communicated sooner, tracked progress, and recognised that he would not finish in time.
He could then have helped students deploy by hand earlier, while the situation was still manageable.
Moving forward, Art accepted a new role elsewhere, and Tiger stepped in as Back-end Instructor.
His second chance began by teaching what happened when someone opened academy.cleverse.com in a browser:
DNS resolved the name, TCP connected, HTTP reached Node.js and Express, Prisma queried the database, and JSON returned to the browser.
After teaching Back-end to the second cohort, Tiger returned to the service.
This time, he chose Go. Docker had a native Go client. Tiger had used the language before, and Art was there to advise.
Each deployment command carried a JWT with an asymmetric ES256 signature.
Students set their own public key on the service. It verified every command against that key before deployment.
Every 240 seconds, the service acted on the highest-priority verified deployment command.
What had been a manual loop became a rhythm the service kept.
Access logs were stored in /var/log/compose-deployment/.
They remained there for audit, debugging, and manual rollback.
cd-compose-deployment was finished and delivered to students in time.
Students, instructors, and T.A.s could focus on building each group’s website, giving students room to do their best work.
It culminated in a hugely successful Final Project Presentation.
The students could finally present the websites they had built from their own ideas.