UN CareersUN CareersGlobal Opportunities
International Telecommunication Union logo
International Telecommunication Union

Roster - Software Developer and Metadata Engineer Consultant for Open Code Infrastructure (OCI), Sec. TSB, Dept. SPD

GenevaRosterITU
Dec 31, 2026Posted May 14, 2026

BACKGROUND INFORMATION

The Global Initiative on Artificial Intelligence for Health (GI-AI4H), jointly operated by ITU, WHO, and WIPO since its launch in July 2023, continues the work of its predecessor, the ITU/WHO Focus Group on AI for Health (FG-AI4H, 2018–2023), on establishing an international framework for the evaluation and benchmarking of AI in healthcare. As part of this effort, two web platforms have been developed and are in active use by the international health AI community:

Both platforms require ongoing development, maintenance, and operational support. In addition, GI-AI4H contributes to open standards for dataset metadata interoperability. The Croissant metadata format (https://github.com/mlcommons/croissant), developed by MLCommons, is a key building block for FAIR dataset descriptions. Work is underway to achieve dual compatibility between Croissant and Bioschemas (schema.org/Bioschemas) so that health datasets can be described once and validated against both standards. This requires targeted contributions to the Croissant open-source repository or the development of a BioCroissant extension. The objective of this consultancy is to carry out full-stack development and operations activities across the Open Code Infrastructure (OCI) platform.

  • AI4H Evaluation Platform (health.aiaudit.org): A benchmarking system where researchers submit AI/ML models, which are evaluated against curated health datasets and ranked through standardized leaderboards. Built with Python/Django, Angular, and deployed on AWS ECS.
  • AI4H Annotation Tool (annotation.ai4h.net): A data annotation platform implementing the DEL5.3 standard for health data annotation, supporting images, text, audio, and video with structured quality control workflows. Built with Java/Spring Boot, React, and deployed on AWS Elastic Beanstalk.

TERMS OF REFERENCE

Under the guidance of the Senior Telecommunication Engineer and in collaboration with the team developing for open-code software packages based on ITU/WHO Focus Group on AI for Health (AI4H) specifications under OCI and carrying out applied AI4H audits. Specifically, the consultant will carry out full-stack development and operations activities across both platforms, organized into the following areas:

  1. Feature Development & Bug Fixes: Implement new features and enhancements on both platforms as prioritized by the project team, covering backend logic, REST APIs, frontend interfaces, and database changes. Diagnose and resolve reported bugs and issues across the full stack. Ensure new code follows existing architectural patterns and coding standards of each platform.
  2. Implement new features and enhancements on both platforms as prioritized by the project team, covering backend logic, REST APIs, frontend interfaces, and database changes.
  3. Diagnose and resolve reported bugs and issues across the full stack.
  4. Ensure new code follows existing architectural patterns and coding standards of each platform.
  5. Dual-Compatible Metadata Engineering (Croissant / BioCroissant): Implement and test code changes in the Croissant repository to address dual-compatibility blockers with Bioschemas, including: Type conflicts (allowing ontology-linked values where Croissant expects strings). Name validation and other strict field constraints. Handling of keywords/citations where structures differ between the two standards. Create validator or linter rules or plugins that check both Croissant and Bioschemas expectations. Add unit and integration tests, fixtures, and CI hooks to prevent regressions on dual compatibility. Prepare minimal examples and documentation demonstrating successful dual validation (Croissant parsers + Bioschemas FAIR checks). Open PRs and upstream issues to the Croissant repository or maintain a clean BioCroissant extension package if upstream changes are not feasible.
  6. Implement and test code changes in the Croissant repository to address dual-compatibility blockers with Bioschemas, including: Type conflicts (allowing ontology-linked values where Croissant expects strings). Name validation and other strict field constraints. Handling of keywords/citations where structures differ between the two standards.
  7. Type conflicts (allowing ontology-linked values where Croissant expects strings).
  8. Name validation and other strict field constraints.
  9. Handling of keywords/citations where structures differ between the two standards.
  10. Create validator or linter rules or plugins that check both Croissant and Bioschemas expectations.
  11. Add unit and integration tests, fixtures, and CI hooks to prevent regressions on dual compatibility.
  12. Prepare minimal examples and documentation demonstrating successful dual validation (Croissant parsers + Bioschemas FAIR checks).
  13. Open PRs and upstream issues to the Croissant repository or maintain a clean BioCroissant extension package if upstream changes are not feasible.
  14. Documentation & Knowledge Transfer: Maintain technical documentation covering architecture, deployment procedures, and API specifications. Document operational procedures and troubleshooting guides to facilitate knowledge transfer.
  15. Maintain technical documentation covering architecture, deployment procedures, and API specifications.
  16. Document operational procedures and troubleshooting guides to facilitate knowledge transfer.
  • Implement new features and enhancements on both platforms as prioritized by the project team, covering backend logic, REST APIs, frontend interfaces, and database changes.
  • Diagnose and resolve reported bugs and issues across the full stack.
  • Ensure new code follows existing architectural patterns and coding standards of each platform.
  • Implement and test code changes in the Croissant repository to address dual-compatibility blockers with Bioschemas, including: Type conflicts (allowing ontology-linked values where Croissant expects strings). Name validation and other strict field constraints. Handling of keywords/citations where structures differ between the two standards.
  • Type conflicts (allowing ontology-linked values where Croissant expects strings).
  • Name validation and other strict field constraints.
  • Handling of keywords/citations where structures differ between the two standards.
  • Create validator or linter rules or plugins that check both Croissant and Bioschemas expectations.
  • Add unit and integration tests, fixtures, and CI hooks to prevent regressions on dual compatibility.
  • Prepare minimal examples and documentation demonstrating successful dual validation (Croissant parsers + Bioschemas FAIR checks).
  • Open PRs and upstream issues to the Croissant repository or maintain a clean BioCroissant extension package if upstream changes are not feasible.
  • Type conflicts (allowing ontology-linked values where Croissant expects strings).
  • Name validation and other strict field constraints.
  • Handling of keywords/citations where structures differ between the two standards.
  • Maintain technical documentation covering architecture, deployment procedures, and API specifications.
  • Document operational procedures and troubleshooting guides to facilitate knowledge transfer.

CONCRETE DELIVERABLES

  • Deployment of working features and bug fixes to production on a regular basis.
  • Delivery of technical documentation for the OCI platform.
  • Compilation of Croissant pull requests, validator rules, or a BioCroissant extension package achieving dual Croissant/Bioschemas compatibility, with passing tests and worked examples.

COMPETENCIES

  • Proficiency with modern React frameworks, ideally Next.js (App Router / React Server Components).
  • Strong TypeScript fundamentals; strict mode, generics, discriminated unions.
  • Working knowledge of PostgreSQL and an ORM/query builder such as Prisma.
  • Familiarity with RESTful API design and OpenAPI 3.x specifications.
  • Coding skills in Python for the evaluation sandbox runner, validators, parsers, and tooling.
  • Familiarity with AWS primitives (ECS, S3, Cognito, RDS/Aurora, IAM) and infrastructure-as-code (AWS CDK preferred).
  • Experience with CI/CD pipelines (GitHub Actions) and secure cloud deploy patterns (OIDC, least-privilege IAM).
  • Ability to read an open-source codebase, opening issues / pull requests, and responding to code reviews.
  • Knowledge of FAIR principles and data interoperability concepts; exposure to Croissant / ML metadata schemas is a plus.

QUALIFICATIONS REQUIRED

Education:

University degree in computer science, software engineering, information technology, or a related field OR education from a reputed college of advanced education, with a diploma of equivalent standard to that of a university degree in one of the fields above.

Experience:

At least three (3) years of progressively responsible experience in software development and documentation for the relevant technical areas below.

Languages:

Knowledge of English at advanced level. Knowledge of another official language of the Union (Arabic, Chinese, French, Russian, Spanish) would be an advantage.

  • Experience in full-stack development with TypeScript on both ends — Node.js services (NestJS or comparable) and a modern React framework.
  • Experience with JSON / JSON-LD, schemas, and validation (e.g., Zod, JSON Schema, Croissant / BIOCroissant).
  • Experience with the following technical environment; the developer will work across a single unified stack, with a small isolated Python sandbox for executing participant evaluation containers: Layer: OCI Platform (target stack). Backend: Node.js 24 LTS, TypeScript 6, NestJS 11 (modular monolith), Prisma 7, BullMQ. Eval sandbox: Python 3.x - only for the sandboxed runner that executes participant Docker images. Frontend: Next.js 16 (App Router, React Server Components, Turbopack), React 18+, Tailwind v4, shadcn/ui. Database: PostgreSQL 16 (AWS Aurora Serverless v2), Prisma migrations, multi-schema. Auth: AWS Cognito (OIDC/OAuth2), aws-jwt-verify, MFA for admin/regulator/supervisor roles. Infrastructure: AWS CDK (TypeScript), ECS Fargate, ALB, S3, SQS, ECR, KMS, WAFv2, Secrets Manager. CI/CD: GitHub Actions with OIDC role assumption (no static AWS keys); per-env deploy pipelines. Observability: CloudWatch, AWS X-Ray, OpenTelemetry, pino structured logging, Container Insights. Security tooling: Trivy, Gitleaks, CycloneDX SBOM in every PR; distroless Node base images. API contracts: OpenAPI 3.1 via NestJS Swagger module; Zod schemas shared FE/BE via @oci/shared-types. Testing: Vitest 4 (unit + integration with Testcontainers), Playwright 1.59 (E2E + a11y).
  • Layer: OCI Platform (target stack).
  • Backend: Node.js 24 LTS, TypeScript 6, NestJS 11 (modular monolith), Prisma 7, BullMQ.
  • Eval sandbox: Python 3.x - only for the sandboxed runner that executes participant Docker images.
  • Frontend: Next.js 16 (App Router, React Server Components, Turbopack), React 18+, Tailwind v4, shadcn/ui.
  • Database: PostgreSQL 16 (AWS Aurora Serverless v2), Prisma migrations, multi-schema.
  • Auth: AWS Cognito (OIDC/OAuth2), aws-jwt-verify, MFA for admin/regulator/supervisor roles.
  • Infrastructure: AWS CDK (TypeScript), ECS Fargate, ALB, S3, SQS, ECR, KMS, WAFv2, Secrets Manager.
  • CI/CD: GitHub Actions with OIDC role assumption (no static AWS keys); per-env deploy pipelines.
  • Observability: CloudWatch, AWS X-Ray, OpenTelemetry, pino structured logging, Container Insights.
  • Security tooling: Trivy, Gitleaks, CycloneDX SBOM in every PR; distroless Node base images.
  • API contracts: OpenAPI 3.1 via NestJS Swagger module; Zod schemas shared FE/BE via @oci/shared-types.
  • Testing: Vitest 4 (unit + integration with Testcontainers), Playwright 1.59 (E2E + a11y).
  • Layer: OCI Platform (target stack).
  • Backend: Node.js 24 LTS, TypeScript 6, NestJS 11 (modular monolith), Prisma 7, BullMQ.
  • Eval sandbox: Python 3.x - only for the sandboxed runner that executes participant Docker images.
  • Frontend: Next.js 16 (App Router, React Server Components, Turbopack), React 18+, Tailwind v4, shadcn/ui.
  • Database: PostgreSQL 16 (AWS Aurora Serverless v2), Prisma migrations, multi-schema.
  • Auth: AWS Cognito (OIDC/OAuth2), aws-jwt-verify, MFA for admin/regulator/supervisor roles.
  • Infrastructure: AWS CDK (TypeScript), ECS Fargate, ALB, S3, SQS, ECR, KMS, WAFv2, Secrets Manager.
  • CI/CD: GitHub Actions with OIDC role assumption (no static AWS keys); per-env deploy pipelines.
  • Observability: CloudWatch, AWS X-Ray, OpenTelemetry, pino structured logging, Container Insights.
  • Security tooling: Trivy, Gitleaks, CycloneDX SBOM in every PR; distroless Node base images.
  • API contracts: OpenAPI 3.1 via NestJS Swagger module; Zod schemas shared FE/BE via @oci/shared-types.
  • Testing: Vitest 4 (unit + integration with Testcontainers), Playwright 1.59 (E2E + a11y).

REMUNERATION INFORMATION

Between CHF 1000 and CHF 1500 lumpsum to be defined according to the work experience of the consultant and to be paid in monthly instalments upon satisfactory completion and submission of the deliverables.

Ready to apply?

This vacancy was sourced from ITU. Applications are handled on their official careers portal.

You apply on the employer's official portal. We just make the listing easier to read.

View all