[Engineering]
Principal Software Engineer
Lead the engineering on client engagements in your language: set the standards, take the hardest problems, and leave every client's team better than you found it. Open in Python, Java, C#, TypeScript, Go, Rust and C++.
- Level
- Principal
- Languages
- Python, Java, C#, TypeScript, Go, Rust, C++
- Location
- United Kingdom, remote
- Hours
- Full-time, permanent
- Posted
The role
You’ll be the senior technical lead on client engagements in your language. Clients come to us with systems to build, rescue or modernise. You’ll shape how that work is done, write the parts that matter most, and make sure what we hand over is something their team can own.
What you’ll do
- Lead our delivery teams technically, from the first commit to handover.
- Get to grips quickly with unfamiliar codebases, and tell clients what you find, clearly and without drama.
- Set the engineering standards for each engagement: design, testing, review and dependencies.
- Pair with and coach client engineers, so the improvements outlast us.
- Help shape proposals and estimates, and grow the engineers at BYTELAB.
What we’re looking for
- Expert depth in at least one of the languages below, and a sharp sense of where it goes wrong.
- A track record of leading teams that ship production software, ideally in more than one organisation.
- You can explain a technical risk to a non-technical client without alarming or soothing them.
- You leave codebases better than you found them.
Languages
Tell us which of these you know in depth; we hire for each.
- Python: typed Python checked in CI, Django, FastAPI or Flask, pytest, and a healthy suspicion of the packages you install.
- Java: Java 17 and later, the JVM, Spring Boot or similar, messaging such as Kafka, and Maven or Gradle builds that take the supply chain seriously.
- C# and .NET: .NET 8 and later, ASP.NET Core, Entity Framework, and Azure, including identity with Entra ID.
- TypeScript and JavaScript: strict TypeScript, Node.js on the server and at the edge, a major front-end framework, and web security from CSP to the npm supply chain.
- Go: idiomatic Go, concurrency and knowing when not to use it, containers and observability, and a short dependency tree.
- Rust: ownership and lifetimes, async with Tokio, containing
unsafe, and FFI with C and C++. - C++: C++17 and later, embedded or systems work, and sanitisers, static analysis and fuzzing as everyday tools.
Working at BYTELAB
Our people are empowered to say plainly what they find, to each other and to our clients. As part of our consulting function you'll have the opportunity to pursue a range of challenging and ambitious problems with creative solutions, ultimately leaving every client able to carry on without us.
[Apply]
Tell us a little about yourself and attach your CV. No cover letter needed. You'll get an email to confirm we have it.