DEV Community

Cover image for I'm Going a Build Spree !

I'm Going a Build Spree !

I'll be building 4 backend products in Edtech, E-commerce, Chatting, and Saas.


Why?

I enjoy creating stuff, imagining something in my head and bringing it to life, I mean how awesome is that.

And that's exactly what I'm doing in my build spree: imagine → build → deploy.


Re-evaluating my approach

The first thing I've done in my build spree is re-evaluating my entire approach to building product backends, because quality software is shipped through quality processes and pipelines.

For me the two major pipelines when I build software are:

  • The project pipeline
  • The code pipeline

Project Pipeline

Setting out to build anything is basically embarking on a project, whether project management techniques are practiced or not.

Typically, when I build projects, I just do really light project management, basically using a simple Kanban board to keep track of everything I have to do, moving my tasks from Todo to Done, that's it. And it does work for me.

But when working on big projects keeping up with the big picture and ensuring the expected result is delivered can be challenging.

I mean, it’s not just about moving tasks across a board, it’s about aligning effort with goals, breaking work down into achievable milestones, tracking dependencies, and constantly making sure that the project is still heading in the right direction.

Without a structured approach, it’s easy to get lost in day-to-day tasks while losing sight of deadlines, priorities, and overall quality. All these complexities can be really complex to manage with just a simple Kanban board.

So, to improve my project pipeline, I'll be following the Agile project methodology using Jira to manage each of the backend products in the build spree.

I'll be using Epics, User Stories, tasks, and subtasks to break the project into manageable chunks. And sprints to prioritize features and track time.


Code Pipeline

With quality pipelines and systems in place, you can confidently develop and add features to your product with confidence because different checks have been put in place to ensure quality software is delivered checks like: linting, tests, security checks etc.

The benefit of having a well-defined structured approach is it helps you ship quality software consistently, as everything passes through a well thought pipeline that ensures quality.


My process will be:

1. Design

Each feature will be designed before implementing. Sometimes the best design is obvious from the start, sometimes it's not. When it's not, I'll come up with multiple designs and pick the most suitable.

Design before implementing will allow me push not just something that works, but something that works well.

2. Develop

This is where I'll write code to implement features. The code must have these qualities: secure, scalable, maintainable, reliable, and performant.

The code I write will automatically be analyzed by linters to ensure code quality.

3. Test

After a feature has been implemented, I'll test it with robust test cases to confirm reliability.

Different types of tests will be run like: performance, e2e tests, security tests, etc.

These tests will validate that the software works as expected.

4. Document

Once a feature is complete, it will be documented. This ensures maintainability of the software at any point in time.

5. Deploy

At this point the software is in view to be pushed to production but not just yet.

Before the software is shipped to production it will first pass through a CI/CD pipeline with the following checks:

  1. Code quality checks

    • Type checking
    • Linting
  2. Tests

    • Unit
    • Integration
    • e2e
  3. Security scans

    • Static application scanning
  4. Build

    • Build application for production deployment
  5. Deploy

  6. Monitor

    • Error Tracking
    • Performance
    • Analytics

With this in place, I can sit back, sip coffee and watch my users happy.


Backend products I'll be building

  • An ecommerce platform where people can find and purchase products
  • An edtech platform for learners and instructors
  • A social media chatting app with live chat feature
  • A Saas platform where users can get items delivered to them by connecting with people already coming their direction

Technologies I'll be using

  • Languages/Frameworks: TypeScript, Node.js, Express, Jest
  • Database: MongoDB, Mongoose
  • Cache: Redis
  • Queues: Rabbit MQ
  • Realtime: Socket.IO
  • Infra: Docker, NGINX, Kubernetes

Architecture

I'll be going with the monolithic architecture to start with for all the backends — nothing fancy yet (modular monoliths or microservices), as that would be an overkill.

The goal is simply to have working and reliable production-grade backends.


First project

So in no particular order, I'll be starting with the social media chatting app.

I'll constantly be sharing my progress here and across my social media channels:

linkedin | twitter | youtube | medium | hashnode | instagram | tiktok

Alright, let's get started 🚀

Top comments (0)