Skip to content
View Kaandroids's full-sized avatar

Block or report Kaandroids

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Kaandroids/README.md

Kaan Kara

Full-Stack Software Engineer  ·  Java  ·  Spring Boot  ·  Angular

I design and ship production-grade web applications end to end — from the data model and execution engine on the backend to the reactive UI and the cloud deployment I own myself. I care about clean architecture, multi-tenant isolation, observability, and infrastructure-as-code.

🚀 Building Postwerk — an AI-driven email automation platform  ·  🌍 Germany

LinkedIn Email Website


🚀 Featured Project — Postwerk

AI-Powered Email Automation Platform. Build visual, drag-and-drop workflows that classify, extract, reply, forward, and act on your emails — powered by Google Gemini. Live in open beta at postwerk.io.

Postwerk — building an email automation with the AI assistant

Building & running an email automation with the AI assistant — no code.

Engineering highlights

  • ⚙️ DAG automation engine — automations are graphs of 15 typed node types run by a single executor (not a giant switch), with supervised execution (AUTO / REVIEW / OFF), dry-run per-node tracing, and recursive reusable sub-flows.
  • 🤖 Conversational AI builder — a typed tool registry exposed to Gemini behind an OPEN → PLANNING → BUILDING phase machine, so the assistant safely modifies a live automation from natural language.
  • 🔍 Hybrid semantic search — pgvector cosine similarity fused with Postgres full-text via reciprocal rank fusion, gated by an LLM match-judge.
  • 🏢 Multi-tenant SaaS — organizations as tenants, org-scoped at the query level, RBAC + JWT, plan-based AI quotas, GDPR data retention & audit logging.
  • 🔐 Keyless CI/CD — GitHub Actions builds each image once and ships to GCP on merge with zero long-lived credentials (Workload Identity Federation / OIDC, IAP-tunnelled SSH, health-gated auto-rollback).

Spring Boot 3.4 Java 21 Angular 19 PostgreSQL 17 + pgvector Redis 7 Google Gemini Terraform GCP

🌐 Live Demo  ·  📂 Source & Full Docs


🧰 Tech Stack

Category Technologies
Backend Java Spring Boot Spring Security Resilience4j
Frontend Angular TypeScript RxJS SCSS
Data & Cache PostgreSQL pgvector Redis Flyway
AI Gemini Claude Code
Cloud & DevOps GCP Azure Docker Terraform Caddy GitHub Actions
Observability Prometheus Micrometer Actuator
Testing JUnit5 Testcontainers Playwright Vitest

🛠️ Other Projects

Project Description Stack Links
Brief-Fix DIN 5008-compliant German letter generator with AI-assisted composition and window-envelope-ready PDF rendering. Spring Boot · Angular · Gemini · Cloud Run Live · Frontend · Backend
2Do Cloud-native task management with Redis-backed JWT blacklisting, rate limiting, and Azure deployment. Spring Boot · Angular · Redis · Azure Live · Frontend · Backend
Legacy MauMau My first app (2021) — a 100% human-made card game, zero AI, lots of late-night debugging at Uni Hannover. Java Code

🤖 On Using AI Tools

I use Claude Code and Gemini as part of my daily workflow — not as autopilots, but as tools I direct with intent.

  • I own the architecture. Every structural and design decision is mine.
  • I review all AI-generated code before it goes anywhere near a codebase.
  • No vibe coding. I understand what I ship.

AI accelerates the work. It doesn't replace the thinking.


📬 Connect

LinkedIn Email Postwerk

Pinned Loading

  1. Postwerk Postwerk Public

    Visual, AI-driven email automation platform. Spring Boot · Angular · Gemini · pgvector · GCP · Terraform & Caddy.

    Java 1

  2. algoraph algoraph Public

    Interactive graph-algorithm learning platform (Angular + Foblex Flow + custom pseudocode DSL)

    TypeScript 1