Laravel
Laravel
Senior Python Backend Engineer - DTU Wind HTML – DTU - Techn
Bliv en del af DTU - Technical University of Denmark som senior python backend engineer - dtu wind. Bidrag med HTML, Python, FastAPI og nyd en fleksibel arbejds
Jobinformation
Titel

Senior Python Backend Engineer - DTU Wind

Lokation

Roskilde, Region Sjælland, Danmark

Opslået Dato

Sep 18, 2025

Påkrævede Færdigheder
Full Time
Programmeringssprog
HTML
Python
2 sprog
Frameworks & Biblioteker
FastAPI
Flask
2 frameworks
Databaser & Datalagring
PostgreSQL
1 databaser
Udviklingsværktøjer & Infrastruktur
CI/CD
Docker
2 værktøjer
Total: 7 krav listet (2 sprog, 2 frameworks, 1 databaser, 2 værktøjer, 0 andre færdigheder)
Virksomhedsinformation
Jobvurdering
Job Ikke Vurderet Endnu

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.

Kompetenceudvikling
Kompetenceudvikling
Completed
100% Confidence
Uddragne Færdigheder (6)
Python
Nævnt som: Python
Experience developing backend web applications in Python
languages
100%
FastAPI
Nævnt som: FastAPI
Experience developing backend web applications in Python, id...
frameworks
100%
Flask
Nævnt som: Flask
Experience developing backend web applications in Python, id...
frameworks
100%
PostgreSQL
Nævnt som: PostgreSQL
Knowledge of database design, preferably with relational or...
databases
100%
CI/CD
Nævnt som: CI/CD
Understanding of modern CI/CD practices and Git-based develo...
tools
100%
Docker
Nævnt som: Docker
Comfort working in Linux environments and with Docker-based...
tools
100%
Analyse Detaljer
Totale Færdigheder Fundet: 6
Færdigheder efter Kategori:
languages: 1 færdigheder
frameworks: 2 færdigheder
databases: 1 færdigheder
tools: 2 færdigheder
Forbedret den: October 6, 2025 at 11:22 AM Omkostning: $0.0075
🔍 Debug Information (Klik for at udvide)
Fuld AI Prompt:
# 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":3409,"title":"Senior Python Backend Engineer - DTU Wind","company_name":"DTU - Technical University of Denmark","description":"Job Description\n\nWe are looking for a Senior Python Backend Engineer to join our dynamic and growing software development team in the Wind and Energy Systems Division at DTU.\n\nAs our team expands to support an increasing number of high-impact research tools and data services, we are looking for a senior developer to help guide technical decisions, review and structure code, and collaborate with stakeholders to improve the reliability and maintainability of our platforms.\n\nYou will work closely with the Tech Lead to ensure our codebases evolve toward modern best practices while continuing to support important international research collaborations, , with digitalization being evermore the means projects outcomes are disseminated.\n\nThe job\n\nYou will be part of a multidisciplinary software development team responsible for platforms such as the widely used Global Wind Atlas, New European Wind Atlas, and web applications supporting research models like CorRES, WAsP, and Aquada. These tools are widely used by researchers, policymakers, and industry stakeholders to support evidence-based decision making in renewable energy.\n\nAs a senior team member, your responsibilities will include:\n\n\nReviewing merge requests and helping maintain code quality across services\nCollaborating with the tech lead on system architecture and design decisions\nCreating and maintaining internal libraries and shared tooling\nAssisting in security improvements, dependency management, and code modernization\nContributing to feature development and bug fixes in backend services\nSupporting communication with researchers and stakeholders to clarify technical needs\nMentoring junior developers and contributing to team practices and documentation\nOccasionally assisting with frontend integrations (HTML templates \/ Unpoly)\n\n\nThis is a backend-focused position, working primarily in Python within a modern stack that includes asynchronous services, scientific data formats, and containerized infrastructure.\n\nOur expectations of you\n\nWe are looking for someone with strong backend development experience and a collaborative mindset. You don’t need to tick every box, but we expect you to bring solid technical skills and a willingness to work with both engineers and researchers in a scientific environment.\n\nWe expect several of the following competencies:\n\n\nExperience developing backend web applications in Python, ideally using FastAPI, Flask, or similar\nFamiliarity with asynchronous workflows and task queues (e.g., Celery)\nKnowledge of database design, preferably with relational or graph-relational models (PostgreSQL, EdgeDB\/Gel, etc.)\nExperience working with scientific or geospatial data formats (e.g., GeoTIFF, NetCDF, Zarr)\nUnderstanding of modern CI\/CD practices and Git-based development workflows\nComfort working in Linux environments and with Docker-based infrastructure\nAbility to read, review, and improve code written by others\nStrong communication skills and the ability to work with domain experts from different fields\n\n\nWe also value:\n\n\nExperience with authentication\/authorization flows (e.g., OAuth2, Keycloak)\nAn interest in scientific computing, open data, and climate\/energy research\nA proactive approach to improving development workflows and team practices\nA collaborative mindset and willingness to mentor or support peers\n\n\nIf you’re excited about building tools that have real-world impact and are eager to contribute to a high-functioning team, we encourage you to apply — even if you don’t meet every listed qualification. \n\nWhat We Offer In Return\n\nWe offer a meaningful and technically engaging role where your work directly supports the global green transition. You will help build and maintain scientific web applications used by researchers, industry experts, and policymakers worldwide.\n\nYou’ll join a small, skilled, and collaborative development team with opportunities to learn new technologies, contribute to architectural decisions, and shape internal tools and libraries. While our major platforms have well-established tech stacks, we value open-minded discussions about new ideas and improvements.\n\nDTU Wind and Energy Systems is a world leader in wind energy research, and we work closely with some of the most recognized experts in the field. Our department provides a stable and flexible working environment, with room for both professional growth and technical exploration.\n\nYou will become part of an international workplace focused on research, teaching, innovation, and scientific advice for the benefit of society. Skills development is a priority at DTU, and we support our staff in growing their expertise over time.\n\nSalary and appointment terms\n\nThe position will have the title of either Senior Development Engineer or Special Consultant. The appointment will be based on the collective agreement with the Danish Confederation of Professional Associations (AC), or in accordance with the OAO-S Joint Agreement and the organization agreement for IT employees (Prosa) in the service of the state.\n\nThe position is a full-time position, located at DTU's Risø campus. There is flexibility to work from home up to two days a week. The starting date is 1 January 2026, or by mutual agreement.\n\nApplication and contact\n\nPlease submit your online application no later than 15 October 2025. Open the “Apply now” link, fill out the form and attach your motivated application, CV and exam certificates.\n\nIf you would like additional information about the position, please contact Technical Lead for Wind Resource Assessment Applications, Neil Davis on +45 93 51 13 11 or neda at dtu dot dk.\n\nApplications received after the deadline will not be considered.\n\nAll interested candidates irrespective of age, gender, disability, race, religion or ethnic background are encouraged to apply. As DTU works with research in critical technology, which is subject to special rules for security and export control, open-source background checks may be conducted on qualified candidates for the position.\n\nDTU Wind and Energy Systems has led wind energy research, teaching, and commercial activities since the 1970s. With approximately 400 staff, it is the world’s largest public research institute dedicated to wind and energy systems transition. Internationally recognized for pioneering wind technology and smart energy systems, the department is structured into four divisions: Materials and Components, Wind Turbine Technology, Wind Energy Systems, and Power and Energy Systems. In close collaboration with industry and public authorities, DTU Wind and Energy Systems develops cutting-edge solutions for a sustainable energy future and trains the next generation of engineers.\n\nAbout the Division: The Wind Energy Systems division focuses the development of a chain of systems that connects Atmosphere-Plant-Grid-Society. The division is home to several large software projects and datasets that help to disseminate this research to the industry and public. \n\nTechnology for people\n\nDTU develops technology for people. With our international elite research and study programmes, we are helping to create a better world and to solve the global challenges formulated in the UN’s 17 Sustainable Development Goals. Hans Christian Ørsted founded DTU in 1829 with a clear mission to develop and create value using science and engineering to benefit society. That mission lives on today. DTU has 13,500 students and 6,000 employees. We work in an international atmosphere and have an inclusive, evolving, and informal working environment. DTU has campuses in all parts of Denmark and in Greenland, and we collaborate with the best universities around the world.","brief_summary_of_job":null,"existing_skills_from_job":["HTML","Python","FastAPI","PostgreSQL","CI\/CD"],"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.
Fuld AI Svar:
{
  "job_id": 3409,
  "extracted_skills": [
    {
      "skill_name": "Python",
      "category": "languages",
      "confidence": 100,
      "mentioned_as": ["Python"],
      "context": "Experience developing backend web applications in Python"
    },
    {
      "skill_name": "FastAPI",
      "category": "frameworks",
      "confidence": 100,
      "mentioned_as": ["FastAPI"],
      "context": "Experience developing backend web applications in Python, ideally using FastAPI"
    },
    {
      "skill_name": "Flask",
      "category": "frameworks",
      "confidence": 100,
      "mentioned_as": ["Flask"],
      "context": "Experience developing backend web applications in Python, ideally using Flask"
    },
    {
      "skill_name": "PostgreSQL",
      "category": "databases",
      "confidence": 100,
      "mentioned_as": ["PostgreSQL"],
      "context": "Knowledge of database design, preferably with relational or graph-relational models (PostgreSQL)"
    },
    {
      "skill_name": "CI/CD",
      "category": "tools",
      "confidence": 100,
      "mentioned_as": ["CI/CD"],
      "context": "Understanding of modern CI/CD practices and Git-based development workflows"
    },
    {
      "skill_name": "Docker",
      "category": "tools",
      "confidence": 100,
      "mentioned_as": ["Docker"],
      "context": "Comfort working in Linux environments and with Docker-based infrastructure"
    }
  ],
  "reasoning": {
    "total_skills_found": 6,
    "skills_by_category": {
      "languages": ["Python"],
      "frameworks": ["FastAPI", "Flask"],
      "databases": ["PostgreSQL"],
      "tools": ["CI/CD", "Docker"]
    },
    "duplicates_removed": [],
    "excluded_skills": []
  },
  "confidence": 100
}
Ansøgning
Ansøgning (Dansk)
Generer Ansøgning

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.

