<p>My multi-year span in the old-fashioned insurance industry has proven to be surprisingly versatile and interesting. Even in centuries-old industries you can get to work with modern tech stack, as long as you are lucky to work under innovative managers and aim to use new technologies for the benefit of others, especially less tech-savvy business users. The fact that the industry did not still transition to the cloud is a blessing in disguise - many of these interesting and varied tasks would have been outsourced to the cloud providers.</p>
<p>So in my <strong>Data Scientist / ML Engineer</strong> hat I contribute to our internal python ML functions library and to fully automated modeling pipelines (Papermill, Scrapbook, MLflow), from data munging, feature engineering (inc. maintaining Feature Stores) and feature selection (e.g. SHAP), training, distributed/multi-device hyperparameters tuning (Optuna, Ray Core/Tune), model reproducibility and automated validation (MLflow) to continuous monitoring of post-production features and models performance (Papermill, MinIO, MLflow, k8s CronJobs). I've created a complete solution for building and productionalizing machine learning models and used it in major areas of the business (such as demand and risk models) in a paradigm shift away from the decades-old (generalized) linear models that still dominate in the insurance industry.</p>
<p>In my <strong>MLOps</strong> hat I develop customized Docker containers for data scientists working on BI and ML models dev (GPU-enabled, Python, R, H2O) with IDEs such as Jupyter Notebook/Lab, RStudio Server, and VSCode Server, specialized ML Ops frameworks such as MLFlow or generic data and file management tools / in-house data lakes (MinIO), and open-source SQL databases (MariaDB/Postgres) and No-SQL ones (Redis/Cassandra). I also develop and maintain in production and staging clusters custom apps with RESTful APIs for production deployment of ML models and their features (using Python, Flask/FastAPI, gunicorn, Redis, MinIO, git, and bash).</p>
<p>In my <strong>DevOps</strong> hat I orchestrate two types of ML containers (stateful for ML models development and stateless for their production deployment) on several hosted and on-prem k8s/OKD servers, automate multi-stage builds, packages/libraries/extensions updates, security scans and staging/prod. deployments using Docker/compose, microk8s, Jenkins pipelines (Groovy, webhooks), OKD builders, bash, python, build and deployment configs and tools like Clair/Grype.</p>
<p>I also perform <strong>linux sysadmin</strong> role for CI/CD and build servers (CentOS/Ubuntu, Docker/compose, MicroK8s, Jenkins, NGINX, Postgres, Clair, Grype) and fulfill an k8s/OKD business admin roles for several clusters (using k8s and OCP/OKD CLIs, YAML configs and bash) in both the data science / ML development and in ML models staging and production environments, servicing over a hundred of data scientists, hundreds of features, and tens of ML models hosted in production.</p>

mirekphd