import React from 'react'
import { Helmet } from 'react-helmet'
import Layout from '../components/layout'
import avatar from '../assets/images/profile_image.jpg'
const SITE_TITLE = 'Dennis Thiessen · Data, Analytics & AI Engineer'
const SITE_DESCRIPTION =
'Dennis Thiessen is a Staff Data, Analytics & AI Engineer in Bern, Switzerland, building the data pipelines and ML infrastructure that production systems run on.'
const EMAIL = 'dennis@thiessen.io'
const LINKEDIN = 'https://www.linkedin.com/in/dennis-thiessen'
// Career as a pipeline, most recent first. Each node is a role.
const ROLES = [
{
year: '2023 – PRESENT',
company: 'Swisscom',
location: 'Bern, CH',
title: 'Staff Data, Analytics & AI Engineer',
description:
'ETL and streaming pipelines in Python and Kafka feeding a Teradata warehouse, while migrating the legacy stack onto AWS (Glue, Redshift, Lambda, Step Functions, Airflow).',
live: true,
},
{
year: '2020 – 2023',
company: 'Bosch Semiconductor',
location: 'Dresden, DE',
title: 'Senior Data Engineer',
description:
'Containerised ML inference (Docker, Kubernetes, Ansible) into 24/7 semiconductor production lines, and built Python, Java and C# data services over Oracle and Hadoop/Impala.',
},
{
year: '2018 – 2020',
company: 'Fraunhofer CML',
location: 'Hamburg, DE',
title: 'Research Software Engineer',
description:
'Optimisation-based crew-scheduling decision support in C#/.NET, plus research microservices and a Jenkins CI/CD pipeline with quality gates.',
},
{
year: '2017 – 2018',
company: 'Vizrt',
location: 'Bergen, NO',
title: 'DevOps Engineer',
description:
'A distributed video-transcoding backend in Python and C++, with automated audio/video integration testing for reliable releases.',
},
{
year: '2015 – 2017',
company: 'Generali',
location: 'Hamburg, DE',
title: 'Software Engineer & IT Consultant',
description:
'A Java/J2EE workflow portal on Oracle, and introduced behaviour-driven development and RPA automation (UiPath, Camunda).',
},
]
const STACK = [
{ label: 'Languages', items: ['Python', 'SQL', 'Java', 'C#', 'TypeScript', 'C++'] },
{ label: 'Data & Pipelines', items: ['ETL / ELT', 'Kafka', 'Airflow', 'Teradata', 'Hadoop / Impala'] },
{ label: 'Cloud & Infra', items: ['AWS', 'Docker', 'Kubernetes', 'Ansible', 'CI/CD'] },
{ label: 'ML & Observability', items: ['PyTorch', 'scikit-learn', 'ELK', 'Grafana', 'Prometheus'] },
]
const CREDENTIALS = [
{
label: 'Education',
items: ['M.Eng., UniBw München', 'Master’s thesis at Tongji University, Shanghai'],
},
{
label: 'Certifications',
items: [
'AWS Solutions Architect – Associate',
'Data Engineering with AWS (Udacity)',
'IBM AI Engineering (Coursera)',
'AI for Trading (Udacity)',
'iSAQB CPSA-F',
],
},
]
const Tags = ({ items }) =>
items.map((item, i) => (
{group.label}
Data · Analytics · AI Engineering
I build the pipelines and platforms that move data and run models in production.
Staff Data, Analytics & AI Engineer at Swisscom, based in Bern, Switzerland, with 8+ years across data engineering, ML infrastructure and DevOps.
I work where software engineering meets operations. I design ETL/ELT and streaming pipelines, containerise ML inference, and turn monolithic data processes into event-driven, serverless systems.
Right now I'm at Swisscom in Bern, moving a legacy Teradata and Oracle stack onto AWS. What I care about most is automation and reliability: systems that run themselves, recover on their own, and don't page anyone at 3 a.m.
That path has taken me across three countries, with a research stint in Shanghai along the way, so distributed, cross-border teams are familiar ground.
Munich → Shanghai → Hamburg → Bergen → Dresden → Bern
{role.year}
{role.title}
{role.description}
Always happy to talk about data, ML and platform engineering. Email is the fastest way to reach me.
{EMAIL}