Jobbeskrivelse

Job Description

We are looking for a Senior Python Backend Engineer to join our dynamic and growing software development team in the Wind and Energy Systems Division at DTU.

As our team expands to support an increasing number of high-impact research tools and data services, we are looking for a senior developer to help guide technical decisions, review and structure code, and collaborate with stakeholders to improve the reliability and maintainability of our platforms.

You will work closely with the Tech Lead to ensure our codebases evolve toward modern best practices while continuing to support important international research collaborations, , with digitalization being evermore the means projects outcomes are disseminated.

The job

You will be part of a multidisciplinary software development team responsible for platforms such as the widely used Global Wind Atlas, New European Wind Atlas, and web applications supporting research models like CorRES, WAsP, and Aquada. These tools are widely used by researchers, policymakers, and industry stakeholders to support evidence-based decision making in renewable energy.

As a senior team member, your responsibilities will include:

Reviewing merge requests and helping maintain code quality across services

Collaborating with the tech lead on system architecture and design decisions

Creating and maintaining internal libraries and shared tooling

Assisting in security improvements, dependency management, and code modernization

Contributing to feature development and bug fixes in backend services

Supporting communication with researchers and stakeholders to clarify technical needs

Mentoring junior developers and contributing to team practices and documentation

Occasionally assisting with frontend integrations (HTML templates / Unpoly)

