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.