The Role
We are looking for a Python engineer to build the automation, monitoring, and AI tooling layer that runs alongside our core Laravel and React stack. This is not a data science role and it is not a machine learning research position. It is systems engineering — building reliable, production-grade Python services that monitor processes, crawl and analyse data, execute scheduled tasks, and integrate with AI APIs to power features across the Beacon product ecosystem.
The primary focus is Beacon Bits and Beacon Crawler — two products that operate as unattended services. Beacon Bits provides monitoring for standalone processes that would otherwise be invisible: scheduled tasks, background jobs, integration health checks, and operational metrics that businesses need to know about but do not have visibility into today. Beacon Crawler handles automated data gathering, site analysis, and content processing that feeds into the broader Beacon intelligence layer. Both systems need to be reliable above all else — they run continuously, report back to the central Dashboard API, and their value depends entirely on not missing things.
Beyond the core products, you will work on Python-based automation that supports client projects: data migration scripts, API integration bridges for systems that do not have clean REST APIs, and processing pipelines that transform raw data into structured formats our Laravel backend can consume.
What the Day-to-Day Looks Like
A typical week might include building a new monitoring applet for Beacon Bits that tracks the health of a client’s scheduled data sync, writing a crawler module that analyses site structure and content quality for the Beacon plugin, implementing an API client for a third-party service that a client needs integrated into their workflow, and debugging a scheduling issue where a background task is not firing consistently across different hosting environments.
The work is varied but has a consistent character: you are building things that run without human intervention, which means error handling, logging, retry logic, and graceful failure are not afterthoughts — they are the core of the engineering challenge. When a monitoring service fails silently, nobody knows until something downstream breaks. Your job is to make sure that does not happen.
You will coordinate closely with the Laravel backend team, since most Python services communicate with the Dashboard API. Understanding REST APIs, authentication patterns (particularly API key auth for unattended services), and structured logging is essential. You will also contribute to architectural decisions about when Python is the right tool versus when the work should be handled by a Laravel queue job or a scheduled Artisan command.
What We Are Looking For
Required:
- Strong Python fundamentals — clean, well-structured code with proper error handling, not just scripts that work when conditions are perfect
- Experience building services that run unattended in production — daemons, scheduled tasks, monitoring agents, or similar systems where reliability is the primary concern
- Comfortable with HTTP APIs — consuming REST endpoints, handling authentication, managing rate limits, and processing structured responses
- Understanding of scheduling, concurrency, and process management in Python
- Ability to work independently, make sensible technical decisions, and communicate clearly about progress and problems
Valuable but not required:
- Experience with web scraping and crawling (Scrapy, BeautifulSoup, Playwright, or similar)
- Familiarity with OpenAI or similar AI APIs — structured prompting, response parsing, and cost management
- Experience with monitoring or observability tooling (building it, not just using Datadog)
- Understanding of deployment on Linux servers, systemd services, and process supervision
- Experience with async Python (asyncio, aiohttp) for high-concurrency workloads
What We Offer
- Product ownership — you are not writing throwaway scripts. Beacon Bits and Beacon Crawler are commercial products with paying users, and your code is the product
- Engineering depth — reliability engineering, not feature churn. The problems you solve here are genuinely interesting: distributed monitoring, graceful degradation, and systems that need to work when everything around them is failing
- Cross-stack exposure — Python services that integrate with Laravel APIs, feed React dashboards, and interact with AI platforms
- Remote flexibility — UK-based, remote-first, with flexibility around core hours
- Direct impact — small team, no layers, your architecture decisions ship to production
- Growing product ecosystem — the Beacon suite is actively expanding, with new monitoring and analysis capabilities planned
How to Apply
Send an email to careers@digitalroyalty.co.uk with your CV and a note on what interests you about this role. If you have GitHub repositories, open source contributions, or personal projects that show how you approach reliability and systems design, include them. We do not use recruitment agencies.
The process: an initial conversation to check mutual fit, a practical exercise that reflects real work you would do here (building something reliable, not solving puzzles), and a final discussion about the role and team.