Senior Software Engineer

  • Software Engineering
  • London, United Kingdom

Senior Software Engineer

Job description

The primary focus of the role will be the development of our proprietary Retail Cloud Platform.

You’ll be working with a variety of programming languages, paradigms, platforms, frameworks, and methodologies, including machine learning, to accomplish solutions that precisely respond to our clients’ business needs.

You’ll also be encouraged to contribute to all other components of our proprietary data capture and sales growth and optimisation platform based on latest frameworks and cloud solutions comprising a broad spectrum of components, including system services, drivers, APIs, data analytics, and GUI.

Your key responsibilities will include:

  • Experience with Python is a must
  • Building cloud systems that can handle millions of concurrent requests, with preference toward experience with GCP
  • Creating solutions that you and yours can experience daily in the real world

  • 
Improving and introducing new processes to get things done efficiently

  • Devising and implementing automation strategies

  • Determining feasibility by evaluation, analysis, and requirement definition of proposed solutions

  • Continually enhancing our products and internal tools with code reviews, pair programming, investigation of problem areas, and other modern agile techniques

  • Staying on the leading edge of engineering practices

  • Contributing to information security controls

Requirements

The right candidate will have:

  • Experience in software engineering and modern programming techniques and paradigms as well as the ability to apply them to complex software products.

  • Understanding of good engineering practices, such as the single responsibility and inversion of control principles, test-driven development, code reviews, common design patterns and antipatterns, continuous integration, and system testing.

  • Appreciation of the complexities of distributed systems, such as real-time synchronisation, serverless computing, and highly-available architectures.

  • A pragmatic approach to refactoring code and migrating between various technologies, e.g. upgrading to a backwards-incompatible version of a widely-used library or changing the chief programming language..

  • Automation and optimisation mindsets..

  • Excellent communication skills and the ability to collaborate with others across cultures, locations, and time zones..

Experience with the following will be a plus:
* Python
* Developing with Windows API
* An understanding of machine learning solutions
* Test-driven development
* Continuous integration
* Confident command of SQL including handling complex data structures and funnels
* C#, C, or Java
* Experience using distributed version-control systems