{"name":"Christoph Andreas Thonhauser","alternateName":"CAT","title":"Senior Software Engineer & Consultant","belief":"Most compromises in software come from nobody knowing what's actually needed. I find out, make the code say it, and cut the rest.","summary":"Software engineer and consultant at SQUER in Vienna, working across Angular, NestJS, and cloud-native platforms with a focus on domain-driven design and hexagonal architecture.","location":"Vienna, Austria","employer":{"name":"SQUER","url":"https://www.squer.io"},"contact":{"email":"christoph@thonhauser.dev","website":"https://thonhauser.dev","linkedin":"https://www.linkedin.com/in/christoph-andreas-thonhauser","github":"https://github.com/chranditho"},"writing":[{"title":"Your Ports Are Lying About Your Business","url":"https://www.squer.io/blog/your-ports-are-lying-about-your-business","publisher":"SQUER","description":"Hexagonal ports named after HTTP operations defeat their purpose. Name them after business intent, and tests, codebases, and AI agents all get better."},{"title":"A portfolio for someone who has never opened a terminal","url":"https://thonhauser.dev/work/artist-portfolio-template","publisher":"Case study","description":"Designing a site template that is structurally unable to incur a charge: one account, zero secrets, and AVIF that is never re-encoded."},{"title":"From Monolith to Microservices: A Migration Case Study Using NestJS","url":"https://pub.hcw.ac.at/obvfcwhs/content/titleinfo/12219878","publisher":"Bachelor thesis, Hochschule Campus Wien, 2025","description":"Migrating a NestJS monolith to microservices in an Nx monorepo, with RabbitMQ and a backend-for-frontend. Under 400 concurrent users the monolith failed 18.56% of requests, the microservices 2.90%.","codeUrl":"https://github.com/chranditho/bachelorThesisTwo"}],"projects":[{"name":"mdrn","url":"https://github.com/chranditho/mdrn","description":"Spring Modulith showcase: hexagonal modules with enforced boundaries that talk to each other through domain events.","tags":["Java","Spring Modulith","Hexagonal"]}],"experience":[{"role":"Senior Software Engineer & Consultant","company":"SQUER","period":"May 2024 – Present","description":"Shaping architecture decisions, building full-stack systems, and helping teams deliver with confidence. Working across Angular, NestJS, and cloud-native platforms."},{"role":"Software Engineer & Consultant","company":"SQUER","period":"March 2020 – April 2024","description":"Full-stack work for clients in banking, insurance and real estate, from Jakarta EE services to Angular micro-frontends and legacy modernization."}],"education":[{"degree":"BSc Computer Science and Digital Communications","institution":"Hochschule Campus Wien","period":"2020 – 2025","thesis":{"title":"From Monolith to Microservices: A Migration Case Study Using NestJS","url":"https://pub.hcw.ac.at/obvfcwhs/content/titleinfo/12219878"}},{"degree":"Media Informatics and Visual Computing (Bachelor, not completed)","institution":"TU Wien","period":"2017 – 2020","completed":false}],"skills":[{"category":"Core Stack","skills":["Nx","Angular","NestJS","TypeScript","Node.js"]},{"category":"Architecture","skills":["System Design","DDD","Microservices","Event-Driven Architecture"]},{"category":"Cloud & DevOps","skills":["Azure","AWS","Docker","Kubernetes","GitHub Actions"]}],"formats":{"html":"https://thonhauser.dev","markdown":"https://thonhauser.dev/index.md","cv":"https://thonhauser.dev/cv.md","llms":"https://thonhauser.dev/llms.txt"}}