Principal Software Engineer
Posted 4 hours 5 minutes ago by Bytelab
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 18 August 2026
The roleYou'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 howthat work is done, write the parts that matter most, and make sure what we handover 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 youfind, clearly and without drama.
- Set the engineering standards for each engagement: design, testing, reviewand dependencies.
- Pair with and coach client engineers, so the improvements outlast us.
- Help shape proposals and estimates, and grow the engineers at BYTELAB.
- Expert depth in at least one of the languages below, and a sharp sense ofwhere it goes wrong.
- A track record of leading teams that ship production software, ideally inmore than one organisation.
- You can explain a technical risk to a non-technical client withoutalarming or soothing them.
- You leave codebases better than you found them.
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 suchas 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.
- Go: idiomatic Go, concurrency and knowing when not to use it, containersand observability, and a short dependency tree.
- Rust: ownership and lifetimes, async with Tokio, containing unsafe, and FFI with C and C++.
- C++: C+ and later, embedded or systems work, and sanitisers, staticanalysis and fuzzing as everyday tools.
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.