Software Engineer - Saved Items
Have you ever wondered what tech goes into supporting the favourite products of 20 million ASOS customers? The Saved Items tech platform team are working on improving the customer proposition and performance of liking and sharing ASOS products.
Our high volume and highly resilient global architecture has to handle up to 1,500 requests per second and saving over 18 million items per day through peak sales. We are continuously working closely with Microsoft Azure on their hottest tech such as Docker, Kubernetes, AKS and CosmosDB and testing it at the highest scale.
Alongside this cutting-edge tech, we also adopt many best practices like TDD, CI/CD automation and Software Craftsmanship plus have numerous training opportunities for you to improve your skills with.
If you’re excited about all these opportunities and think you can bring the right attitude towards customer experience, performance and high availability, send us your details.
What our day looks like:
· Work as part of an enthusiastic and motivated agile development team that takes pride in delivering high-quality software into production
· Take a test-first approach from business requirements through to code
· You will continually develop and improve our code and technology, whilst playing an active role in the conception of brand new features for our millions of global customers Keep our customers happy by writing high quality code to handle our hyper-scale demand Join our regular Tech Develops days to learn new things, take part in internal and external hackathons, share your knowledge and help to drive improvements in engineering
What's in it for you?
· A truly unique and agile working environment where you’ll be surrounded by a diverse range of passionate experts, with two common interests: technology & innovation
· Generous salary, bonus and pension matching Life insurance, free private medical care, cycle to work scheme + more
· A bespoke flexible benefits scheme catered to you
· Best in class Learning & Development schemes and career development programmes
· 25 days holiday + never work on your birthday again!
· Free modern onsite gym, plus personal training and wellness rooms
· Tech Develops days – one day per month dedicated to developing yourself and developing others within Tech
· Tech Presents days – breakfast mornings to collaborate and share your work with other teams
· A dynamic social environment, from company-wide sports days, charity days, ‘Give A Week Away’ opportunities to visit our charity partners in India, company-wide celebrations across Christmas and Summer to name just a few Huge staff discounts and sample sales…
You’ll love our customers
· You'll be obsessed with delivering a fantastic experience to our customers.
· You'll be skilled in taking a test first approach from business requirements through to code, ensuring our customers are happy by writing high quality code to handle our hyper-scale demand
· You'll be working to improve our customer experience either through your own ideas, the User Experience teams or from any ASOSer
· You'll be using monitoring and analytics to understand how our customers use the site and any problems they experience
You love software development
· You'll have solid knowledge of Architecture Best Practices and Patterns (including Event Sourcing, CQRS, Microservices, Domain-Driven Design)
· You'll have experience working with eventually consistent systems, distributed systems and microservices
· You'll have experience with containerisation technologies including Docker, Kubernetes and Helm, and deployment to services such as AKS and ACI
o Including working knowledge of networking, configuration/secret management, volumes and sidecar logging
o As well as being comfortable debugging any issues in deployments
· You'll have knowledge of Messaging/Enterprise Integration Patterns
· You'll have experience deploying Cloud Services and other resources in Azure using ARM templates
· You'll have experience with developing using F# as well as writing scripts in F#
· You'll have experience with CI/CD pipelines, including creating pipelines and deployments using Teamcity and Octopus
· You'll have experience with scripting and automation, including scripting using Bash, PowerShell, .FAKE5, Azure CLI/cmdlet as well as have a DevOps mindset
· You'll have experience working with Azure Cosmos DB, including utilising the ChangeFeed and ideally be familiar with the SimpleEventStore
· You'll have experience with Monitoring and Alerting in Azure, including creating Dashboards, using AppInsights and creating alerts
· You'll have experience with Azure Service Bus, including provisioning topics/subscriptions and settings up filters
· You'll have a good understanding behind the methodologies such as ATDD/BDD, and proven hands on experience with Test-driven development
· You'll have knowledge of Cloud Design Patterns such as Publisher/Subscriber, Retry and Sidecar
· You'll be familiar with polyglot persistence
· You'll have experience building, delivering and supporting RESTful APIs
· You'll have strong experience with testing frameworks such as Moq, FluentAssertions
· You'll have experience with consumer-driven contract testing including PACT
· You'll be comfortable working with Windows and Linux based environments
· You'll have proven experience in Agile and XP methodologies (Scrum, pair-programming)
· You'll have had exposure to React, Scala, Terraform and load testing frameworks such as Gatling
· You'll have good knowledge of Engineering fundamentals (SOLID/KISS/DRY/YAGNI).
· You’ll be comfortable working with server-side, messaging and database technologies
· You'll have an understanding of the benefits of trunk-based development
You have what it takes
· You'll have at least 3 years of C# .NET software development
· You'll have a Bsc/BA/MS/PhD in Computer Science, Engineer or a related field
You develop collaboratively
· You’ll have experience working with Developers and using testing to drive the software development process.
· You'll have a passion to build relationships with other teams and leverage opportunities to collaborate
· You'll have experience pair programming with other Developers and QAs, with the passion to spread knowledge
· You'll want to ensure solutions are built consistently with modern Engineering patterns and practices.