I build web portals, and I maintain and extend existing ones.

Portrait of Michael Bierbaumer

Freelance full-stack engineer · Remote from Austria

At Allianz I built the base frameworks for the customer self-service, claims, broker and agent portals, which millions of customers used. From 2018 to 2024 I was VP of Engineering at Avenue I Media, a US adtech startup. While it grew from zero to $78M in annual revenue, I designed and built almost all of its platform, including the customer portal and reporting. I work on the backend and the frontend, and I tend to stay with a system for years.

Email me Selected work

Frontend
Vue.js · Nuxt · Angular · React · Next.js · Svelte · TypeScript
Backend
Python · Django · FastAPI · C# / .NET · Java · Spring Boot · Node.js · Elixir
Databases & search
PostgreSQL · TimescaleDB · MySQL · SQL Server · MongoDB · Redis · DynamoDB · Elasticsearch · OpenSearch · Solr
Messaging & data
Kafka · RabbitMQ · SQS · Snowflake · Redshift · BigQuery · ClickHouse
Cloud & DevOps
AWS · Azure · Google Cloud · Docker · Kubernetes · Terraform · GitHub Actions · Datadog
AI & LLM
OpenAI · Claude · Semantic Kernel · LangChain · pgvector

Work I take on

New portals

I build customer, partner and internal portals, including the backend, the database and the frontend. Most portals also need reporting, which I’ve built both inside a portal and as a separate reporting platform.

Taking over an existing portal

If nobody looks after your portal anymore because the agency or developer who built it has moved on, I can take it over and keep working on it, from bug fixes and updates to new features. I start by reading through the code and the setup and writing down what I find, so you know where the portal stands before any larger change.

I’ve worked on a lot of old code, for example at Allianz on an integration layer that hundreds of developers had maintained over decades.

Replacing an old system

When a portal or internal app has to be replaced, I do it step by step, so the old system keeps working until the new one has taken over. At Allianz the new app used the same database as the old one, and both ran side by side until the old one was retired. At my current client I moved the company’s sites to a new platform in phases.

Backend, data & integrations

Portals usually have to exchange data with other systems. I’ve built APIs for partners, uploads to the APIs of six ad networks, data pipelines into Snowflake, and search on Solr and OpenSearch. That includes the less visible parts, like data models, migrations and tuning queries and indexes.

AI & LLM features

I add LLM steps to existing systems, for example bulk content generation, translation or compliance review for ads and articles. I build them like the rest of the backend, on queues and with alerting, and for compliance checks I pair the LLM review with deterministic rules.

Fractional VP of Engineering / CTO

Some companies need one person to own the technical side. I can take that on, including architecture, hiring, engineering processes and a good share of the hands-on development, plus the technical due diligence if the company is sold. I did this at Avenue I Media for six years.

Selected work

Avenue I Media · US adtech, search arbitrage · VP of Engineering · 2018–2024

Platform and team for a search arbitrage startup

When I joined, the company had no revenue and ran its operations on spreadsheets. I designed and built almost all of the platform that replaced them, including a customer portal, a reporting platform, traffic routing, a bidding engine, an ad server, two rule engines (one of them for compliance and blocking) and the revenue attribution pipeline. It scaled to 100M clicks a day.

I also hired and led a team of up to 20 engineers and set up the engineering processes from scratch. For both sales of the company I prepared the technical due diligence, which meant writing a lot of documentation, and moved systems and processes over to the new owners, down to switching the ticketing from Monday to Jira.

Python · Django · PostgreSQL · MySQL · Redshift · Redis · SQS · AWS

peak annual revenue
$78M
total revenue over seven years
$300M+
total EBITDA
$49M
sales of the company
2

Allianz · insurance · 2015–2018

Customer, claims, broker and agent portals

At Allianz I worked on the customer self-service, claims, broker and agent portals, which millions of customers used. They ran on Java/Spring Boot and Angular. I built the base frameworks for the portals, which other countries then adapted for their own markets, and a lot of the Angular components. Day to day it was new features, bug fixes and maintenance. I also built an integration that showed BIRT reports directly in one of the portals.

