creatives.club - homepage

Creatives Club – LinkedIn for Video Professionals

    • JavaScript & Node.js
    • Node.js, Express.js, Feathers.js, React, MobX, Next.js, Ansible, AWS, socket.io
    • Jumpcut Inc.
    • February 22, 2021

Creatives Club was a social networking application. The goal was to have a place where any creative professionals could showcase their videography and photography projects.

Achievements

  1. I automated the deployments of the API server within one week. I wrote a custom CI/CD pipeline using CircleCI, Ansible, and AWS.
  2. My team and I delivered the entire MVP in 2.5 months.
  3. I wrote tests and documentation for every API endpoint. We had very few bugs and the integration with the Next.js front-end was super smooth.

The Story

I was working for jumpcut.com and directly reporting to Peter Lu, the COO of Jumpcut. I was made the lead engineer on the team. I was responsible for delivering the MVP within two months. And here are the major features of the MVP:

  1. User authentication (Signup and login)
  2. A portfolio page where users can showcase their creative projects and their resume
  3. Friend requests – users can send each other friend requests ala Facebook
  4. Chat messaging – friends should talk to each other
  5. A job board – companies wanting to hire can post jobs

And we had to build all of this from scratch in two months. I love a challenge.

I had one designer one, frontend engineer, and no one for quality assurance. All the designs had to be custom according to the design language of jumpcut.com. Furthermore, the team was distributed across four time zones so async coordination was key.

For the tech stack, We chose the technologies that each of us was most proficient in. This enabled us to deliver as fast as we could since we already knew our tools. I chose Node.js for the backend. I used Express.js and Feather.js to write the API logic and documented it with Swagger. Julian (the front-end engineer) chose React and Next.js. I was fairly comfortable with React and Next myself so I immediately agreed.

I figured that automated testing was a must-have because we had no QA staff. The first thing I did was set up unit and integration tests for the API using Jest. Another thing I had to make sure of was that the tests run on each change so we don’t waste time in manually testing the application.

This was my first time setting up infrastructure from scratch. We used Vercel to deploy the Next.js frontend. Vercel automated all of the front-end Ops for us. I had to do the same thing for the API. I used CircleCI, Ansible and AWS to get this done.

On each commit, a webhook was sent to CircleCI. CircleCI pulled our latest code, ran all of the tests, confirmed everything was working and then used an Ansible script to deploy the API to our AWS cloud. AWS was configured to have the API behind an elastic load balancer. This ensured a rolling release deployment with zero downtime. I had AWS also configured to make sure there are at least two servers running at any given time in production.

So, we had a complete CI/CD pipeline that:

  • Ensured all the features worked
  • Deployed the latest changes to AWS
  • Deployed the new version with zero downtime
  • and it was self-healing. If a server crashed, a new one spun up in its place automatically.

I’m still proud of it.

Once the CI/CD pipeline was in place, we began building features one by one. We would get the designs from Alex, I wrote the APIs and documented them in Swagger. Julian read the Swagger docs and integrated the APIs with the React front-end. We were able to maximize asynchronous work by properly documenting the APIs.

We delivered the MVP in two months and two weeks of engineering time. Peter called the project a “huge success”.

creatives.club - signup page