bosnadev

Consulting · service

Platform engineering

Slow CI. Deployments that depend on one person. An AWS setup that grew one console change at a time and is not in code. Several repositories copying the same code. Authentication implemented differently in every service. I fix this layer.

Projects from €5,000

Typical work

  • Monorepo migrations to Turborepo
  • Shared packages and the contracts other developers work against
  • CI/CD with GitHub Actions
  • AWS deployment topology in Terraform
  • Containers: Docker build and deploy workflows
  • Secrets and environments
  • Identity with Keycloak or Auth0: SSO, roles and tenant separation
  • Service boundaries and the APIs between them

You get

  • A written scope and design, agreed before the work starts
  • Code and infrastructure definitions in your repositories
  • Documentation and a handover walkthrough

Not included

  • Running your infrastructure day to day, or being on call for it

Selected work

  • Client project at Bosnadev

    E-commerce marketplace monorepo

    I structured a Turborepo monorepo across backend services, shared packages and frontends, and set the contracts other developers worked against. Around a GraphQL monolith I designed Node.js and TypeScript services (Express, Hono), with Hasura actions enforcing business logic at the boundary, and specified event-driven notification flows on Novu and AWS SES/SNS, alongside CI/CD.

  • GFE Media · senior developer and DevOps

    AWS environments for B2B marketplaces

    I architected AWS environments with Terraform, Ansible, Docker and automated deployments, and built microservices and APIs for a B2B marketplace. The work included a multi-tenant, cloud-native B2B marketplace for Scalerion GmbH.

Questions

What are the downsides of a monorepo?

Builds and CI get slow without caching, ownership needs clearer rules because everything sits in one place, and access control is coarser, since anyone with access to the repository sees all of it. Turborepo handles the caching and the order of tasks, and code owner rules handle review ownership. If teams share almost no code and release independently, separate repositories can be simpler.

Monorepo or polyrepo: which fits our team?

A monorepo fits when services and frontends share types, contracts or packages, and changes often cross them. Separate repositories fit teams that release independently and share little code. A monorepo migration is scoped as a project; projects start at €5,000.

Why Turborepo, and what are the alternatives?

Turborepo works with the package manager workspaces a TypeScript project already has, and adds task ordering and caching with little configuration. Nx is the main alternative, with more generators and plugins and more to learn.

Keycloak or Auth0?

Keycloak is open source and self-hosted: no per-user fees and full control, and you run and upgrade it yourself. Auth0 is a hosted service, quicker to start with and priced by active users, so the bill grows with your customer base. The choice depends on your tenant model, SSO needs and budget, and is made before anything is built.

Can Keycloak handle multi-tenant B2B SaaS?

Yes. Current Keycloak versions have organizations, which group a customer’s users with their own domains and identity providers inside one realm. Some setups use one realm per tenant, which isolates more and gets harder to run as the number of tenants grows. Which fits depends on how many customers you have and how much each one configures.

Platform engineering

Discuss a project

What you are building, what is going wrong, and roughly when. I answer within a couple of days.

What you are after optional
Email me