The portals reached the company’s business logic through an integration layer, a large Java application on Tomcat with sticky sessions. In a team of four I was responsible for the web layer of a session migration that moved live sessions off underused servers so they could be shut down. It cut infrastructure costs significantly.

Java · Spring Boot · Angular · Tomcat · BIRT

Current client · adtech · since 2024

CMS, content API and site platform

I work on the CMS behind the company’s article sites, with scheduled publishing, versioning, tags, bulk operations and article search and filtering, and on a content API that partners use to syndicate and create articles. I moved the remaining sites to a modular, plugin-based platform in a phased rollout.

I also built language-aware related-article search on OpenSearch and tuned MongoDB queries and indexes for article listing and search. Part of my frontend work there is in Nuxt.

.NET · ASP.NET MVC · Nuxt · MongoDB / DocumentDB · OpenSearch

Current client · adtech · since 2024

LLM pipelines for content and compliance

I built the pipeline that generates articles in bulk with OpenAI through Semantic Kernel, running on asynchronous RabbitMQ workers. It also translates articles and titles and adds stock or AI-generated images. Articles that perform best get rewritten automatically.

The compliance checks I built combine deterministic rules with an LLM review of ad titles, content titles and articles. Scores are published to Kafka and alerts go to Slack. Non-compliant articles submitted by partners are blocked.

Allianz · 2015–2018

Replacing a legacy app used by 100k+ employees

With one other engineer, I replaced a PowerBuilder project management and time-logging app with a Java/Spring Boot and Angular web app in about a year. The new app used the same DB2 instance and schemas, so old and new ran side by side until the old one was retired.

As the only engineer on it, I also built a company-wide search engine on Apache Solr that indexed several million documents from tickets, documentation, source code and help desk systems. It caught on across the company soon after launch.

Where I’ve worked since 2006

  1. 2024 – today

    Senior Backend Engineer (contract)

    Adtech company, current client · remote

    I work on a .NET platform of around 23 microservices and 5 site applications. Besides the projects above, I rolled out a new architecture for conversion uploads to Facebook, Google, TikTok, Kwai, Bigo and Zemanta, built a Kafka-to-Snowflake ingestion pipeline in Java, and built crawlers for Google and Facebook ads and campaign automation for TikTok and Taboola.

  2. 2018 – 2024

    VP of Engineering (contract)

    Avenue I Media, US adtech · remote

    I led engineering there from the start.

  3. 2015 – 2018

    Full-stack software engineer

    Allianz

    Full-stack work on the company’s web portals and internal applications, on Java/Spring Boot and Angular. The projects are described above.

  4. 2012 – 2015

    Tutor

    TU Wien

    I organized and supported student groups in workflow and process management courses, which used Apache Camel and Activiti.

  5. 2006 – 2012

    Engineer (part-time)

    Hydrogen Research AG

    I built web interfaces for embedded devices, from C on embedded Linux and microcontrollers to HTML and JavaScript in the browser, part-time alongside school and university.

Education

BSc Business Informatics, TU Wien (2013) · HTL Braunau, Electronics (2007)

Authmon

Side project

Authmon monitors SSH logins. Servers send it their logs over remote syslog, and it keeps a history of logins and sessions with their geo-location. When one of your rules matches or it detects a suspicious pattern, it sends an alert.

I’ve built it alone since 2019, in Elixir/OTP with RabbitMQ, TimescaleDB and a Vue.js frontend. It’s publicly available but not officially launched. The architecture is designed for large scale, though for now I use it for my own servers and my clients’ servers.

authmon.io

Alerts on

  • Brute-force attempts
  • Logins from new countries or IPs
  • Unusual login times
  • Behavior that differs from a user’s normal pattern
  • Rules you define yourself

Alerts go out by email or webhook. The web UI has login maps and session tables.

Get in touch

If you already have a portal, send me a link or a few lines on what it’s built with and what should change. For a new one, a short description of who will use it and what it should do is enough to start. I work remotely from Austria, in German or English.

Send an email

LinkedIn

I work through my company, MIB Digital Solutions GmbH.