This is a backend-focused position, working primarily in Python within a modern stack that includes asynchronous services, scientific data formats, and containerized infrastructure.

Our expectations of you

We are looking for someone with strong backend development experience and a collaborative mindset. You don’t need to tick every box, but we expect you to bring solid technical skills and a willingness to work with both engineers and researchers in a scientific environment.

We expect several of the following competencies:

Experience developing backend web applications in Python, ideally using FastAPI, Flask, or similar

Familiarity with asynchronous workflows and task queues (e.g., Celery)

Knowledge of database design, preferably with relational or graph-relational models (PostgreSQL, EdgeDB/Gel, etc.)

Experience working with scientific or geospatial data formats (e.g., GeoTIFF, NetCDF, Zarr)

Understanding of modern CI/CD practices and Git-based development workflows

Comfort working in Linux environments and with Docker-based infrastructure

Ability to read, review, and improve code written by others

Strong communication skills and the ability to work with domain experts from different fields

We also value:

Experience with authentication/authorization flows (e.g., OAuth2, Keycloak)

An interest in scientific computing, open data, and climate/energy research

A proactive approach to improving development workflows and team practices

A collaborative mindset and willingness to mentor or support peers

If you’re excited about building tools that have real-world impact and are eager to contribute to a high-functioning team, we encourage you to apply — even if you don’t meet every listed qualification.

