SUBID DASPORTFOLIO / 2026
000

SUBID

PORTRAIT // ORIGINAL[ 1 / 7 ]
WORK // RIDENOWW[ 2 / 7 ]
WORK // DEED POLL[ 3 / 7 ]
PORTRAIT // CYBERNETIC[ 4 / 7 ]
PORTRAIT // HOLOGRAM[ 5 / 7 ]
PORTRAIT // SKETCH[ 6 / 7 ]
PORTRAIT // GLITCH[ 7 / 7 ]
SUBID DAS
← Back to Location Blogs

Berlin's Startup Infrastructure Scene: Building on European Tech Stack

January 23, 20258 min readSubid Das📍 Berlin
startupsgdprinfrastructureberlineuropedevops

Berlin has 2,500+ startups, more than London or Paris. Over €10B in FinTech and SaaS investment. Yet infrastructure patterns differ dramatically from SF.

Why Berlin's Infrastructure is Different

1. GDPR as Core Architecture

Startups in Berlin must design for GDPR from day one. This shapes infrastructure:

# Data residency: EU region only
provider "aws" {
  region = "eu-central-1"  # Frankfurt (required for German data)
}

# Encryption mandatory
resource "aws_db_instance" "users" {
  storage_encrypted = true
  kms_key_id        = aws_kms_key.data.arn
  
  backup_retention_period = 35  # GDPR audit trail
}

# Data deletion capability required
# Architecture must support:
# 1. Export user data (JSON)
# 2. Delete all user data
# 3. Verify deletion

2. Open Source Culture

Berlin startups heavily use open-source technologies:

  • PostgreSQL (not proprietary databases)
  • Kubernetes (not managed services)
  • GitLab (not GitHub—EU privacy focus)
  • Nextcloud (EU alternative to Dropbox)

Why? Cost, independence, and EU-friendliness.

3. Cost Consciousness

Unlike SF, Berlin startups optimize for unit economics:

SF startup: "Scale first, profit later"
Berlin startup: "Break even by month 12"

This drives infrastructure efficiency.

Berlin Startup Infrastructure Pattern

Typical Stack

# 2025 Berlin startup tech stack
version: 1.0

compute:
  platform: Kubernetes (self-managed or managed)
  orchestration: Karpenter (auto-scaling)
  
database:
  primary: PostgreSQL (RDS eu-central-1)
  cache: Redis
  analytics: TimescaleDB or Clickhouse

storage:
  objects: MinIO (open-source S3)
  or: AWS S3 (eu-central-1)

infrastructure:
  iac: Terraform (not CloudFormation)
  ci_cd: GitLab CI (not GitHub Actions)
  secrets: Vault (HashiCorp)
  monitoring: Prometheus + Grafana

communications:
  chat: Mattermost (self-hosted)
  email: Postfix (not Sendgrid)
  video: Jitsi (open-source)

Heavily open-source. Minimizes vendor lock-in.

Cost-Conscious Architecture

Example: €2K/month Infrastructure

A typical Berlin Series A startup:

Compute (K8s):        €600  (3 nodes, t3.large)
Database (RDS):       €400  (Multi-AZ PostgreSQL)
Storage (S3):         €150  (1TB monthly)
CDN:                  €200  (CloudFront)
Monitoring:           €0    (Prometheus self-hosted)
Backups:              €100  (S3 Glacier)
Other (DNS, etc):     €50
───────────────────────────
Total:               €1,500/month

Compare to SF: $8-10K/month at same scale.

Key differences:

  • Self-hosted monitoring (SF: DataDog $3K+)
  • Single-region (Berlin region: eu-central-1)
  • Reserved instances (1-year commitment)
  • No multi-cloud (SF: AWS + GCP + Heroku)

GDPR Compliance Implementation

# Berlin startup: GDPR is infrastructure requirement

# 1. Data export API (required)
@app.route('/api/user/export')
@require_auth
def export_user_data(user_id):
    user = User.query.get(user_id)
    
    # Collect all user data
    data = {
        'profile': user.to_dict(),
        'orders': [o.to_dict() for o in user.orders],
        'messages': [m.to_dict() for m in user.messages],
        'activity': get_activity_logs(user_id)
    }
    
    # Export as JSON
    return json.dumps(data, indent=2), 200, {
        'Content-Disposition': 'attachment; filename=my-data.json'
    }

