Berlin, Germany

Hi, I’m Bruno

I’m a developer in their early twenties, based in Berlin. I build custom software that respects the people using it: private by default, usable by everyone.

Say hello About me What I care about My take on AI

About me

I’m Bruno, a developer living in Berlin. I started out on the Linux command line, administering servers and running things in Docker, and grew into web development: PHP and JavaScript, then Vue.js, Angular, NestJS and TypeScript, plus some Java. What keeps me going is building things that fit the person or team using them, instead of forcing them into someone else’s template.

I’m a strong believer in free and open-source software, and in the communities around it. Good software comes from people who feel they belong and can contribute, so I try to help build places where that’s true. I care about the people on the other side of the screen, too: their data, their devices, their abilities. That’s why privacy and accessibility aren’t extras for me; they’re where I start.

I love trying new things. Over the years that has meant PHP, C#, Python, Go and Lua, and plenty of DNS, networking and self-hosting rabbit holes. I always need a new project, and the best ones are the ones I learn something from.

Outside of code, I’m vegan and I care about consumer ethics: who makes what we buy, and holding companies accountable for how they behave. I also like putting my skills to use for non-profits; for example, I’ve built a WordPress website for one.

Things I’m into

What I care about

AI, but not mindless

AI is a great tool, and still just a tool. I use it where it helps and leave it out where it doesn’t.

Vibe coding (no) Coding, with vibe.

  1. I understand what ships

    Generated code gets read, tested and reviewed like any other. If I can’t explain it, it doesn’t go in.

  2. Your data stays yours

    No customer data into third-party models by default. Where AI is a real fit, I prefer self-hosted or EU-based options, with clear consent.

  3. Useful, not decorative

    No chatbot bolted on for the buzzword. A feature has to solve a real problem better than the boring alternative.

  4. Honest about limits

    Models make things up. I design for that: humans in the loop, visible uncertainty, and an accessible way to correct or opt out.

What I work with

Frontend

  • TypeScript
  • JavaScript
  • Angular
  • Vue.js
  • HTML & CSS

Backend

  • NestJS
  • Node.js
  • PHP
  • Java
  • WordPress

Ops & security

  • Linux administration
  • Docker
  • Security & privacy tooling

Always exploring

  • C#
  • Python
  • Go
  • Lua
  • DNS & networking
  • Self-hosting

Applied AI

  • LLM integration
  • Self-hosted models
  • Human-in-the-loop

Let’s talk

Got an idea, a project, or just a question? Write me, I’m happy to hear about it. Moin, or hello, either works.

hello@brno.dev