Ideas. Engineered.

Ideas. Engineered.

    • Links

  • Day#9 Installing Forgejo and native Forgejo Runner

    Today I installed Forgejo and configured its native runner from scratch. Initially I also installed Woodpecker CI, but it turned out unnecessary.

    16.06.2025
  • Day#8 Designing a Scalable Permission Model

    I’ve implemented a structured permission model that allows for precise access control across the system. Instead of hardcoding logic for each route, I rely on a table-driven model that supports dynamic evaluation at runtime.

    13.06.2025
  • Day#7: 24 Test Suites, 153 Tests Passing — Scaling Confidence with Every Assertion

    After several days of shaping a growing service architecture, I’ve finally reached a point where 24 test suites and 153 individual tests are green. This isn’t just a number — it’s a signal that the foundations are holding as complexity grows.

    11.06.2025
  • Day#6: Building a Flexible Group Structure with NestJS and TypeORM

    I introduced a generic group model into the backend to handle dynamic user-to-organization assignments and relationships. Users can now belong to multiple groups with typed roles, and groups themselves can be structured hierarchically.

    10.06.2025
  • Day#5: Continuation: Securing Routes with JWT and Role-Based Access Control

    Continuing development on the backend platform — this time focusing on securing routes with JWT, implementing @Roles decorators, handling role propagation from the database, and creating a custom @Public annotation for open endpoints.

    10.06.2025
  • Day#4: Releasing the First Version — Lessons in Developer-Facing Documentation

    After a week or so of bootstrapping a modular backend platform using NestJS, TypeORM, and Turborepo, I finally reached a point where I could tag and release the very first version of one of the internal APIs. It wasn’t just a matter of bumping a version and pushing a commit. I wanted this release to…

    10.06.2025
  • Day#3: Behind the Scenes: Challenges in Building a Modular, Scalable Platform

    Over the past few days, I’ve been developing a backend system from scratch that’s designed to scale with a complex, multi-tenant structure. While the exact business context remains confidential, the technical journey offers plenty of insight. This post summarizes key challenges I encountered and the approaches I used to solve them — especially around structure,…

    09.06.2025
  • Day#2: Designing a Reliable Backend: Lessons from Early Infrastructure Work

    Building new software from scratch means making foundational decisions early — decisions that shape how maintainable, scalable, and consistent the system will be. In this post, I’ll walk through two technical areas that caused friction in my early backend work — and how I resolved them.

    09.06.2025
  • Day#1: Building Clean, Breaking Things: The Unexpected Cost of a Global Exception Filter

    The goal seemed trivial: create a global ExceptionFilter to unify error responses across the backend. A quick win. A small boost in DX. What followed instead was a full day of debugging TypeScript build issues, resolving unexpected behavior in ESM mode, and untangling the consequences of mixing modern monorepo tooling with legacy compiler features. This…

    09.06.2025
  • Day#0: Building a Modular System from Scratch

    Day#0: Building a Modular System from Scratch

    Starting a new software project from the ground up is always an exercise in balancing ambition with reality. Over the past two days, I’ve been laying the foundations of a modular monorepo architecture using Next.js for the frontend and NestJS for the backend — and, as always, theory quickly collided with the stubbornness of actual…

    09.06.2025
←Poprzednia strona


Ideas. Engineered.

Dumnie wspierane przez WordPress