What We Offer In Return

We offer a meaningful and technically engaging role where your work directly supports the global green transition. You will help build and maintain scientific web applications used by researchers, industry experts, and policymakers worldwide.

You’ll join a small, skilled, and collaborative development team with opportunities to learn new technologies, contribute to architectural decisions, and shape internal tools and libraries. While our major platforms have well-established tech stacks, we value open-minded discussions about new ideas and improvements.

DTU Wind and Energy Systems is a world leader in wind energy research, and we work closely with some of the most recognized experts in the field. Our department provides a stable and flexible working environment, with room for both professional growth and technical exploration.

You will become part of an international workplace focused on research, teaching, innovation, and scientific advice for the benefit of society. Skills development is a priority at DTU, and we support our staff in growing their expertise over time.

Salary and appointment terms

The position will have the title of either Senior Development Engineer or Special Consultant. The appointment will be based on the collective agreement with the Danish Confederation of Professional Associations (AC), or in accordance with the OAO-S Joint Agreement and the organization agreement for IT employees (Prosa) in the service of the state.

The position is a full-time position, located at DTU's Risø campus. There is flexibility to work from home up to two days a week. The starting date is 1 January 2026, or by mutual agreement.

Application and contact

Please submit your online application no later than 15 October 2025. Open the “Apply now” link, fill out the form and attach your motivated application, CV and exam certificates.

If you would like additional information about the position, please contact Technical Lead for Wind Resource Assessment Applications, Neil Davis on +45 93 51 13 11 or neda at dtu dot dk.

Applications received after the deadline will not be considered.

All interested candidates irrespective of age, gender, disability, race, religion or ethnic background are encouraged to apply. As DTU works with research in critical technology, which is subject to special rules for security and export control, open-source background checks may be conducted on qualified candidates for the position.

DTU Wind and Energy Systems has led wind energy research, teaching, and commercial activities since the 1970s. With approximately 400 staff, it is the world’s largest public research institute dedicated to wind and energy systems transition. Internationally recognized for pioneering wind technology and smart energy systems, the department is structured into four divisions: Materials and Components, Wind Turbine Technology, Wind Energy Systems, and Power and Energy Systems. In close collaboration with industry and public authorities, DTU Wind and Energy Systems develops cutting-edge solutions for a sustainable energy future and trains the next generation of engineers.

About the Division: The Wind Energy Systems division focuses the development of a chain of systems that connects Atmosphere-Plant-Grid-Society. The division is home to several large software projects and datasets that help to disseminate this research to the industry and public.

Technology for people

DTU develops technology for people. With our international elite research and study programmes, we are helping to create a better world and to solve the global challenges formulated in the UN’s 17 Sustainable Development Goals. Hans Christian Ørsted founded DTU in 1829 with a clear mission to develop and create value using science and engineering to benefit society. That mission lives on today. DTU has 13,500 students and 6,000 employees. We work in an international atmosphere and have an inclusive, evolving, and informal working environment. DTU has campuses in all parts of Denmark and in Greenland, and we collaborate with the best universities around the world.

Kildehistorik
Vurderet den: N/A
Rapporter Fejl
Hvad er problemet?
Yderligere Detaljer (Valgfrit) Maksimalt 1000 tegn