About
I build efficient, maintainable software for clients. With 15 years of experience spanning backend development, machine learning, DevOps, and robotics, I've led teams from zero to production at both large corporations and startups.
I'm currently building Maestro, an AI-driven language learning platform, and maintain django_magic_authorization, a Django middleware for magic link authentication. I occasionally contribute to open source on Codeberg and GitHub.
I'm German and live in Bologna, Italy. Reach me at mail@johanneswindelen.com.
Projects
AI-driven language learning platform. Structured A1-B2 curriculum, content personalized to each learner's strengths, interests, and life situation.
maestr.appMarkerless camera and lidar calibration software for the automotive and robotics industries. Led architecture, did client-facing scoping, CI/CD setup, and team growth.
Defect triage system for BMW's L3 autonomous driving stack, used in series production. Architected migration from static sites to a Django backend; led a small team under a high-pressure deadline.
End-to-end toolchain:
- in-vehicle defect marking
- 1 TB/day sensor ingestion
- extraction, reprocessing, visualization, and a triage dashboard
synced with teams globally.
AWS infrastructure for hyperparameter tuning of reinforcement learning research workloads. Managed ~1,000 concurrent training instances via AWS Batch and EC2.
Django middleware for simple, user-less authentication via magic links. No passwords, no session complexity - just a signed link.
PyPIGPG Key
Public Key
-----BEGIN PGP PUBLIC KEY BLOCK----- mDMEaYhMJxYJKwYBBAHaRw8BAQdAmHXkU9dGwXA5xXqpkkBiijjMwIONNjNAkCUq xXyLH+G0LUpvaGFubmVzIFdpbmRlbGVuIDxtYWlsQGpvaGFubmVzd2luZGVsZW4u Y29tPoiTBBMWCgA7FiEELlqxTuMxifAq+nl9+4MB8j3JdCAFAmmITCcCGwMFCwkI BwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ+4MB8j3JdCAr+gD/Z67/qHBQZmX3 WMzhwIJLO9VfkGxYcobjilprqtw2fa0BAOugE3SAsAMT1GJikABgZu2rwjfUP4/m 4/nl3eWgmwcHuDgEaYhMJxIKKwYBBAGXVQEFAQEHQCzd/sEYAxqWvft5ZzfB/Vk6 5Eek2bi5ecU2xNvtEdk5AwEIB4h4BBgWCgAgFiEELlqxTuMxifAq+nl9+4MB8j3J dCAFAmmITCcCGwwACgkQ+4MB8j3JdCBObQEAs42RXr1SZchtxjXGO+CCioJ9NOiJ oujSI3sxKXPnv/kA/RHvnCM6/9b6ZBukVQOOmhEe48xhTPk6074BePkRPMYD =wG78 -----END PGP PUBLIC KEY BLOCK-----