
Senior Python Engineer
Posted Jul 27

Posted Jul 27
This is a fully remote position, open to applicants in Mexico.
• **About the role:** We operate a distributed, camera-based video monitoring and AI alerting platform. The infrastructure encompasses an AWS-hosted fleet of services and workers, a GPU-backed computer vision inference pipeline, a real-time streaming and presence layer, and thousands of on-premise edge "media boxes" that capture camera feeds, serve video, and stream events back to the cloud.
• Currently, our backend consists of approximately 140 Java 8 services and libraries that have developed over many years. We are in the process of creating their successor: a clean, modern Python monorepo (trella), and we are systematically migrating capabilities from Java to Python service by service.
• We are seeking a Senior Python Engineer: a proficient programmer with substantial expertise in both Python and Java to lead and implement the migration. Your responsibilities will include designing and developing new Python services, transferring existing Java functionality while maintaining its original behavior, and occasionally managing and resolving issues within the existing Java stack while it remains operational. This is a pivotal role focused on significant platform modernization.
• **What you'll work on:** The new Python platform (primary)
• A greenfield, strongly opinionated monorepo designed for long-term use: * Python 3.14, managed with uv workspaces (libs/, packages/, svcs/, apps/, scripts/), scaffolded from Copier templates. * FastAPI services with Strawberry GraphQL as the main data API; REST where appropriate; Uvicorn ASGI. * psycopg3 directly interfacing with PostgreSQL/TimescaleDB utilizing the repository pattern - intentionally avoiding ORM - with yoyo migrations. * Pydantic/pydantic-settings for models, validation, and configuration; httpx for outbound HTTP requests; pendulum for datetime handling; structlog + OpenTelemetry for observability. * Rigorous engineering standards enforced in CI: comprehensive type annotations under a stringent mypy configuration, ruff lint + format, and a carefully curated, opinionated selection of approved libraries (alternatives are prohibited at the linter level, intentionally). * A robust testing culture: pytest, TestClient, async tests, and real test databases.
• The legacy Java stack (occasional, ongoing): - ~140 Java 8 services and libraries: REST APIs, SQS/SNS workers, Lambda functions built with Gradle and Bazel, running on Jetty 9.4, deployed to Elastic Beanstalk, ECS, and Lambda. * Domains include alerts, analytics, API, auth, clips, media, presence, notifications, and partner integrations. * You will review this code to understand its behavior before porting it, maintain its health with bug fixes and minor adjustments while it remains live, and decommission components as their Python counterparts become available.
• The platform surrounding it: - AWS (us-west-2): EC2/ECS, Lambda, S3, RDS (PostgreSQL/TimescaleDB), ElastiCache (Redis), MSK (Kafka), Kinesis & Kinesis Video Streams, IoT Core, Cognito, SQS/SNS/SES. * A GPU-backed computer-vision inference layer generating the alerts sent to parents' devices. * Edge appliances (Linux + Docker) deployed in the field, accessible via AWS IoT.
• **What you'll do:** * Design and build new Python services in the monorepo (schema, data access, business logic, APIs, and tests) to a high, consistent standard. * Migrate functionality from Java to Python: analyze an existing Java service, capture its genuine behavior and edge cases, and re-implement it idiomatically in Python without regressions. * Maintain the Java stack as required: identify and resolve production issues, implement targeted changes, and ensure services remain healthy until they are decommissioned. * Establish and uphold engineering standards within the new codebase: typing, structure, libs/svcs separation, repository pattern, testing, and review quality. * Work with data: model schemas in PostgreSQL/TimescaleDB, write accurate and efficient SQL, and design migrations. * Take ownership of your work end to end: from design through deployment, observability, and on-call follow-up, and drive it to a sustainable resolution.
• - Strong software engineering background. Excellent fundamentals in data structures, concurrency, API and data modeling, testing, and writing maintainable code.
• - Senior-level Python experience in production: idiomatic, fully typed, well-tested. Comfortable with async, packaging, and a modern toolchain (type checkers, linters, virtual environments).
• - Solid Java experience in production: capable of confidently reading, debugging, and modifying a large existing Java codebase, and reasoning about its behavior sufficiently to port it.
• - Proficient with relational databases (PostgreSQL preferred), writing SQL directly rather than relying on an ORM, and designing schemas and migrations.
• - Hands-on AWS experience building and operating real services.
• - Migration/modernization mindset: you can balance "match the old behavior" and "build it right for the next ten years" effectively.
• - A proactive approach to follow-through: you identify what is truly needed, focus on it, and see it through to completion.
• - Excellent communication skills in English.
• **Nice to have:**
• - Experience with FastAPI, GraphQL (Strawberry or similar), and async Python at scale.
• - Familiarity with uv, monorepo workflows, and strict typing (mypy)/ruff in CI.
• - Knowledge of TimescaleDB or other time-series data.
• - Experience with Gradle and/or Bazel builds; Jetty; AWS Lambda.
• - Understanding of messaging and streaming technologies: Kafka/MSK, SQS/SNS, Kinesis.
• - Experience with containers (Docker/ECR/ECS), CircleCI, and infrastructure-as-code (Terraform).
• - Familiarity with authentication methods such as Cognito, JWT/OIDC, or Entra; experience with partner integration work.
• - Background in computer vision/ML-adjacent systems, IoT, or edge/on-premise fleets.
• **You will take ownership of migrating a mature, real product from a large legacy Java estate to a clean, modern Python platform, making architectural decisions, setting the benchmarks for subsequent developments, and witnessing your work culminate in a camera on a wall, an AI model, and a notification on a parent's device. You will experience the fulfillment of greenfield Python development while retaining the foundation of a system already in production.** **We are an equal-opportunity employer. We welcome applicants from all backgrounds and are dedicated to building an inclusive team.**
Sigma Software Group
Plain Concepts
GitLab
Get handpicked remote jobs straight to your inbox weekly.