# 2. Data deletion API (required)
@app.route('/api/user/delete', methods=['POST'])
@require_auth
def delete_user(user_id):
    # Delete in phases (cascade)
    
    # Phase 1: Anonymize (immediate)
    User.query.get(user_id).anonymize()
    
    # Phase 2: Mark for deletion
    user.mark_for_deletion(deadline=datetime.now() + timedelta(days=30))
    
    # Phase 3: Background job deletes after 30 days
    # (in case user changes mind)
    
    return {'status': 'deletion_requested'}, 202

Data Mapping

Berlin startups maintain data maps:

# data_map.yaml
user_personal:
  storage: PostgreSQL
  location: eu-central-1
  retention: GDPR rights apply
  deletion: Cascade (delete with user)

user_activity:
  storage: Elasticsearch
  location: eu-central-1
  retention: 90 days
  deletion: Auto-purge after 90d

order_data:
  storage: PostgreSQL
  location: eu-central-1
  retention: 7 years (tax requirement)
  deletion: Anonymize after 7 years

analytics_events:
  storage: BigQuery
  location: eu-multi-region
  retention: 24 months
  deletion: Auto-purge

Berlin-Specific Considerations

1. Labor Costs

Berlin engineer salary: €45-65K/year SF engineer salary: $150-250K/year

Costs 3-4x less, so:

  • Smaller engineering teams
  • More DIY (self-hosting)
  • Less vendor software
  • More open-source

2. Venture Capital

Berlin has less VC than SF, so:

  • Longer runways required (18-24 months)
  • Unit economics matter
  • Cloud efficiency = survival

3. EU Regulation Complexity

GDPR + local German law + local regulations = complexity.

Solution: Legal-grade infrastructure from start.

# Every Berlin startup should have this:
class GDPRCompliantDataStore:
    """
    Guarantees:
    1. Data encrypted at rest (AES-256)
    2. Encryption in transit (TLS 1.3)
    3. EU-only storage
    4. Deletion within 30 days
    5. Audit logging
    6. Access control
    """
    
    def store(self, user_id, data):
        # Encrypt
        encrypted = self.encrypt(data)
        
        # Store in EU
        self.db.insert({
            'user_id': user_id,
            'data': encrypted,
            'encrypted_at': datetime.now(),
            'created_at': datetime.now()
        })
        
        # Log access (audit trail)
        self.audit_log(f"DATA_STORE user_id={user_id}")

Open Source Adoption in Berlin

Berlin startups contribute heavily to open source:

Significant Berlin-based projects:
- Nextcloud (cloud storage)
- Stateless Systems (infrastructure)
- Zalando (e-commerce)
- SoundCloud (music streaming)
- Zalando's Connexion (API framework)

Why? Talent wants to contribute. Startups want portfolio.

Infrastructure Hiring in Berlin

Typical Salaries

  • Junior DevOps: €40-50K
  • Senior Infrastructure: €70-90K
  • Tech Lead: €90-120K

Much lower than SF but reflects lower cost of living.

Companies

  • Zalando: 300+ engineers (e-commerce)
  • SoundCloud: 200+ engineers (music)
  • N26: 100+ engineers (fintech, moved to Berlin)
  • GetYourGuide: 150+ engineers (travel)
  • Delivery Hero: Cookpad acquisition

All hire cloud/DevOps engineers.

Best Practices for Berlin Startups

PracticeBenefit
GDPR-first architectureLegal compliance, EU market trust
Single region (Frankfurt)Simplicity, cost
Reserved instances30-40% savings
Open source stackCost, independence, community
PostgreSQL + RedisProven, no vendor lock-in
Self-hosted monitoringFull control, learning

Challenges & Solutions

Challenge: Brain Drain to SF

Solution: Startups offer equity, growth, autonomy

Challenge: Smaller market than SF

Solution: EU has 450M people; scale across EU

Challenge: Slower funding cycles

Solution: Build profitable faster, less cash burn

Conclusion

Berlin startups build differently than SF startups. GDPR forces legal-grade infrastructure. Lower salaries mean self-sufficiency. Lower VC means profitability.

These constraints breed resilience. Berlin startups are operationally efficient, privacy-conscious, and sustainable.

The infrastructure patterns—GDPR-first design, cost optimization, open-source—are valuable globally, not just in Berlin.

About the author

Subid Das is a cloud native engineer. Find more location guides onlocation guides.

Open to freelance, full-time, and interesting problems.

LET'S CONNECT