# Thomas Karner > Thomas Karner, is a software engineer with a background in information systems management (Wirtschaftsinformatik), based in Vienna, Austria. The company IT-Dienstleistungen Thomas Karner e.U. builds custom software (Java, Go, TypeScript), analyses and digitalises business processes, and specialises in PDF/A validation, conversion and long-term archiving. Thomas Karner is the author of gopdfrab, an open-source PDF/A library for Go. Clients are served in Vienna and the surrounding area, and remotely; the site is available in German and English. Key facts: - Professional software development since 2020 (fiskaly: fiscalisation for cash registers in AT/DE; NTBS: software for the Austrian notary profession); self-employed since 09/2025. - Education: MSc Information Systems Management (FH Technikum Wien) and MSc IT, Digitalization and Sustainability (Hochschule Luzern), BSc Information Systems Management (FH Technikum Wien). - Contact: contact@thomas-karner.com, +43 680 140 33 20, https://thomas-karner.com/kontakt/. A free 30-minute initial call is offered. ## Services - [Custom software development](https://thomas-karner.com/en/services/#software): Creation of secure and maintainable web applications, APIs and backend systems. From concept to operation. - [Digitalising business processes](https://thomas-karner.com/en/services/#digitalisierung): Understanding workflows, digitalising them sensibly and replacing paper, spreadsheets and manual steps with end-to-end processes is information systems management in practice. - [PDF/A & long-term archiving](https://thomas-karner.com/en/services/#pdfa): Validation, conversion and archiving of documents as PDF/A – built on my own open-source Go library. ## gopdfrab - [Case study](https://thomas-karner.com/en/projects/gopdfrab/): Pure-Go library and CLI for PDF/A-1b verification and conversion. 204/204 Isartor test suite passed; 569/569 veraPDF corpus passed; 159 checks in 11 groups; 0.27 s for the whole 773-file corpus. Zero runtime dependencies, also runs as WebAssembly. Dual-licensed: AGPL 3.0 (free, source disclosure required, no support) or a paid commercial licence for closed-source use (no source disclosure, support included). - [Website](https://gopdfrab.voidrab.com) - [Source code](https://github.com/voidrab/gopdfrab) - [Licensing](https://gopdfrab.voidrab.com/licensing): request a commercial licence at contact@thomas-karner.com or https://thomas-karner.com/en/contact/?topic=license ## Pages - [Home (DE)](https://thomas-karner.com/) / [Home (EN)](https://thomas-karner.com/en/) - [Leistungen](https://thomas-karner.com/leistungen/) / [Services](https://thomas-karner.com/en/services/) - [Projekte](https://thomas-karner.com/projekte/) / [Projects](https://thomas-karner.com/en/projects/) - [Lebenslauf](https://thomas-karner.com/lebenslauf/) / [CV](https://thomas-karner.com/en/cv/) - [Kontakt](https://thomas-karner.com/kontakt/) / [Contact](https://thomas-karner.com/en/contact/) ## Articles - [voidrab: Zwei Web-Werkzeuge für die Arbeit mit PDF-Dokumenten](https://thomas-karner.com/blog/voidrab-pdf-tools/) (de): Der PDF Co-Viewer zum gemeinsamen Durchsehen von Dokumenten und der PDF Pattern Matcher zum Abgleich großer Dokumentstapel – wie sie funktionieren und wofür sie gedacht sind. - [RAG im Unternehmen: Wie Sprachmodelle mit Ihrem eigenen Wissen arbeiten](https://thomas-karner.com/blog/rag/) (de): Was Retrieval-Augmented Generation (RAG) ist, welche Schwächen von Sprachmodellen es ausgleicht und worauf Unternehmen bei Datenschutz und Einführung achten sollten. - [Von Activiti zu nativem Java: Wann sich eine Process Engine nicht mehr lohnt](https://thomas-karner.com/blog/activiti/) (de): Wir haben drei BPMN-Prozesse aus einer veralteten Activiti-Engine herausgelöst und in Java neu umgesetzt. Ein Erfahrungsbericht mit Vorgehen, Aufwand und Lessons Learned. - [voidrab: two web tools for working with PDF documents](https://thomas-karner.com/en/blog/voidrab-pdf-tools/) (en): The PDF Co-Viewer for reviewing documents together and the PDF Pattern Matcher for checking large batches of documents against each other – how they work and what they are for. - [RAG in business: how language models work with your own knowledge](https://thomas-karner.com/en/blog/rag/) (en): What retrieval-augmented generation (RAG) is, which weaknesses of language models it addresses, and what companies should consider around data protection and roll-out. - [From Activiti to plain Java: when a process engine stops paying off](https://thomas-karner.com/en/blog/activiti/) (en): We moved three BPMN processes off an outdated Activiti engine and reimplemented them in Java. A field report on approach, effort and lessons learned. ## Optional - [Full text of all articles](https://thomas-karner.com/llms-full.txt) - [LinkedIn](https://www.linkedin.com/in/thomas-karner-a58246167) - [GitHub](https://github.com/voidrab) - [Imprint](https://thomas-karner.com/en/imprint/)