Senior Python Engineer (Hiring Globally)

Senior Python Engineer (Hiring Globally)

Full-Time 70000 - 90000 £ / year (est.) Working from home possible
COGNATIV

At a Glance

  • Tasks: Lead the migration to a modern Python platform and build innovative services.
  • Company: Join a cutting-edge tech company revolutionising video monitoring with AI.
  • Benefits: Competitive salary, flexible remote work, and opportunities for professional growth.
  • Other info: Exciting projects with excellent career advancement opportunities await you.
  • Why this job: Be at the forefront of technology, making a real impact in a dynamic environment.
  • Qualifications: Strong Python and Java skills, with experience in software engineering and databases.

The predicted salary is between 70000 - 90000 £ per year.

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.

  • Fast API services with Strawberry

Graph QL as the primary data API; REST where it's the right fit; Uvicorn ASGI.

  • psycopg3 straight against Postgre SQL

/ Timescale DB 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 + Open Telemetry 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,

Test Client, 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 (Postgre SQL/Timescale DB), Elasti Cache (Redis), MSK (Kafka), Kinesis & Kinesis Video Streams, Io T 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 Io T.

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

Postgre SQL/Timescale DB, 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.

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 (Postgre SQL 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

  • Fast API, Graph QL (Strawberry or similar), and async Python at scale.
  • uv, monorepo workflows, and strict typing (mypy) / ruff in CI.
  • Timescale DB 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), Circle CI, and infrastructure-as-code (Terraform).
  • Auth with Cognito,

JWT/OIDC, or Entra; partner-integration work.

  • Computer-vision / ML-adjacent systems, Io T, or edge/on-premise fleets.

Senior Python Engineer (Hiring Globally) employer: COGNATIV

As a Senior Site Reliability Engineer at our innovative company, you will thrive in a dynamic work culture that prioritises reliability and operational excellence. We offer competitive benefits, a commitment to employee growth through continuous learning opportunities, and the chance to work with cutting-edge technology in a collaborative environment. Join us in a location that fosters creativity and teamwork, where your contributions directly impact the success of our AI-driven video monitoring platform.

COGNATIV

Contact Details:

COGNATIV Recruitment Team

StudySmarter Expert Advice🤫

We think this is how you could land Senior Python Engineer (Hiring Globally)

Join Local Tech Meetups

Get out there and mingle with fellow developers by joining local tech meetups. It’s a fantastic way to meet people who might be working at COGNATIV or know someone who does. Plus, you can pick up some trendy tech skills and trends while you're at it!

Contribute to Open Source Projects

Show off your coding chops by jumping into open-source projects. Not only does this give you practical experience, but it also gets you noticed in the dev community. You'll create a killer portfolio that speaks volumes about your skills to COGNATIV.

Tap into Online Developer Communities

Don’t underestimate the power of online developer communities like GitHub, Stack Overflow, and even Reddit. Participate in discussions, share your projects, and build your visibility. We can often find opportunities through these channels that can lead to a full-time gig at companies like COGNATIV.

Explore Job Boards Specifically for Tech Roles

Keep your eyes peeled on job boards that focus on tech roles. Sites like TechCareers or Stack Overflow Jobs can often have listings for companies like COGNATIV that might not show up on broader job sites. Make it a habit to check these regularly, and don’t hesitate to apply directly through our website!

We think you need these skills to ace Senior Python Engineer (Hiring Globally)

Python 3.14
Java 8
FastAPI
GraphQL (Strawberry)
PostgreSQL
TimescaleDB
SQL

Some tips for your application 🫡

Show off your coding skills:When applying for a software engineering role, it's super important to showcase your coding skills. Make sure your CV includes your tech stack, any relevant programming languages you’re comfortable with, and examples of projects you've worked on. If you have a GitHub profile, link it up! We love to see code in action.

Tailor your portfolio:For a full-time role, we’d expect to see some solid examples of your work in your portfolio. Make sure to include at least two or three projects that highlight your problem-solving skills and your ability to work with different technologies. Focus on the projects that are most relevant to the position at COGNATIV.

Craft a killer cover letter:Your cover letter is your chance to stand out—make it personal! Explain why you want to work at COGNATIV and how your skills align with the role. Show us your passion for software development. We dig enthusiastic candidates who understand the value of collaboration and continuous learning!

Be clear and concise:When it comes to writing your CV and cover letter, clarity is key. Avoid jargon that could confuse us and stick to simple, direct language. Highlight your achievements with quantifiable results where possible, and keep everything easy to read. A well-organised application goes a long way!

How to prepare for a job interview at COGNATIV

Brush Up on Your Coding Skills

For a full-time software engineering role, it's crucial that we stay sharp with our coding abilities. Expect technical questions that might involve solving problems on the spot or discussing algorithms. Practise on platforms like LeetCode or HackerRank to get comfortable with the types of questions that often come up.

Know Your Tools and Frameworks

Make sure we’re well-acquainted with the tools and technologies listed in the job description. Familiarise ourselves with any specific frameworks or programming languages mentioned. If COGNATIV uses React or Node.js, for instance, be ready to discuss how we’ve used them in previous projects or coursework.

Showcase Your Projects

Bring along a portfolio that highlights our best work. This could be code samples, GitHub repositories, or any side projects we’ve built. Make sure we can talk through our thought process for each project, especially the challenges we faced and how we solved them—this shows our problem-solving skills in action.

Prepare for Behavioural Questions

While technical skills are key, full-time positions also require cultural fit. Be ready to discuss our previous experiences and how we handle teamwork, conflict, and deadlines. Brush up on the STAR method—Situation, Task, Action, Result—to clearly articulate our past experiences when discussing how we've contributed to a team.