{"id":62,"date":"2026-05-02T11:14:11","date_gmt":"2026-05-02T11:14:11","guid":{"rendered":"http:\/\/localhost:8080\/handwerk\/"},"modified":"2026-05-03T08:25:26","modified_gmt":"2026-05-03T08:25:26","slug":"craft","status":"publish","type":"page","link":"https:\/\/www.tb-software.ch\/ai\/en\/craft\/","title":{"rendered":"True craftsmanship in software \u00b7 since 1989"},"content":{"rendered":"    <article class=\"tb-hw\">\n\n        <!-- HERO -->\n        <header class=\"tb-hw__hero\">\n            <div class=\"tb-hw__hero-inner\">\n                <span class=\"tb-hw__eyebrow\">Career Path \u00b7 Manifesto<\/span>\n                <h1 class=\"tb-hw__title\">7 years of coding.<br>\n                    <span class=\"tb-hw__title-accent\">No Vibe-Coder.<\/span>\n                <\/h1>\n                <p class=\"tb-hw__lead\">\n                    In 1989, I started on a 286 with DOS, using BASIC and dBase. Today, I build AI systems with local LLMs. In between: Windows\u00a03.11, Clipper, FoxPro, Visual Basic, ASP, C#, .NET, WPF, ASP.NET, JavaScript, WordPress, Python, LangChain. I use AI tools every day, but I understand how they work. That's the difference.\n                <\/p>\n                <div class=\"tb-hw__hero-meta\">\n                    <span class=\"tb-hw__pill\">7+ years of development<\/span>\n                    <span class=\"tb-hw__pill\">since 1989<\/span>\n                    <span class=\"tb-hw__pill\">Rheintal \u00b7 on-premises if necessary<\/span>\n                <\/div>\n            <\/div>\n        <\/header>\n\n        <!-- TIMELINE -->\n        <section class=\"tb-hw__section\">\n            <h2 class=\"tb-hw__h2\">Timeline<\/h2>\n            <p class=\"tb-hw__sub\">A journey through time with hardware, operating systems, and languages. Each decade has shaped how I build software today.<\/p>\n            <div class=\"tb-hw__timeline\">\n                                    <article class=\"tb-hw__era\">\n                        <h3 class=\"tb-hw__era-title\">989, late 80s<\/h3>\n                        <dl class=\"tb-hw__era-meta\">\n                            <dt>Hardware<\/dt><dd>86\/386, 1 MB RAM, no mouse support<\/dd>\n                            <dt>OS<\/dt><dd>DOS 3.x \u2022 Norton Commander<\/dd>\n                            <dt>Languages<\/dt><dd>BASIC \u00b7 dBase III \u00b7 Assembly snippets<\/dd>\n                        <\/dl>\n                        <p class=\"tb-hw__era-story\">First own programs. Understanding data instead of clicking data. Those who learned to code back then also learned how a computer truly functions\u2014no marketing layer in between.<\/p>\n                    <\/article>\n                                    <article class=\"tb-hw__era\">\n                        <h3 class=\"tb-hw__era-title\">990s<\/h3>\n                        <dl class=\"tb-hw__era-meta\">\n                            <dt>Hardware<\/dt><dd>86 \u2192 Pentium \u00b7 CRT monitors<\/dd>\n                            <dt>OS<\/dt><dd>Windows 3.11 \u00b7 Windows 95\/98<\/dd>\n                            <dt>Languages<\/dt><dd>Clipper \u00b7 FoxPro \u00b7 Visual Basic 3\u20136 \u00b7 HTML<\/dd>\n                        <\/dl>\n                        <p class=\"tb-hw__era-story\">First client projects for SMEs. Database applications, inventory management, simple websites. The internet went mainstream, and software moved from the specialist shop to every desk.<\/p>\n                    <\/article>\n                                    <article class=\"tb-hw__era\">\n                        <h3 class=\"tb-hw__era-title\">000s<\/h3>\n                        <dl class=\"tb-hw__era-meta\">\n                            <dt>Hardware<\/dt><dd>Pentium 4 \u2192 Multi-core \u00b7 LCD<\/dd>\n                            <dt>OS<\/dt><dd>Windows XP \u2022 Linux alongside<\/dd>\n                            <dt>Languages<\/dt><dd>ASP \u00b7 ASP.NET \u00b7 C# \u00b7 SQL Server \u00b7 JavaScript<\/dd>\n                        <\/dl>\n                        <p class=\"tb-hw__era-story\">Web applications for SMEs, backend logic in C#, .NET 1.x \u2192 3.5. Here I learned how to architect software that goes beyond a simple script.<\/p>\n                    <\/article>\n                                    <article class=\"tb-hw__era\">\n                        <h3 class=\"tb-hw__era-title\">010s<\/h3>\n                        <dl class=\"tb-hw__era-meta\">\n                            <dt>Hardware<\/dt><dd>SSD Standard \u00b7 Mobile \u00b7 Cloud Start<\/dd>\n                            <dt>OS<\/dt><dd>Windows 7\/10 \u00b7 iOS \u00b7 Android<\/dd>\n                            <dt>Languages<\/dt><dd>ASP.NET MVC \u00b7 WPF \u00b7 jQuery \u2192 Vue \u00b7 REST APIs<\/dd>\n                        <\/dl>\n                        <p class=\"tb-hw__era-story\">Desktop and web in parallel. First mobile apps. APIs as standard. This was the realization: Separation of data, logic, and presentation isn't just academic\u2014it pays off over time.<\/p>\n                    <\/article>\n                                    <article class=\"tb-hw__era\">\n                        <h3 class=\"tb-hw__era-title\">020s, today<\/h3>\n                        <dl class=\"tb-hw__era-meta\">\n                            <dt>Hardware<\/dt><dd>GPU inference \u00b7 IoT devices \u00b7 Edge<\/dd>\n                            <dt>OS<\/dt><dd>Linux server \u00b7 Windows workstation<\/dd>\n                            <dt>Languages<\/dt><dd>PHP\/WordPress \u00b7 Python \u00b7 LangChain \u00b7 LLM Prompting<\/dd>\n                        <\/dl>\n                        <p class=\"tb-hw__era-story\">Local AI on your own hardware. Mistral, Qwen, GLM, DeepSeek, all runnable on-premises. AI tools used for coding but never blindly. I read and understand each suggestion before it goes into the repo.<\/p>\n                    <\/article>\n                            <\/div>\n        <\/section>\n\n        <!-- KI-POSITION -->\n        <section class=\"tb-hw__section tb-hw__section--alt\">\n            <h2 class=\"tb-hw__h2\">AI is my tool. Not my crutch.<\/h2>\n            <p class=\"tb-hw__sub\">\n                Vibe-Coding produces code that somehow works. Real software craftsmanship builds systems you can still debug in five years. I use AI tools every day, but I understand what they do. That's the difference.            <\/p>\n            <div class=\"tb-hw__cols\">\n                <div class=\"tb-hw__col\">\n                    <h3>What AI does for me<\/h3>\n                    <ul>\n                        <li>Generate boilerplate code<\/li>\n                        <li>Reviewing architecture proposals<\/li>\n                        <li>Documentation available in other languages<\/li>\n                        <li>Quick \u201ewhat was the syntax for \u2026 again<\/li>\n                        <li>Provide refactoring ideas<\/li>\n                    <\/ul>\n                <\/div>\n                <div class=\"tb-hw__col\">\n                    <h3>What I do myself<\/h3>\n                    <ul>\n                        <li>Designing architecture \u2013 how components interact<\/li>\n                        <li>Data models that will still be relevant in five years<\/li>\n                        <li>Performance tuning under real loads<\/li>\n                        <li>Security reviews and edge cases<\/li>\n                        <li>Understand why something works or doesn't work<\/li>\n                    <\/ul>\n                <\/div>\n                <div class=\"tb-hw__col\">\n                    <h3>Why it matters<\/h3>\n                    <ul>\n                        <li>Vibe-Coder copies solutions until the first production bug arrives<\/li>\n                        <li>AI hallucinates. I don\u2019t when I have domain knowledge.<\/li>\n                        <li>You want someone who can fix bugs without having to explain them to the model first<\/li>\n                        <li>When it comes to data sovereignty (KOBAI), AI help isn't enough\u2014you need experience.<\/li>\n                    <\/ul>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- PORTFOLIO-AUSZUG -->\n        <section class=\"tb-hw__section\">\n            <h2 class=\"tb-hw__h2\">From the archives.<\/h2>\n            <p class=\"tb-hw__sub\">A small selection from 35+ years of projects, ranging from Swiss SMEs to international pharmaceutical corporations. Most are still operational today.<\/p>\n            <div class=\"tb-hw__portfolio\">\n                                    <article class=\"tb-hw__proj tb-hw__proj--withimg\">\n                                                    <div class=\"tb-hw__proj-thumb\">\n                                <img src=\"\/wp-content\/themes\/tb-theme-2026\/assets\/img\/projects\/nextpoint-padel.webp\" alt=\"NPL, Padel-Sieger auf der Treppe nach dem Turnier\" loading=\"lazy\" decoding=\"async\">\n                            <\/div>\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">2025-2026<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">NextPoint Padel League<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">Marcel Steiert \u00b7 nextpointpadel.ch<\/p>\n                            <p class=\"tb-hw__proj-tech\">Next.js \u00b7 TypeScript \u00b7 Vercel \u00b7 Vitest E2E \u00b7 Standard Tables Loader<\/p>\n                            <p class=\"tb-hw__proj-story\">League, season, and club management for padel tournaments. Developed with AI assistance using v0.app, production stack with automated test pipeline and Linkwerk reporting.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj tb-hw__proj--withimg\">\n                                                    <div class=\"tb-hw__proj-thumb\">\n                                <img src=\"\/wp-content\/themes\/tb-theme-2026\/assets\/img\/projects\/kobai-team.jpg\" alt=\"Sieger-Team Digital Game-Changer Award 2024\" loading=\"lazy\" decoding=\"async\">\n                            <\/div>\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">2024<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">KOBAI, semantic AI search<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">international pharmaceutical corporation<\/p>\n                            <p class=\"tb-hw__proj-tech\">Local LLMs \u00b7 RAG \u00b7 Chroma DB \u00b7 LLMProxy \u00b7 on-premises<\/p>\n                            <p class=\"tb-hw__proj-story\">0,000+ documents. Search time from 45 minutes to seconds. 1st place jury and 1st place audience at the Digital Game-Changer Award 2024.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj tb-hw__proj--withimg\">\n                                                    <div class=\"tb-hw__proj-thumb\">\n                                <img src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/themes\/tb-theme-2026\/assets\/img\/handwerk\/f-scant.jpg\" alt=\"F-SCANT 3 Desktop-UI mit DIRP-Diagramm und Frequenz-Editor\" loading=\"lazy\" decoding=\"async\">\n                            <\/div>\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">013 \u2013 present<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">F-SCAN&lt;sup&gt;T&lt;\/sup&gt; 3.0, Frequency Generator Control<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">F-SCAN&lt;sup&gt;\u00ae&lt;\/sup&gt; \/ &lt;a href='https:\/\/fscan.com' target='_blank'&gt;fscan.com&lt;\/a&gt;<\/p>\n                            <p class=\"tb-hw__proj-tech\">C# \u00b7 .NET \u00b7 WPF \u00b7 plugin architecture \u00b7 device drivers \u00b7 serial\/USB<\/p>\n                            <p class=\"tb-hw__proj-story\">Terminal software for the F-SCAN hardware: DIRP analyses (Double Integrated Resonance Procedure), comparison functions, customer master data, and frequency editor. Plugin system for hardware and configuration extensions over time. Still in use today; inquiries come directly to me.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj tb-hw__proj--withimg\">\n                                                    <div class=\"tb-hw__proj-thumb\">\n                                <img src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/themes\/tb-theme-2026\/assets\/img\/handwerk\/fscan-mobile.png\" alt=\"F-SCAN Mobile, medizinisches Hand-Ger\u00e4t\" loading=\"lazy\" decoding=\"async\">\n                            <\/div>\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">2014-2020<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">F-SCAN Mobile + Website<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">Medical Technology CH<\/p>\n                            <p class=\"tb-hw__proj-tech\">ASP.NET \u00b7 C# \u00b7 SQL Server \u00b7 Device Integration<\/p>\n                            <p class=\"tb-hw__proj-story\">Website, backend, and database for a medical handheld device. Complex configuration logic with service interface.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj \">\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">2010-2017<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">PIA-7, Forensic Software (Projectina AG)<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">Projectina AG (PAG) \u00b7 Heerbrugg<\/p>\n                            <p class=\"tb-hw__proj-tech\">C# \u00b7 WPF \u00b7 Hardware control \u00b7 Camera control \u00b7 Filters &amp; decoding \u00b7 Plugin system<\/p>\n                            <p class=\"tb-hw__proj-story\">Forensic workstation software with hardware control (almost IoT-like): filters, cameras, decoding algorithms, and processes. Strong plugin focus, enabling dynamic changes in software, hardware, and configurations over decades without rebuilding the core.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj tb-hw__proj--withimg\">\n                                                    <div class=\"tb-hw__proj-thumb\">\n                                <img src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/themes\/tb-theme-2026\/assets\/img\/handwerk\/color-pen-c14.jpg\" alt=\"Color Pen C14, gr\u00fcner Industrie-Justierlaser im Einsatz\" loading=\"lazy\" decoding=\"async\">\n                            <\/div>\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">2014<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">Color-Pen C14, Industrial Laser<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">industrial manufacturer<\/p>\n                            <p class=\"tb-hw__proj-tech\">Embedded \u00b7 Device Branding \u00b7 Product Website<\/p>\n                            <p class=\"tb-hw__proj-story\">Control software and product presentation for an industrial alignment laser. Branding, website, datasheet.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj tb-hw__proj--withimg\">\n                                                    <div class=\"tb-hw__proj-thumb\">\n                                <img src=\"\/wp-content\/themes\/tb-theme-2026\/assets\/img\/projects\/grow-doser.jpg\" alt=\"GrowDoser, Innenraum mit Pumpen und Ventilen\" loading=\"lazy\" decoding=\"async\">\n                            <\/div>\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">2020-2024<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">GrowDoser<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">In-house product<\/p>\n                            <p class=\"tb-hw__proj-tech\">Embedded Firmware \u00b7 Web Backend \u00b7 App \u00b7 GSM<\/p>\n                            <p class=\"tb-hw__proj-story\">Full product from hardware to app. Automatic nutrient dosing system with cloud connectivity.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj tb-hw__proj--withimg\">\n                                                    <div class=\"tb-hw__proj-thumb\">\n                                <img src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/themes\/tb-theme-2026\/assets\/img\/handwerk\/battery-monitor.png\" alt=\"Battery Monitor App-Icon\" loading=\"lazy\" decoding=\"async\">\n                            <\/div>\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">2015<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">Battery-Monitor, Windows App<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">SME Switzerland<\/p>\n                            <p class=\"tb-hw__proj-tech\">WPF \u00b7 C# \u00b7 Windows Push Notifications<\/p>\n                            <p class=\"tb-hw__proj-story\">Battery monitoring as a tray app. Custom icon, custom animation, custom update mechanism.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj tb-hw__proj--withimg\">\n                                                    <div class=\"tb-hw__proj-thumb\">\n                                <img src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/themes\/tb-theme-2026\/assets\/img\/handwerk\/dj-can-logo.png\" alt=\"DJ CAN Logo, gold metallisch\" loading=\"lazy\" decoding=\"async\">\n                            <\/div>\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">2014<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">DJ CAN, app + branding<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">Event Industry<\/p>\n                            <p class=\"tb-hw__proj-tech\">Web App \u00b7 Logo Design \u00b7 Promo Material<\/p>\n                            <p class=\"tb-hw__proj-story\">Complete visual branding and website for DJ performances. Hand-drawn logo with a gold finish.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj \">\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">010s<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">ATF Productions, script workflow<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">TV Production<\/p>\n                            <p class=\"tb-hw__proj-tech\">Word Automation \u2022 PDF Pipeline \u2022 Version Control<\/p>\n                            <p class=\"tb-hw__proj-story\">Script version control for soap opera production with daily episodes<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj \">\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">000s<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">Mailing Service Switzerland<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">Marketing service provider<\/p>\n                            <p class=\"tb-hw__proj-tech\">Classic ASP \u00b7 Access \u2192 SQL Server<\/p>\n                            <p class=\"tb-hw__proj-story\">Address database with over 1 million records. Printing pipeline for personalized mailings.<\/p>\n                        <\/div>\n                    <\/article>\n                                    <article class=\"tb-hw__proj \">\n                                                <div class=\"tb-hw__proj-body\">\n                            <span class=\"tb-hw__proj-jahr\">990s<\/span>\n                            <h3 class=\"tb-hw__proj-titel\">Sonnenbr\u00e4u \/ Schwardt-App<\/h3>\n                            <p class=\"tb-hw__proj-kunde\">SMEs in Southern Germany<\/p>\n                            <p class=\"tb-hw__proj-tech\">FoxPro \u00b7 Clipper \u00b7 DOS Multi-User<\/p>\n                            <p class=\"tb-hw__proj-story\">Inventory management + accounting. Ran on a token-ring LAN with 6 workstations. Some installations lasted over 15 years.<\/p>\n                        <\/div>\n                    <\/article>\n                            <\/div>\n        <\/section>\n\n        <!-- MANIFEST -->\n        <section class=\"tb-hw__manifest\">\n            <blockquote class=\"tb-hw__quote\">\n                <p>You're not hiring a prompt operator. You're hiring a developer who can read, write, and refactor code\u2014and understand it ten years from now. AI is my brush, not my hand.<\/p>\n                <footer>, Timo B\u00f6hme<\/footer>\n            <\/blockquote>\n            <div class=\"tb-hw__cta\">\n                <a href=\"https:\/\/www.tb-software.ch\/ai\/\" class=\"tb-hw__btn tb-hw__btn--primary\">What I build today<\/a>\n                <a href=\"https:\/\/www.tb-software.ch\/ai\/butler\/\" class=\"tb-hw__btn\">Butler Sandbox<\/a>\n            <\/div>\n        <\/section>\n\n    <\/article>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-62","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/pages\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=62"}],"version-history":[{"count":1,"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/pages\/62\/revisions"}],"predecessor-version":[{"id":63,"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/pages\/62\/revisions\/63"}],"wp:attachment":[{"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}