diff --git a/src/assets/images/avatar.jpg b/src/assets/images/avatar.jpg index dfb4d7b..17675e6 100644 Binary files a/src/assets/images/avatar.jpg and b/src/assets/images/avatar.jpg differ diff --git a/src/assets/style.css b/src/assets/style.css index 1197b37..93957d4 100644 --- a/src/assets/style.css +++ b/src/assets/style.css @@ -1,5 +1,5 @@ /* - thiessen.io — personal site + thiessen.io personal site Swiss-minimal direction. Display: Space Grotesk · Body: Hanken Grotesk · Mono: Space Mono. One accent (signal cobalt), used only for links and the live timeline node. */ @@ -138,22 +138,22 @@ a { color: inherit; } .hero__name { font-family: var(--font-display); - font-weight: 600; - font-size: clamp(3rem, 9.5vw, 7rem); - line-height: 0.92; - letter-spacing: -0.035em; + font-weight: 500; + font-size: clamp(1.5rem, 2.6vw, 1.9rem); + line-height: 1.1; + letter-spacing: -0.005em; margin: 0; } .hero__lead { font-family: var(--font-display); - font-weight: 400; - font-size: clamp(1.35rem, 2.7vw, 2rem); - line-height: 1.18; - letter-spacing: -0.01em; + font-weight: 500; + font-size: clamp(1.5rem, 3.2vw, 2.35rem); + line-height: 1.16; + letter-spacing: -0.015em; color: var(--ink); - max-width: 30ch; - margin: 1.75rem 0 0; + max-width: 26ch; + margin: 1rem 0 0; } .hero__meta { @@ -194,12 +194,8 @@ a { color: inherit; } object-fit: cover; border-radius: 6px; border: 1px solid var(--mist); - filter: grayscale(100%) contrast(1.02); - transition: filter 0.4s ease; } -.portrait img:hover { filter: grayscale(0%); } - /* ---------- profile ---------- */ .prose p { diff --git a/src/pages/404.js b/src/pages/404.js index 184cd21..3c3eab2 100644 --- a/src/pages/404.js +++ b/src/pages/404.js @@ -7,7 +7,7 @@ const NotFoundPage = () => ( - Not found — Dennis Thiessen + Not found · Dennis Thiessen

Error 404

diff --git a/src/pages/index.js b/src/pages/index.js index d78a160..fd25c82 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -4,26 +4,26 @@ import { Helmet } from 'react-helmet' import Layout from '../components/layout' import avatar from '../assets/images/avatar.jpg' -const SITE_TITLE = 'Dennis Thiessen — Data, Analytics & AI Engineer' +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. +// Career as a pipeline, most recent first. Each node is a role. const ROLES = [ { - year: '2023 — PRESENT', + year: '2023 – PRESENT', company: 'Swisscom', location: 'Bern, CH', title: 'Staff Data, Analytics & AI Engineer', description: - 'ETL and streaming pipelines in Python, Kafka and SAP BODS feeding a Teradata warehouse — and migrating the legacy stack onto AWS (Glue, Redshift, Lambda, Step Functions, Airflow).', + 'ETL and streaming pipelines in Python, Kafka and SAP BODS feeding a Teradata warehouse, while migrating the legacy stack onto AWS (Glue, Redshift, Lambda, Step Functions, Airflow).', live: true, }, { - year: '2020 — 2023', + year: '2020 – 2023', company: 'Bosch Semiconductor', location: 'Dresden, DE', title: 'Senior Data Engineer', @@ -31,7 +31,7 @@ const ROLES = [ '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', + year: '2018 – 2020', company: 'Fraunhofer CML', location: 'Hamburg, DE', title: 'Research Software Engineer', @@ -39,7 +39,7 @@ const ROLES = [ 'Optimisation-based crew-scheduling decision support in C#/.NET, plus research microservices and a Jenkins CI/CD pipeline with quality gates.', }, { - year: '2017 — 2018', + year: '2017 – 2018', company: 'Vizrt', location: 'Bergen, NO', title: 'DevOps Engineer', @@ -47,7 +47,7 @@ const ROLES = [ 'A distributed video-transcoding backend in Python and C++, with automated audio/video integration testing for reliable releases.', }, { - year: '2015 — 2017', + year: '2015 – 2017', company: 'Generali', location: 'Hamburg, DE', title: 'Software Engineer & IT Consultant', @@ -105,7 +105,7 @@ const IndexPage = () => ( I build the pipelines and platforms that move data and run models in production.

- Staff Data, Analytics & AI Engineer at Swisscom — based in Bern, + Staff Data, Analytics & AI Engineer at Swisscom, based in Bern, Switzerland, with 8+ years across data engineering, ML infrastructure and DevOps.