[
{
  "model": "resume.person",
  "pk": 1,
  "fields": {
    "name": "Jochen Wersdörfer",
    "slug": "jochen",
    "pronouns": "he | him",
    "tagline": "Freelance Software developer doing mostly data science / machine learning and web development using Django.",
    "about": "As a long term Python developer I've seen a lot of different projects over the years. And I always had a lot of fun building stuff, never thinking of my work just as a job. Nowadays I mostly work with Python, but don't mind using other languages and tools to build complete products.",
    "avatar_url": "https://d2b7dn9rofvhjd.cloudfront.net/images/Jochen_Profil_Dunkel_Quadratisch.original.jpg",
    "avatar_alt": "Just in case you need to steal a picture of Jochen",
    "location_name": "Düsseldorf, Germany, CET",
    "location_url": "https://www.google.com/maps/place/D%C3%BCsseldorf/",
    "email": "jochen-cv@wersdoerfer.de",
    "phone": "+4917623530319",
    "website": "https://wersdoerfer.de/jochen/",
    "github": "https://github.com/ephes/",
    "linkedin": "https://www.linkedin.com/in/jochen-wersdoerfer/",
    "mastodon": "https://wersdoerfer.de/@jochen",
    "skills": "Python,Django,Wagtail,fastAPI,scikit-learn,Pandas,NumPy,keras,PyTorch,DevOps,Ansible,Vue.js,SQL",
    "education_school_name": "Universität Karlsruhe (TH)",
    "education_school_url": "https://www.kit.edu/",
    "education_start": 1997,
    "education_end": 2001
  }
},
{
  "model": "resume.cvtoken",
  "pk": 1,
  "fields": {
    "person": 1,
    "token": "9C7v65JvVujhaAtrkJbh",
    "created": "2024-09-06T14:39:34.090Z",
    "receiver": "asdf"
  }
},
{
  "model": "resume.timeline",
  "pk": 1,
  "fields": {
    "person": 1,
    "title": "Freelance Work Experience",
    "position": 1
  }
},
{
  "model": "resume.timeline",
  "pk": 2,
  "fields": {
    "person": 1,
    "title": "Employed Work Experience",
    "position": 2
  }
},
{
  "model": "resume.timelineentry",
  "pk": 1,
  "fields": {
    "timeline": 1,
    "company_name": "Pixolus",
    "company_url": "https://pixolus.de/en/",
    "role": "Senior Software Developer",
    "position": 0,
    "start": 2024,
    "end": 2024,
    "description": "Single Sign On Integration using <a class=\"underlined\" href=\"https://github.com/grafana/django-saml2-auth\">django-saml2-auth</a> and <a class=\"underlined\" href=\"https://github.com/IdentityPython/pysaml2\">PySAML2</a>.",
    "badges": "remote"
  }
},
{
  "model": "resume.timelineentry",
  "pk": 2,
  "fields": {
    "timeline": 2,
    "company_name": "billiger.de",
    "company_url": "https://billiger.de",
    "role": "Senior Software Developer",
    "position": 1,
    "start": 2005,
    "end": 2011,
    "description": "Backend development and machine learning.",
    "badges": ""
  }
},
{
  "model": "resume.timelineentry",
  "pk": 3,
  "fields": {
    "timeline": 1,
    "company_name": "Systemiq",
    "company_url": "https://www.systemiq.earth/",
    "role": "Senior Software Architect",
    "position": 1,
    "start": 2022,
    "end": 2024,
    "description": "Software architecture for advanced economic models.",
    "badges": "remote"
  }
},
{
  "model": "resume.timelineentry",
  "pk": 4,
  "fields": {
    "timeline": 1,
    "company_name": "Exkulpa",
    "company_url": "https://exkulpa.de/",
    "role": "Senior Software Developer",
    "position": 2,
    "start": 2022,
    "end": 2022,
    "description": "Building a web based system to collect information about hazards in the workplace.",
    "badges": "remote"
  }
},
{
  "model": "resume.timelineentry",
  "pk": 6,
  "fields": {
    "timeline": 1,
    "company_name": "Heinrich Heine Universität Düsseldorf",
    "company_url": "https://www.hhu.de/",
    "role": "Trainer",
    "position": 4,
    "start": 2022,
    "end": 2022,
    "description": "Workshop on how to use PyTest.",
    "badges": ""
  }
},
{
  "model": "resume.timelineentry",
  "pk": 7,
  "fields": {
    "timeline": 1,
    "company_name": "Linuxhotel",
    "company_url": "https://www.linuxhotel.de/",
    "role": "Trainer",
    "position": 5,
    "start": 2021,
    "end": 2022,
    "description": "Introduction to the Python Programming Language.",
    "badges": ""
  }
},
{
  "model": "resume.timelineentry",
  "pk": 8,
  "fields": {
    "timeline": 1,
    "company_name": "RTL",
    "company_url": "https://www.rtl.de/",
    "role": "Senior Software Developer",
    "position": 6,
    "start": 2020,
    "end": 2022,
    "description": "Building a system for context aware advertisement.",
    "badges": "remote"
  }
},
{
  "model": "resume.timelineentry",
  "pk": 9,
  "fields": {
    "timeline": 1,
    "company_name": "Dirk Brennemann",
    "company_url": null,
    "role": "Senior Software Developer",
    "position": 7,
    "start": 2018,
    "end": 2019,
    "description": "Automatic receipt handling.",
    "badges": "remote"
  }
},
{
  "model": "resume.timelineentry",
  "pk": 10,
  "fields": {
    "timeline": 1,
    "company_name": "Trivago",
    "company_url": "https://www.trivago.com/",
    "role": "Product Owner",
    "position": 8,
    "start": 2017,
    "end": 2017,
    "description": "A system for setting hotel room prices automatically based on forecasting.",
    "badges": ""
  }
},
{
  "model": "resume.timelineentry",
  "pk": 11,
  "fields": {
    "timeline": 1,
    "company_name": "Trivago",
    "company_url": "https://www.trivago.com/",
    "role": "Senior Data Scientist",
    "position": 9,
    "start": 2016,
    "end": 2017,
    "description": "Machine learning models for automatic bidding for clicks on hotel rooms.",
    "badges": ""
  }
},
{
  "model": "resume.timelineentry",
  "pk": 12,
  "fields": {
    "timeline": 1,
    "company_name": "Shop.co",
    "company_url": null,
    "role": "Senior Data Scientist",
    "position": 10,
    "start": 2015,
    "end": 2016,
    "description": "Machine learning models for extracting structured data from product detail pages.",
    "badges": ""
  }
},
{
  "model": "resume.timelineentry",
  "pk": 13,
  "fields": {
    "timeline": 1,
    "company_name": "Otto Group",
    "company_url": "https://www.ottogroup.com/",
    "role": "Senior Data Scientist",
    "position": 11,
    "start": 2015,
    "end": 2015,
    "description": "Machine learning models for prediction of user attributes.",
    "badges": ""
  }
},
{
  "model": "resume.timelineentry",
  "pk": 14,
  "fields": {
    "timeline": 1,
    "company_name": "Pixolus",
    "company_url": "https://pixolus.de/",
    "role": "Senior Software Developer",
    "position": 12,
    "start": 2014,
    "end": 2015,
    "description": "Django restframework based API for mobile clients.",
    "badges": ""
  }
},
{
  "model": "resume.timelineentry",
  "pk": 15,
  "fields": {
    "timeline": 1,
    "company_name": "Institut für Nachrichtentechnik RWTH Aachen",
    "company_url": "https://www.ient.rwth-aachen.de/",
    "role": "Senior Software Developer",
    "position": 13,
    "start": 2014,
    "end": 2014,
    "description": "Django restframework based API for mobile clients.",
    "badges": ""
  }
},
{
  "model": "resume.timelineentry",
  "pk": 16,
  "fields": {
    "timeline": 1,
    "company_name": "prinz.de",
    "company_url": "https://prinz.de/",
    "role": "Senior Software Developer",
    "position": 14,
    "start": 2014,
    "end": 2014,
    "description": "Django backend for events website.",
    "badges": "remote"
  }
},
{
  "model": "resume.timelineentry",
  "pk": 17,
  "fields": {
    "timeline": 2,
    "company_name": "web.de",
    "company_url": "https://web.de",
    "role": "System Administrator / Systems Programmer",
    "position": 0,
    "start": 2001,
    "end": 2004,
    "description": "Lifecycle management, monitoring and deployment.",
    "badges": ""
  }
},
{
  "model": "resume.project",
  "pk": 2,
  "fields": {
    "person": 1,
    "title": "Python Podcast",
    "url": "https://python-podcast.de/show/",
    "description": "A popular german speaking podcast about the Python Programming Language. I'm the host and producer of the show together with Dominik Geldmacher.",
    "position": 1,
    "badges": "Side Project,Python,Podcast"
  }
},
{
  "model": "resume.project",
  "pk": 3,
  "fields": {
    "person": 1,
    "title": "django-cast",
    "url": "https://github.com/ephes/django-cast",
    "description": "A podcast hosting platform built with Django and Wagtail. It's used to host the Python Podcast. I'm also proud of it's responsive image capabilities.",
    "position": 2,
    "badges": "Side Project,Python,Django,Wagtail"
  }
},
{
  "model": "resume.project",
  "pk": 4,
  "fields": {
    "person": 1,
    "title": "Weeknotes",
    "url": "https://wersdoerfer.de/blogs/ephes_blog/?tag_facets=week",
    "description": "Since 2021 I write weeknotes to document my work and life. It's a great way to reflect on what I've done and to keep track of my progress.",
    "position": 3,
    "badges": "Side Project,Writing"
  }
},
{
  "model": "resume.project",
  "pk": 5,
  "fields": {
    "person": 1,
    "title": "PlastInvest",
    "url": "https://plastinvest.global/",
    "description": "PlastInvest is a tool for governments, providing quantitative and qualitative insights into the investments needed to deliver national action plans for reducing plastic waste and pollution.",
    "position": 4,
    "badges": "Systemiq,Python,Django,htmx"
  }
},
{
  "model": "resume.project",
  "pk": 6,
  "fields": {
    "person": 1,
    "title": "Data Science Tutorial",
    "url": "https://github.com/ephes/data_science_tutorial",
    "description": "This tutorial covers topics that are relevant or interesting for me for 'some kind of reason 😄. Have fun!",
    "position": 5,
    "badges": "Side Project,Python,nbdev,Jupyter,Pandas,Numpy,scikit-learn,keras"
  }
},
{
  "model": "resume.project",
  "pk": 7,
  "fields": {
    "person": 1,
    "title": "kptncook",
    "url": "https://github.com/ephes/kptncook",
    "description": "A small command line client for downloading KptnCook recipes.",
    "position": 0,
    "badges": "Side Project,pydantic,httpx"
  }
},
{
  "model": "resume.project",
  "pk": 8,
  "fields": {
    "person": 1,
    "title": "PlasticIQ",
    "url": "https://plasticiq.global/",
    "description": "Plastic IQ is a data-driven digital platform to help companies end plastic waste.",
    "position": 7,
    "badges": "Systemiq,Python,Django,htmx"
  }
},
{
  "model": "resume.project",
  "pk": 9,
  "fields": {
    "person": 1,
    "title": "fastdeploy",
    "url": "https://github.com/ephes/fastdeploy",
    "description": "A web backend for deploying projects automatically and showing realtime progress to the user.",
    "position": 8,
    "badges": "Side Project,Python,fastAPI,sqlalchemy,websockets,Vue.js"
  }
},
{
  "model": "resume.project",
  "pk": 10,
  "fields": {
    "person": 1,
    "title": "Serving Files with Django",
    "url": "https://wersdoerfer.de/blogs/ephes_blog/djan",
    "description": "Exploring different ways to serve files with Django. Wrote a benchmarking tool to compare different methods and held a talk at DjangoCon Europe 2021 about the results.",
    "position": 9,
    "badges": "Side Project,Python,Django,async"
  }
},
{
  "model": "resume.project",
  "pk": 11,
  "fields": {
    "person": 1,
    "title": "cast-vue",
    "url": "https://github.com/ephes/cast-vue",
    "description": "A Vue.js frontend for django-cast",
    "position": 10,
    "badges": "Side Project,Vue.js,Typescript"
  }
},
{
  "model": "resume.project",
  "pk": 12,
  "fields": {
    "person": 1,
    "title": "Django Async",
    "url": "https://wersdoerfer.de/blogs/ephes_blog/django-",
    "description": "Wrote a longish blog post about the new async capabilities in Django 3.1. A paper version of this article was also published in the german entwickler.de magazine.",
    "position": 11,
    "badges": "Side Project,Vue.js,Typescript"
  }
},
{
  "model": "resume.project",
  "pk": 13,
  "fields": {
    "person": 1,
    "title": "Konektom",
    "url": "https://konektom.org/",
    "description": "Konektom.org is a collaborative bookmarking service.",
    "position": 12,
    "badges": "Side Project,Python,Django"
  }
}
]
