> Markdown version of [/jobs/ext/3614133-senior-staff-software-engineer-silicon-engineering-platform](https://www.wearedevelopers.com/jobs/ext/3614133-senior-staff-software-engineer-silicon-engineering-platform). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Senior/Staff Software Engineer - Silicon Engineering Platform - **Company:** imgtec - **Location:** Bristol, UK - **Experience:** Expert - **Salary:** £95,213.0 - **Contract:** Permanent contract - **Skills:** Artificial Intelligence, Airflow, Application Layers, Business Logic, Automation of Tests, Microsoft Azure, Code Review, Continuous Integration, Information Engineering, Software Debugging, Dependency Injection, Programming Tools, Fault Tolerance, Field-Programmable Gate Array (FPGA), Job Scheduling, Python (Programming Language), Linux System Administration, Object-Oriented Software Development, Queueing Systems, Mockito, Cloud Services, Software Engineering, Data Logging, Git, Pytest, Containerization, Solid Principles, Hardware Acceleration, Asynchronous Programming, Physical Design, Software Version Control, Docker - **Published:** October 8, 2026 - **Apply:** https://www.adzuna.co.uk/jobs/details/5918678540 ## About the Role Committed to making your customers, stakeholders and colleagues successful, you're an excellent communicator, listener and collaborator who builds trusted partnerships by delivering what you say, when you say. You're curious, solutions orientated and a world-class problem solver who constantly seeks opportunities to innovate and achieve the best possible outcome to the highest imaginable standard., * Experience of professional software development, with a strong command of Python (preferred) or an equivalent modern, strongly-typed-capable language. * Demonstrated understanding of SOLID principles, OOP design, and composition-based architecture - able to explain trade-offs, not just recite acronyms. * Proven ability to write testable code: dependency injection, mocking/stubbing external systems, clear separation between I/O and business logic. * Experience building composable software: small, well-scoped modules/functions/classes that combine predictably, rather than large monolithic scripts. * Comfortable with asynchronous programming (e.g. Python asyncio) for coordinating external process execution and I/O-bound work. * Experience designing data models/schemas (e.g. Pydantic, dataclasses, or equivalent) and using type checking to prevent integration errors. * Solid understanding of error handling and failure-mode design: retries, idempotency, graceful degradation. * Familiarity with version control workflows (Git), CI pipelines, and automated testing frameworks (pytest or equivalent). * Comfortable working in Linux environments and calling out to external CLI tools/subprocesses safely. You might also have experience of the following: * Direct experience with a workflow orchestration framework (Prefect, Airflow, Dagster, or similar). * Experience with containerization (Docker, or HPC-oriented tools like Apptainer/Singularity). * Exposure to systems that coordinate with external schedulers/queues (HPC job schedulers, batch systems, message queues). * Experience building internal developer tooling or platform-as-product style systems (i.e., building things other engineers build on top of). * Basic familiarity with cloud services (Azure preferred) and infrastructure concepts (you won't own these, but conversational fluency helps collaboration). ## Description We are building a silicon engineering platform that turns a commit of GPU/AI hardware code into an orchestrated workflow automation that proves it is ready for customer release, including an ML/AI layer that learns to predict how to get there in the fewest workloads possible. This is a large transformation project with executive sponsorship, starting from a clean-sheet design. Designing semiconductor IP involves many tool flows: static analysers, theorem provers, simulation farms running tens of thousands of randomised tests every night, physical design tools that estimate future speed and power needs of silicon. These tools run on a variety of compute platforms - grid, emulator, FPGA, silicon boards. At many companies, including ours, such a stack is held together by decades of scripts, tribal knowledge and manual steps. To replace it, we are building a modern orchestration platform to that coordinates long-running, resource-intensive compute jobs. Our goal is to break monolithic, hard-to-debug pipelines into small, composable, independently testable building blocks - with clear observability and intelligent failure handling. You do not need to know anything about semiconductor hardware; the tools are black boxes with defined inputs, outputs and exit codes, and we have engineers available to explain the domain. What we need is good software engineering, because underneath the domain is a big distributed-systems problem - with orchestration at scale, scheduling around scarce resources, content-addressed caching, data engineering, and correctness problems You will own the application-layer design: the orchestration logic, task/flow abstractions, data models, and the interfaces those components expose. You'll work closely with a principal platform/infrastructure engineer who owns deployment, security, and networking concerns - freeing you to focus on writing clean, well-tested, maintainable orchestration code. Your engineering principles and the quality of your craft matter more to us than prior exposure to our domain and stack, and we'll cover specifics in interview. You will: * Design and implement orchestration logic using a modern workflow engine (e.g. flows, subflows, and tasks in a Prefect-like system), decomposing monolithic pipelines into small, reusable, independently testable units. * Apply solid software design principles (SOLID, separation of concerns, composition over inheritance) to keep orchestration code maintainable as complexity grows. * Define clear, strongly-typed data contracts between pipeline stages (e.g. using Pydantic or similar), favoring lightweight references/pointers over passing large payloads through the orchestration layer. * Design retry, checkpoint, and resume logic so long-running jobs can recover from failure without re-doing completed work. * Implement human-in-the-loop patterns: pausing pipelines for review/approval, and cleanly resuming or rerouting execution based on human input. * Write thorough automated tests (unit, integration) for orchestration logic, including failure-path and edge-case coverage - treat testability as a first-class design constraint, not an afterthought. * Build observability into the application layer: structured logging, metrics extraction, and clear status/error reporting surfaced to end users. * Collaborate with the platform/infrastructure lead to consume infrastructure cleanly (secrets, environment config, execution targets) via well-defined interfaces, without hardcoding infra assumptions into application code. * Participate in code review, championing readability, composability, and pragmatic simplicity over premature abstraction. * Contribute to technical documentation and onboarding materials as the codebase and patterns mature.