Python Backend Engineer – FastAPI, OpenCV/YOLO, IoT Device Integration

Posted 4 days ago

Worldwide

Summary

About the role We run a backend service that turns customer files (PDFs, PostScript, images) into rendered output for a fleet of IoT devices in the field. A FastAPI service ingests the files, runs a YOLO detector to find and crop the relevant region, validates the content, then serves the rendered output to devices over mutual TLS backed by our own private certificate authority. A small admin console (Dash) handles operator login, device blocklists, job history, and hot-swapping the detection model. The whole thing runs in Docker and is moving from a single host to EKS. Small system, real consequences: a bad response means a failed job on real hardware, not just a red pixel on a dashboard. What you'll do - Own the API — upload, job submission, chunked result download, health/status endpoints, and the failure behavior behind each one - Improve the detection pipeline — YOLO inference, OpenCV pre/post-processing, content-validation heuristics, PDF and PostScript rasterization - Make it horizontally scalable — replace the in-memory job store with durable shared state so we can run more than one replica - Build the test suite that doesn't exist yet — unit tests for the vision pipeline, contract tests for the device-facing API, fixtures cut from real samples - Harden the device trust chain — certificate issuance and rotation, pinning constraints imposed by firmware, secrets in AWS Secrets Manager - Support the firmware team — binary framing on the wire, OTA manifests, version and rollback behavior across two separate device fleets - Help move us to EKS alongside the platform engineers, without an outage What you need - Production Python, 4+ years — Python 3.11+ idioms, type hints, packaging, dependency hygiene - FastAPI or equivalent async framework, plus real ASGI deployment experience (not just a dev server on a laptop) - Practical OpenCV and Pillow — contours, thresholding, morphology, affine transforms, color space handling - Applied deep learning, not research — PyTorch or Ultralytics YOLO in production: loading weights, batching, CPU vs GPU tradeoffs, latency budgets - Image and document formats in anger — PDF rasterization, DPI and bit-depth conversion, 1-bit dithering for device output - Docker beyond a copied template — multi-stage builds, entrypoints, healthchecks, Compose - TLS fundamentals — chains, CA vs leaf, SANs, key usage extensions, client certificates - Testing discipline — you write pytest as you go, not after someone asks - Linux ops literacy — systemd, journald, log rotation, and comfort debugging a box over SSH Nice to have - IoT or embedded backends — constrained clients, flaky links, resumable/chunked transfers, OTA update flows - ESP32 or ESP-IDF familiarity, or experience owning a firmware-to-server contract end to end - AWS — EC2, ECR, Secrets Manager, ALB, EKS - Device-specific output encoding formats and domain quirks - Model lifecycle — retraining a detector on new input samples, versioning weights, safe rollout/rollback - Security instincts around authentication, rate limiting, and validating untrusted uploads - Dash, Plotly, or similar internal tooling UI experience Known rough edges (we're telling you up front — fixing these is a large part of the first six months) No test suite In-memory job store Single replica How we work Small team with direct access to the hardware and firmware engineers. Code review on every change. Infrastructure lives in the repo next to the service — the person who writes the change is the person who ships it and watches it land. Full disclosure of the hardware and business specifics will happen after an NDA is signed with shortlisted candidates.

  • More than 30 hrs/week
    Hourly
  • 1-3 months
    Duration
  • Expert
    Experience Level
  • Remote Job
  • Ongoing project
    Project Type

Contract-to-hire opportunity

This lets talent know that this job could become full time.
Learn more
Skills and Expertise
Mandatory skills
Docker
Amazon Web Services
Activity on this job
  • Proposals:50+
  • Last viewed by client:4 days ago
  • Interviewing:
    0
  • Invites sent:
    0
  • Unanswered invites:
    0
About the client
Member since Sep 24, 2019
  • Canada
    Scarborough3:29 AM
  • $24K total spent
    26 hires, 0 active
  • 1,877 hours
  • Tech & IT
    Mid-sized company (10-99 people)

Explore similar jobs on Upwork

Stapes.js
Google Tag Manager
Google Analytics 4
Backend Software Engineers – BangaloreFixed-price‐ Posted 2 weeks ago
Python
API
Database
Java
JavaScript
Software Architecture & Design

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers earned on Upwork in 2020

Find the best freelance jobs

Growing your career is as easy as creating a free profile and finding work like this that fits your skills.

Trusted by

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo