Senior Software Engineer

Senior Software Engineer

Salary: £60,000-£90,000 (dependent on experience)

Location: Richmond

Remote working: some available

This position performs complex research, design, and software development assignments within a software functional area or product line, and provides direct input to project plans, schedules, and methodology in the development of cross-functional software products. This position performs software design - typically across multiple systems; mentors more-junior members of the team; and talks to users/customers and translates their requests into solutions.


    • BS Engineering/Computer Science or equivalent experience required
    • Experience working within three or more globally distributed Agile development teams.
    • Experience working on three or more high-reliability, high-availability microservices architecture platforms.

TECHNICAL SKILLS: experience or willing to learn the following:

    • APIs: REST, GraphQL
    • Languages: C# / .NET Core, ReactJS/Typescript, CSS, SQL
    • Testing: Pair Programming, TDD, BDD, vulnerability, security and performance testing tools
    • Instrumentation: Logging, monitoring, dashboards, alerting
    • Database: DynamoDb, PostgreSQL
    • Security: OWASP Top 10
    • CI/CD: Git, pipeline management tools, green-blue deployments, canary releases
    • Cloud: AWS, Lambda, S3, SNS, SQS, Cloudformation, Containerisation, Serverless
    • Useful: PowerShell, Python, PowerBI


    • Senior Developer experience in a multi-team, distributed Agile environment (Scrum and/or Kanban). Involved in the full end-to-end lifecycle from design to deployment.
    • Able to build customer and team confidence through deep knowledge and being collaborative and customer focused.
    • A polyglot, expert in C#, confident developing the full stack through multiple application tiers with a passion for learning new skills.
    • Strong technical design skills and fluent in the application of SOLID Principles, design patterns, domain modelling, event-driven architectures, micro-services and message queues.
    • Able to take a test-first approach to development and skilled in TDD, BDD, integration testing, logging and monitoring.
    • Experienced in software performance optimization and knowledgeable in concurrent programming.
    • Strong experience developing global multi-lingual and multi-tenant systems.
    • Skilled in maintaining and improving CI/CD workflow processes and tools.
    • Exposure to Cloud technologies and at ease with troubleshooting in complex environments.
    • Exposure to data science, machine learning and Big Data principles.