[Engineering]
Senior Software Engineer
Build and fix production software for a range of clients in your strongest language, with a team that reviews every change and cares how things are built. Open in Python, Java, C#, TypeScript, Go, Rust and C++.
- Level
- Senior
- Languages
- Python, Java, C#, TypeScript, Go, Rust, C++
- Location
- United Kingdom, remote
- Hours
- Full-time, permanent
- Posted
The role
You’ll join our delivery teams on client engagements: building new systems, untangling existing ones and getting software that matters into production. You’ll work closely with client teams, so how you communicate counts as much as how you code.
What you’ll do
- Design, build and ship features end to end on client projects.
- Find your way around unfamiliar codebases quickly, and improve them as you go.
- Review code carefully, and welcome the same in return.
- Work directly with client engineers and product owners, and help them make good technical decisions.
- Write the tests and documentation that let a client own what we built.
What we’re looking for
- Real depth in at least one of the languages below, with production software to show for it.
- New domains, stacks and teams don’t throw you.
- Good security habits, as a matter of course.
- Clear communication, in writing and in the room.
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.