🏢 Offshore Consulting Shops

Cognativ is an IT services and software development firm that provides custom engineering, data analytics consulting, and technical resource augmentation for external clients.

This company was flagged and excluded from default search results. Proceed with caution.

Save Job
Posted 19h ago

Senior Python Engineer (Hiring Globally)

@ COGNATIV
Brazil
RemoteFull Time
Responsibilities:designing services, migrating functionality, maintaining Java
Requirements Summary:Senior-level Python and solid Java required, strong fundamentals in data structures, concurrency, SQL/PostgreSQL, AWS experience, testing and typing, migration/modernization experience, and excellent English communication.
Technical Tools Mentioned:Python 3.14, Java 8, uv workspaces, Copier, FastAPI, Strawberry, Uvicorn, psycopg3, PostgreSQL, TimescaleDB, yoyo, Pydantic, pydantic-settings, httpx, pendulum, structlog, OpenTelemetry, mypy, ruff, pytest, TestClient, AWS, EC2, ECS, Lambda, S3, RDS, ElastiCache, Redis, MSK, Kafka, Kinesis, Kinesis Video Streams, IoT Core, Cognito, SQS, SNS, SES, Gradle, Bazel, Jetty 9.4, Elastic Beanstalk, Docker, ECR, CircleCI, Terraform
Save
Mark Applied
Hide Job
Report & Hide
Job Description

Job description


About the role:

We run a distributed, camera-based video monitoring and AI alerting platform. The estate spans 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 ingest camera feeds, serve video, and stream events back to the cloud.

Today the bulk of our backend is ~140 Java 8 services and libraries that have grown over many years. We are building their successor: a clean, modern Python monorepo (trella), and we are migrating capabilities over to it service by service.

We are looking for a Senior Python Engineer: a strong programmer first, with real depth in both Python and Java to lead and execute that migration. You will design and build the new Python services, port existing Java functionality across with its behaviour intact, and occasionally maintain and fix the existing Java stack while it remains in production. This is a builder's role at the centre of a major platform modernization.
 
What you'll work on: The new Python platform (primary)

A greenfield, strongly-opinionated monorepo built for the long term:
  • Python 3.14, managed with uv workspaces (libs/, packages/, svcs/, apps/, scripts/), scaffolded from  Copier templates.
  • FastAPI services with Strawberry  GraphQL as the primary data API; REST where it's the right fit; Uvicorn ASGI.
  • psycopg3 straight against PostgreSQL  / TimescaleDB using the repository pattern -  deliberately no ORM - with yoyo migrations.
  • Pydantic / pydantic-settings for models, validation, and config; httpx for outbound HTTP; pendulum for datetimes; structlog + OpenTelemetry for observability.
  • Strict engineering standards, enforced in CI: full type  annotations under a strict mypy config, ruff lint + format,  and a curated, opinionated set of approved libraries (alternatives are  banned at the linter level, on purpose).
  • A strong testing culture: pytest,  TestClient, async tests, 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'll read this code to  understand behaviour before porting it, keep it healthy with bug fixes and  small changes while it's still live, and decommission pieces as their  Python replacements land.
The platform around 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 tier producing the alerts that reach  parents' phones.
  • Edge appliances (Linux + Docker) in the  field, reachable over 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:  study an existing Java service, capture its real behaviour and edge cases,  and re-implement it idiomatically in Python without regressions.
  • Maintain the Java stack as  needed:  diagnose and fix production issues, make targeted changes, and keep services healthy until they're retired.
  • Set and uphold engineering  standards in  the new codebase: typing, structure, the libs/svcs separation, the repository pattern, testing, and review quality.
  • Work with data: model schemas in  PostgreSQL/TimescaleDB, write correct and efficient SQL, and design migrations.
  • Own your work end to end: from design through deploy,  observability, and on-call follow-through, and drive it to a durable resolution.

Job requirements

  • Strong software engineer  first. Excellent fundamentals: data structures, concurrency, API and data  modelling, testing, and writing code others can maintain.
  • Senior-level Python in production: idiomatic,  fully typed, well-tested. Comfort with async, packaging, and a modern  toolchain (type checkers, linters, virtual envs).
  • Solid Java in production: able to  confidently read, debug, and modify a large existing Java codebase, and reason about its behaviour well enough to port it.
  • Strong with relational  databases (PostgreSQL preferred) writing SQL directly rather than leaning on an ORM, and designing schemas and migrations.
  • Hands-on AWS experience building and  operating real services.
  • Migration / modernization  mindset: you  can hold "match the old behaviour" and "build it right for the next ten years" in your head at the same time.
  • A bias for follow-through: you  find what's actually needed, focus on it, and finish.
  • Excellent English  communication.

Nice to have:
  • FastAPI, GraphQL (Strawberry  or similar), and async Python at scale.
  • uv, monorepo workflows, and  strict typing (mypy) / ruff in CI.
  • TimescaleDB or other time-series data.
  • Gradle and/or Bazel builds; Jetty;  AWS Lambda.
  • Messaging and streaming: Kafka/MSK,  SQS/SNS, Kinesis.
  • Containers (Docker/ECR/ECS), CircleCI,  and infrastructure-as-code (Terraform).
  • Auth with Cognito,  JWT/OIDC, or Entra; partner-integration work.
  • Computer-vision / ML-adjacent  systems, IoT, or edge/on-premise fleets.

Job responsibilities


How we work, and what we expect:
  • Prefer the right fix to a  quick patch. Solve the root cause; don't paper over it.
  • Follow-through over activity. We measure outcomes, not  hours. Work is driven to a correct, durable resolution on a reasonable  timeline, not left half-done.
  • Standards are not optional. The new codebase is  opinionated by design; we keep it clean, typed, and tested so it stays  fast to work in.
  • Respect what exists before you  replace it. Understand the Java behaviour you're porting; migrate deliberately, with  tests, and decommission cleanly.

Job benefits


You will own the migration of a mature, real product from a large legacy Java estate to a clean, modern Python platform, making the architectural calls, setting the standard for everything that follows, and seeing your work reach a camera on a wall, an AI model, and a notification on a parent's phone. You get the satisfaction of greenfield Python without losing the grounding of a system that's already in production.
 
We are an equal-opportunity employer. We welcome applicants from all backgrounds and are committed to building an inclusive team.