← All jobs
F
FlatgigsRemote · Sri Lanka · India · Pakistan

Python Data Engineer

Data EngineerRemote

Our client is building an operations management platform that handles workforce planning, rostering, dispatching, and performance analytics for a large-scale field operations environment. You will own the Python engine layer, responsible for the algorithms and data processing that power the core operational workflows used daily by operations teams.

  • This is not a typical web backend role. You will be working on constraint-based planning algorithms, large-scale data processing pipelines, and event-driven dispatch engines that operate in real time against live operational data.
  • WHAT YOU'LL OWN:
  • Planning engine:
  • processing large volumes of operational schedule data through constraint evaluation, business rules, and engagement profiles to produce workforce planning demands. Built on Celery, Polars, and OR-Tools running on Azure App Service
  • Rostering engine: generating periodic staff rosters by solving constraint problems against planning demands, employee certifications, and leave data pulled from third-party HR systems. Running as an Azure Function App
  • Dispatch engine:
  • real-time task assignment using proximity scoring against live employee location data, attendance records, and operational schedule data. Running as an always-on Azure Function App or App service.
  • Performance engine:
  • scheduled KPI aggregation and SLA scoring across all modules. Running as a timer-triggered Azure Function App
  • WHY'S THIS ROLE INTERESTING:

The planning engine is the core of this platform. The algorithm you build determines how efficiently an operations team deploys its workforce against a complex schedule of demands. When the platform matures, the rule-based constraint engine you build will become the foundation for an ML-driven prediction model. You are building something that runs in a live operational environment and directly impacts how a team performs on the ground every day.

WHAT YOU'LL WORK WITH:

Python 3.11

Celery with Redis as broker for long-running jobs

  • Polars for large-scale data processing
  • OR-Tools for constraint solving and optimisation
  • Azure Functions for event-driven and scheduled workloads
  • Azure SQL via SQLAlchemy for output persistence
  • Azure Blob Storage for intermediate file handling
  • Azure Service Bus for async message queuing between modules
  • Third-party HR and workforce management API integrations
  • Real-time location data streams for proximity-based task assignment
  • Requirements
  • WHAT WE ARE LOOKING FOR:
  • Required:

5 or more years of Python backend or data engineering experience

  • Experience with constraint solving, optimization, or scheduling algorithms (OR-Tools, PuLP, or equivalent)
  • Strong data processing experience with large datasets (Polars, pandas, or Apache Spark)
  • Experience with task queues and async processing (Celery, RQ, or equivalent)

Familiarity with Azure

  • Comfortable working with SQL databases and writing performant queries
  • Experience consuming REST APIs and message queues
  • Preferred:

Experience with Azure Functions or equivalent serverless compute

  • Experience with OR-Tools specifically
  • Knowledge of scikit-learn or ML model integration (ONNX, Azure ML) for a future ML upgrade path
  • Experience with Pydantic for data validation and schema enforcement
  • Nice to have:
  • Experience with large-scale workforce management or scheduling systems
  • Familiarity with SLA-based operational frameworks
  • Experience working in fast-paced, operationally critical environments
  • WHAT YOU "DO NOT NEED" TO KNOW:
  • This is a pure Python engineering role. You will not be expected to write TypeScript, work on the API layer, or contribute to the frontend.
  • Your responsibility sits clearly within the Python processing layer. The integration boundary between your work and the wider platform is
  • Redis and Azure SQL. You will write clean, reliable outputs into these systems, and the surrounding services will consume them from there.
  • In simple terms:
  • you own the Python logic and data processing. The rest of the platform reads from what you produce.