IT Platform Engineer for MLOps (Machine Learning) Area
Copenhagen, Capital Region of Denmark, Denmark
Sep 22, 2025
Andre pengeinstitutters aktiviteter
Dette job er ikke blevet analyseret af vores AI-vurderingssystem. Klik på knappen nedenfor for at få en AI-drevet match score baseret på dine præferencer.
# Job Skill Enhancement System
## CORE INSTRUCTION:
You are an AI that extracts and identifies coding languages and frameworks from job descriptions. Your goal is to find ALL relevant technical skills mentioned in the job posting, even if they're mentioned in different ways or aliases.
## INPUT DATA:
{
"job": {"job_id":5091,"title":"IT Platform Engineer for MLOps (Machine Learning) Area","company_name":"Danske Bank","description":"About the job\n\nJob Description\n\nIn Data Science Platform Squad, we Build and maintain a generic, scalable and govern platform for Data Science model of online models to enable an automated, compliant and efficient Model Life Cycle process. We use technologies like Open-Shift to build Containerized platform for Hosting Model execution & Deployment.\n\nOur squad is responsible for hosting Python statistical and machine learning models, primarily serving the Data Science communities who develop these models on behalf of various enterprise domains within the bank. We manage AAPF (Advanced Analytical Platform for Fraud), which works alongside CMDEP (Containerized Management Deployment and Execution platform) to execute machine learning models for scoring payment transactions for fraud, including e-banking domestic\/international and District International models deployed in CMDEP. Additionally, we are tasked with transforming the current On-Prem infrastructure into a Cloud-Native platform.\n\nAs a MLOps IT Platform Engineer, you will work closely with the Product Owner and Chapter Lead in a “2 in a box” model, using agile methodologies. You will be responsible to develop and maintain scalable ML pipelines on futured MLOps platform built on AWS and Databricks. You will be tasked with ensuring seamless and automated transition of models from development to production using CICD workflows, implement the infrastructure as code. You will ensure that our machine learning models operate reliably, efficiently and at scale.\n\nYou will:\n\n\nImplement automated pipelines for model training, validation and inference\nBuild and maintain CI\/CD workflows using Github actions to ensure model code is versioned and seamlessly deployed to production\nUtilize tools like MLflow for model tracking, versioning and deployment\nUse terraform to provision and manage scalable secure infrastructure required for ML workloads\nLeverage docker containers to build, deploy and manage containerized ML models\n\n\nAbout you:\n\n\nMinimum of 2 years of practical experience in MLOps platform to build model development deployment, execution and maintenance of ML pipelines\nHands-on experience in – Databricks asset bundles, Databricks MLFlow, Databricks MLOps stack customization, GitHub Actions for Databricks model deployments, Data bricks Unity Catalog\nExperience in Python, Pyspark\nExperience in Github tools Terraform and container orchestration, YAML\nUnderstanding of Leveraging docker containers to build, deploy and manage containerized ML models\nProblem-solving and debugging skills\nUpper-Intermediate English skills\n\n\n“We believe that the most valuable asset is human potential.”\n\nWe offer:\n\nIf you are hired in Lithuania, the applicable salary range will be from 3280 EUR to 4920 EUR gross (based on your competencies relevant for the job).\n\nAdditionally, each Danske Bank employee receives employee benefits package which includes:\n\n\nGrowth opportunities: professional & supportive team, e-learnings, numerous development programs; (incl. professional certificates); 100+ professions for internal mobility opportunities.\nHealth & Well-being: a diverse, inclusive, work & life balance work environment; additional health insurance; mental well-being practices; partial psychologist counselling compensation; silence and sleep zones at the office; game rooms.\nHybrid working conditions: Work from home up to two days a week; home office budget (after the probation period); modern Danske Campus workplace developed with anthropologist for the best employee experience.\nAdditional days of leave: for rest, health, volunteering, exams in higher education institutions, and other important activities. Moreover, for seniority with Danske Bank.\nMonetary compensation package: accidents & critical diseases insurance; financial support in case of unfortunate events, travel insurance; IIIrd Pillar Pension Fund contribution.\n\n\nSee all the benefits HERE .\n\nYour title in job contract will be IT Platform Engineer.\n\nIf you're interested in this role and joining my team, feel free to contact me - Dinesh Chaudhari via LinkedIn or email dinc@danskebank.dk , and I will answer your questions!\n\nAbout Us\n\nDanske Bank is a Nordic bank with bridges to the world around us. For 150 years, we have supported people and businesses in releasing their potential. A career with us is an opportunity to join a community of 22,000 colleagues in a culture where we are committed to Teaming Up, Owning It and Being Open. Together, we are on a journey to transform Danske Bank into a better bank. For our customers, our employees and the societies around us.","brief_summary_of_job":null,"existing_skills_from_job":["Hybrid","Full-time","English","Machine Learning","Amazon Web Services (AWS)","Continuous Integration and Continuous Delivery (CI\/CD)","Data Science","Python (Programming Language)","Cloud Computing","HTML","Model Development","Problem Solving","Python","Git","GitHub","Docker","CI\/CD","AWS","Terraform"],"existing_skills_from_database":[]},
"coding_categories": {"languages":["Bash","C","C#","C++","CSS","Clojure","Dart","Elixir","Go","Groovy","Haskell","HTML","Java","JavaScript","Julia","Kotlin","Lua","MATLAB","Objective-C","Perl","PHP","PowerShell","Python","R","Ruby","Rust","Sass","Scala","Swift","TypeScript"],"frameworks":[".NET","Angular","Apache Spark","ASP.NET","Backbone.js","Bootstrap","CodeIgniter","Django","Ember.js","Express","FastAPI","Flask","Flutter","Hadoop","Ionic","jQuery","Laravel","Livewire","Meteor","NestJS","Next.js","Node.js","Nuxt.js","Phoenix","PHPUnit","PyTorch","React","React Native","Ruby on Rails","Spring Boot","Svelte","Symfony","Tailwind CSS","TensorFlow","Vue.js","Xamarin","Alpine.js","Filament","WordPress"],"databases":["MySQL","PostgreSQL","Redis","MongoDB","DynamoDB","MariaDB","NoSQL","Oracle","BigQuery","Elasticsearch","SQL","SQL Server","SQLite","Cassandra","CouchDB","Neo4j","InfluxDB","CockroachDB"],"tools":["Git","GitHub","GitLab","Bitbucket","Docker","Kubernetes","CI\/CD","Jenkins","Kafka","RabbitMQ","Amazon SQS","AMQP","PubSub","REST API","RESTful APIs","GraphQL","AWS","Azure","GCP","Terraform","Ansible","Puppet","Chef","Vagrant","Vault","Consul","Prometheus","Grafana","ELK Stack","Splunk"],"skills":["English","Danish","Communication","Full-stack development","Back-end development","Front-end development","Cloud computing","DevOps","Microsoft Excel","PowerBI","Power Platform","Agile","Scrum","Problem-solving","Team collaboration","Physical presence","Remote work","Hybrid work"],"colors":{"languages":"blue","frameworks":"purple","databases":"orange","tools":"indigo"}},
"skill_aliases": {"bash":"Bash","c":"C","c plus plus":"C++","C plus plus":"C++","c sharp":"C#","C sharp":"C#","c#":"C#","c++":"C++","clojure":"Clojure","cpp":"C++","dart":"Dart","elixir":"Elixir","go":"Go","golang":"Go","Golang":"Go","groovy":"Groovy","haskell":"Haskell","java":"Java","java script":"JavaScript","Java script":"JavaScript","javascript":"JavaScript","Javascript":"JavaScript","js":"JavaScript","JS":"JavaScript","es5":"JavaScript","ES5":"JavaScript","es6":"JavaScript","ES6":"JavaScript","julia":"Julia","kotlin":"Kotlin","lua":"Lua","matlab":"MATLAB","Matlab":"MATLAB","objective c":"Objective-C","Objective C":"Objective-C","objective-c":"Objective-C","objc":"Objective-C","ObjC":"Objective-C","obj-c":"Objective-C","Obj-C":"Objective-C","perl":"Perl","php":"PHP","Php":"PHP","powershell":"PowerShell","Power Shell":"PowerShell","python":"Python","py":"Python","Py":"Python","phyton":"Python","r":"R","ruby":"Ruby","rust":"Rust","scala":"Scala","swift":"Swift","typescript":"TypeScript","Typescript":"TypeScript","ts":"TypeScript","TS":"TypeScript","mysql":"MySQL","postgresql":"PostgreSQL","postgres":"PostgreSQL","mongodb":"MongoDB","mongo":"MongoDB","redis":"Redis","sqlite":"SQLite","oracle":"Oracle","mssql":"SQL Server","sql server":"SQL Server","dynamodb":"DynamoDB","dynamo db":"DynamoDB","mariadb":"MariaDB","maria db":"MariaDB","nosql":"NoSQL","no sql":"NoSQL","bigquery":"BigQuery","big query":"BigQuery","elasticsearch":"Elasticsearch","elastic search":"Elasticsearch","cassandra":"Cassandra","couchdb":"CouchDB","couch db":"CouchDB","neo4j":"Neo4j","neo 4j":"Neo4j","influxdb":"InfluxDB","influx db":"InfluxDB","cockroachdb":"CockroachDB","cockroach db":"CockroachDB","aws":"AWS","amazon web services":"AWS","azure":"Azure","microsoft azure":"Azure","gcp":"GCP","google cloud platform":"GCP","google cloud":"GCP",".Net":".NET","angular":"Angular","angular js":"Angular","Angular js":"Angular","angularjs":"Angular","AngularJS":"Angular","apache spark":"Apache Spark","asp net":".NET","ASP net":".NET","asp.net":"ASP.NET","ASP.NET":".NET","asp.net core":".NET","ASP.NET Core":".NET","backbone":"Backbone.js","BackboneJS":"Backbone.js","backbone js":"Backbone.js","backbonejs":"Backbone.js","bootstrap":"Bootstrap","Bootstrap framework":"Bootstrap","twitter bootstrap":"Bootstrap","Twitter Bootstrap":"Bootstrap","code igniter":"CodeIgniter","codeigniter":"CodeIgniter","django":"Django","ember":"Ember.js","ember js":"Ember.js","emberjs":"Ember.js","EmberJS":"Ember.js","express":"Express","express.js":"Express","Express.js":"Express","expressjs":"Express","ExpressJS":"Express","fast api":"FastAPI","Fast api":"FastAPI","fastapi":"FastAPI","flask":"Flask","flutter":"Flutter","hadoop":"Hadoop","Hadoop":"Hadoop","ionic":"Ionic","Ionic framework":"Ionic","ionic framework":"Ionic","jquery":"jQuery","JQuery":"jQuery","JQUERY":"jQuery","laravel":"Laravel","meteor":"Meteor","meteor js":"Meteor","meteorjs":"Meteor","MeteorJS":"Meteor","nestjs":"NestJS","nest js":"NestJS","Nest JS":"NestJS","Nestjs":"NestJS","next js":"Next.js","Next js":"Next.js","next.js":"Next.js","nextjs":"Next.js","NextJS":"Next.js","node":"Node.js","Node":"Node.js","node.js":"Node.js","nodejs":"Node.js","NodeJS":"Node.js","nuxt js":"Nuxt.js","Nuxt js":"Nuxt.js","nuxt.js":"Nuxt.js","nuxtjs":"Nuxt.js","NuxtJS":"Nuxt.js","phoenix":"Phoenix","Phoenix framework":"Phoenix","pytorch":"PyTorch","Pytorch":"PyTorch","torch":"PyTorch","Torch":"PyTorch","react":"React","react.js":"React","React.js":"React","reactjs":"React","ReactJS":"React","react native":"React Native","ReactNative":"React Native","reactnative":"React Native","rn":"React Native","RN":"React Native","rails":"Ruby on Rails","Rails":"Ruby on Rails","ror":"Ruby on Rails","ROR":"Ruby on Rails","ruby on rails":"Ruby on Rails","Ruby On Rails":"Ruby on Rails","spark":"Apache Spark","Spark":"Apache Spark","spring":"Spring Boot","Spring":"Spring Boot","spring boot":"Spring Boot","Spring Boot":"Spring Boot","spring framework":"Spring Boot","Spring Framework":"Spring Boot","SpringBoot":"Spring Boot","springboot":"Spring Boot","svelte":"Svelte","symfony":"Symfony","tailwind":"Tailwind CSS","Tailwind":"Tailwind CSS","tailwind css":"Tailwind CSS","Tailwind Css":"Tailwind CSS","tailwindcss":"Tailwind CSS","TailwindCSS":"Tailwind CSS","tensorflow":"TensorFlow","Tensorflow":"TensorFlow","tensor flow":"TensorFlow","Vue":"Vue.js","vue":"Vue.js","vue js":"Vue.js","vue.js":"Vue.js","vuejs":"Vue.js","VueJS":"Vue.js","xamarin":"Xamarin","Xamarin Forms":"Xamarin","Xamarin.forms":"Xamarin","livewire":"Livewire","phpunit":"PHPUnit","alpine":"Alpine.js","alpine js":"Alpine.js","alpinejs":"Alpine.js","filament":"Filament","docker":"Docker","kubernetes":"Kubernetes","k8s":"Kubernetes","github":"GitHub","gitlab":"GitLab","bitbucket":"Bitbucket","terraform":"Terraform","puppet":"Puppet","chef":"Chef","git":"Git","jenkins":"Jenkins","kafka":"Kafka","rabbitmq":"RabbitMQ","amazon sqs":"Amazon SQS","amqp":"AMQP","pubsub":"PubSub","rest api":"REST API","restful api":"RESTful APIs","restful apis":"RESTful APIs","graphql":"GraphQL","ansible":"Ansible","vagrant":"Vagrant","vault":"Vault","consul":"Consul","prometheus":"Prometheus","grafana":"Grafana","elk stack":"ELK Stack","splunk":"Splunk","scrum":"Scrum","agile":"Agile","kanban":"Kanban","devops":"DevOps","ci\/cd":"CI\/CD","tdd":"TDD","bdd":"BDD","linux":"Linux","windows":"Windows","macos":"macOS","ubuntu":"Ubuntu","centos":"CentOS","debian":"Debian","junit":"JUnit","pytest":"PyTest","jest":"Jest","mocha":"Mocha","cypress":"Cypress","selenium":"Selenium","html":"HTML","HTML":"HTML","html5":"HTML","HTML5":"HTML","css":"CSS","CSS":"CSS","css3":"CSS","CSS3":"CSS","sass":"Sass","scss":"Sass","SCSS":"Sass","less":"Less","LESS":"Less","webpack":"Webpack","gulp":"Gulp","npm":"npm","yarn":"Yarn","sql":"SQL","full time":"Fuldtid","full-time":"Fuldtid","fuldtid":"Fuldtid","part time":"Deltid","part-time":"Deltid","deltid":"Deltid","contract":"Kontrakt","kontrakt":"Kontrakt","remote":"Fjernarbejde","fjernarbejde":"Fjernarbejde","hybrid":"Hybridarbejde","hybridarbejde":"Hybridarbejde","on-site":"Fysisk tilstedeværelse","onsite":"Fysisk tilstedeværelse","fysisk tilstedeværelse":"Fysisk tilstedeværelse"}
}
## TASK:
1. **Extract ALL coding languages and frameworks** mentioned in the job description
2. **Use the skill_aliases mapping** to normalize skill names (e.g., "JS" → "JavaScript", "React.js" → "React")
3. **Only include skills from the coding_categories** (languages and frameworks)
4. **Avoid duplicates** - if "JavaScript" and "JS" are both mentioned, only include "JavaScript"
5. **Be thorough** - look for skills mentioned in:
- Job title
- Job description
- Brief summary
- Requirements sections
- Nice-to-have sections
## SKILL CATEGORIES TO EXTRACT:
- **Languages**: Programming languages (PHP, Python, JavaScript, Java, C#, Go, Rust, etc.)
- **Frameworks**: Web frameworks and libraries (Laravel, React, Vue.js, Angular, Django, Spring Boot, etc.)
- **Databases**: Database systems and data stores (MySQL, PostgreSQL, Redis, MongoDB, DynamoDB, etc.)
- **Tools**: Development tools and infrastructure (Git, Docker, AWS, CI/CD, Jenkins, Kafka, etc.)
## EXCLUSION RULES:
- Do NOT extract general skills (communication, languages like English, etc.)
- Do NOT extract business skills (Excel, PowerBI for non-technical roles)
- Do NOT extract work arrangements (remote, physical presence)
- Do NOT include methodologies (Agile, Scrum, etc.) unless specifically technical
- Do NOT include skills already in existing_skills_from_database
## OUTPUT FORMAT:
Return ONLY valid JSON in this exact structure:
{
"job_id": <integer>,
"extracted_skills": [
{
"skill_name": "<normalized_skill_name>",
"category": "<languages|frameworks|databases|tools>",
"confidence": <integer 0-100>,
"mentioned_as": ["<original_mention_1>", "<original_mention_2>"],
"context": "<brief_context_where_found>"
}
],
"reasoning": {
"total_skills_found": <integer>,
"skills_by_category": {
"languages": ["<skill1>", "<skill2>"],
"frameworks": ["<skill1>", "<skill2>"],
"databases": ["<skill1>", "<skill2>"],
"tools": ["<skill1>", "<skill2>"]
},
"duplicates_removed": ["<original_mention> → <normalized_name>"],
"excluded_skills": ["<skill>", "<reason>"]
},
"confidence": <integer 0-100>
}
Return nothing outside the JSON object.
{
"job_id": 5091,
"extracted_skills": [
{
"skill_name": "Python",
"category": "languages",
"confidence": 100,
"mentioned_as": ["Python", "python"],
"context": "Hands-on experience in – Databricks asset bundles, Databricks MLFlow, Databricks MLOps stack customization"
},
{
"skill_name": "Pyspark",
"category": "languages",
"confidence": 100,
"mentioned_as": ["Pyspark"],
"context": "Hands-on experience in – Databricks asset bundles, Databricks MLFlow, Databricks MLOps stack customization"
},
{
"skill_name": "AWS",
"category": "tools",
"confidence": 100,
"mentioned_as": ["AWS", "Amazon Web Services"],
"context": "MLOps platform built on AWS"
},
{
"skill_name": "Databricks",
"category": "tools",
"confidence": 100,
"mentioned_as": ["Databricks"],
"context": "develop and maintain scalable ML pipelines on futured MLOps platform built on AWS and Databricks"
},
{
"skill_name": "GitHub",
"category": "tools",
"confidence": 100,
"mentioned_as": ["GitHub", "Github"],
"context": "Build and maintain CI/CD workflows using Github actions"
},
{
"skill_name": "Terraform",
"category": "tools",
"confidence": 100,
"mentioned_as": ["terraform"],
"context": "Use terraform to provision and manage scalable secure infrastructure required for ML workloads"
},
{
"skill_name": "Docker",
"category": "tools",
"confidence": 100,
"mentioned_as": ["docker"],
"context": "Leverage docker containers to build, deploy and manage containerized ML models"
},
{
"skill_name": "CI/CD",
"category": "tools",
"confidence": 100,
"mentioned_as": ["CICD", "CI/CD"],
"context": "ensure seamless and automated transition of models from development to production using CICD workflows"
}
],
"reasoning": {
"total_skills_found": 7,
"skills_by_category": {
"languages": ["Python", "Pyspark"],
"frameworks": [],
"databases": [],
"tools": ["AWS", "Databricks", "GitHub", "Terraform", "Docker", "CI/CD"]
},
"duplicates_removed": [],
"excluded_skills": []
},
"confidence": 100
}
Brug avanceret AI (GPT-4o) til at generere en personaliseret ansøgning på dansk til denne jobansøgning. Brevet vil være skræddersyet til din profil, de specifikke jobkrav og omfattende virksomhedsinformation for maksimal effekt.
About the job
Job Description
In Data Science Platform Squad, we Build and maintain a generic, scalable and govern platform for Data Science model of online models to enable an automated, compliant and efficient Model Life Cycle process. We use technologies like Open-Shift to build Containerized platform for Hosting Model execution & Deployment.
Our squad is responsible for hosting Python statistical and machine learning models, primarily serving the Data Science communities who develop these models on behalf of various enterprise domains within the bank. We manage AAPF (Advanced Analytical Platform for Fraud), which works alongside CMDEP (Containerized Management Deployment and Execution platform) to execute machine learning models for scoring payment transactions for fraud, including e-banking domestic/international and District International models deployed in CMDEP. Additionally, we are tasked with transforming the current On-Prem infrastructure into a Cloud-Native platform.
As a MLOps IT Platform Engineer, you will work closely with the Product Owner and Chapter Lead in a “2 in a box” model, using agile methodologies. You will be responsible to develop and maintain scalable ML pipelines on futured MLOps platform built on AWS and Databricks. You will be tasked with ensuring seamless and automated transition of models from development to production using CICD workflows, implement the infrastructure as code. You will ensure that our machine learning models operate reliably, efficiently and at scale.
You will:
Implement automated pipelines for model training, validation and inference
Build and maintain CI/CD workflows using Github actions to ensure model code is versioned and seamlessly deployed to production
Utilize tools like MLflow for model tracking, versioning and deployment
Use terraform to provision and manage scalable secure infrastructure required for ML workloads
Leverage docker containers to build, deploy and manage containerized ML models
About you:
Minimum of 2 years of practical experience in MLOps platform to build model development deployment, execution and maintenance of ML pipelines
Hands-on experience in – Databricks asset bundles, Databricks MLFlow, Databricks MLOps stack customization, GitHub Actions for Databricks model deployments, Data bricks Unity Catalog
Experience in Python, Pyspark
Experience in Github tools Terraform and container orchestration, YAML
Understanding of Leveraging docker containers to build, deploy and manage containerized ML models
Problem-solving and debugging skills
Upper-Intermediate English skills
“We believe that the most valuable asset is human potential.”
We offer:
If you are hired in Lithuania, the applicable salary range will be from 3280 EUR to 4920 EUR gross (based on your competencies relevant for the job).
Additionally, each Danske Bank employee receives employee benefits package which includes:
Growth opportunities: professional & supportive team, e-learnings, numerous development programs; (incl. professional certificates); 100+ professions for internal mobility opportunities.
Health & Well-being: a diverse, inclusive, work & life balance work environment; additional health insurance; mental well-being practices; partial psychologist counselling compensation; silence and sleep zones at the office; game rooms.
Hybrid working conditions: Work from home up to two days a week; home office budget (after the probation period); modern Danske Campus workplace developed with anthropologist for the best employee experience.
Additional days of leave: for rest, health, volunteering, exams in higher education institutions, and other important activities. Moreover, for seniority with Danske Bank.
Monetary compensation package: accidents & critical diseases insurance; financial support in case of unfortunate events, travel insurance; IIIrd Pillar Pension Fund contribution.
See all the benefits HERE .
Your title in job contract will be IT Platform Engineer.
If you're interested in this role and joining my team, feel free to contact me - Dinesh Chaudhari via LinkedIn or email dinc@danskebank.dk , and I will answer your questions!
About Us
Danske Bank is a Nordic bank with bridges to the world around us. For 150 years, we have supported people and businesses in releasing their potential. A career with us is an opportunity to join a community of 22,000 colleagues in a culture where we are committed to Teaming Up, Owning It and Being Open. Together, we are on a journey to transform Danske Bank into a better bank. For our customers, our employees and the societies around us.