# Work-Experience - **Mar. 2023 to Sep. 2023:** - Developer for 2Lambda.co. Role migrated from just coding stuff to architecting and rewriting the whole software from the ground up using a small modular approach instead of the shaky one-off systems in place. Was later a "nanny for everything". - Did a lot of work to have self-documenting code (i.e. generate documentation from the actual values used in the program, not some comments that always get out of date) - Setting up a knowledge-base (Zettelkasten-approach) to track experiments and hyperlink them to the documentation generated above (and due to Zettelkasten you then get "this thing was used in Experiments a, b and c" automatically - Technologies used: - Clojure - Complete application was written in Clojure - Never touched that language before March - got up to speed in just 2 days, poked the expert on the team detailed questions about the runtime-system after 1 month (like inlining-behavior, allocation-things, etc.) - Emanote - autogenerated & linked documentation of internal modules - integrated with manual written tutorials/notes - crosslinking documentation of experiments with documentation of modules - Web of knowledge - bidirectional discovery of things tried/done in the past to optimize finding of new strategies (meta-optimizing the decisions on what to optimize/try) - Infrastructure - Organized and co-administrated the 4 Root-Servers we had - Set up Kubernetes, Nexus, Docker, Nginx, letsencrypt-certs, dns-entries, etc.. - **Oct. 2018 to Aug. 2021**: - ML-Specialist at [Jobware](https://jobware.de) (Paderborn; german Job-Advertising-Platform) - Extraction/Classification of sentences from JobAds (Requirements, Benefits, Tasks, ...) - Extraction of Information from JobAds (Location of company, Location of workplay, contact-details, application-procedure, etc.) including geocoding of those information (backed by OpenStreetMap) - Embedding of JobAds into a meaningful space (i.e. "get me similar ads. btw. i dislike ad a, b, c"). - Analyse & predict search-queries of users on the webpage and offer likely but distinct queries (i.e. similar when typo or complete different words (synonyms, hyponyms, etc.)) - Technologies used: - Haskell (currently GHC 8.6, soon GHC 8.8) - stack + stackage-lts - fixplate (recursion-schemes-implementation) - many usual technologies like lens, http-simple, mtl, .. - golden-testing via tasty - several inhouse-developments: - templating based on text-replacement via generics (fieldname in Template-Type == variable replaced in template) - activeMQ/Kibana-bridge for logging via hs-stomp - generic internal logging-framework - Python - tensorflow - pytorch - sklearn - nltk - **2013-2018**: - several jobs at my University including - Worked 6 Months in the Workgroup "Theoretical Computer Science" on migrating algorithms to **CUDA** - Tutor "Introduction to Machine Learning" - Was awarded **Tutoring-Award** of the Faculty of Technology for excellent tutoring - Lecture "[[FFPiH|Intermediate Functional Programming in Haskell]]" - Originally developed as student-project in cooperation with Jonas Betzendahl - First held in Summer 2015 - Due to high demand held again in Summer 2016 and 2017 - Was awarded **Lecturer-Award** "silver Chalk" in 2016 - First time that this award was given to students - Many lecturers at our faculty never get any teaching-award until retirement - Development of Pandoc-Filters for effective **generation of lecture-slides** for Mario Botsch (Leader "Workgroup Computer Graphics") using Pandoc & reveal.js - Framework: [https://github.com/mbotsch/revealSlides](https://github.com/mbotsch/revealSlides) - Example: [https://github.com/mbotsch/eLearning](https://github.com/mbotsch/eLearning) - Pandoc-Filters: [https://github.com/mbotsch/pandoc-slide-filter](https://github.com/mbotsch/pandoc-slide-filter)