emanote/content/About/Work.md

82 lines
4.2 KiB
Markdown

# 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)