CSS (advanced)
JavaScript (advanced)
Company Description
We're ASOS. We blend our flair for fashion with our love of cutting- edge technology, but more importantly were interested in how we can bring the best out of you.
We exist to give people the confidence to be whoever they want to be, and that goes for our people too. At ASOS, you're free to be your true self without judgment, and channel your creativity into a platform used by millions.
Job Description
The Principal Software Engineer role is one of the keystones in the delivery of business solutions and the advancement of our technology.
As a Principal Software Engineer, you will work alongside a small, select group of peers who are collectively responsible for defining the tooling, processes, patterns and practices in use across the ASOS software development life cycle, an open-ended tasking which is less about outlining a one size fits all approach and more about identifying, nurturing and playing to, the strengths of each individual team.
Work with peers in the Principal group, as well as engineers on the ground to identify and implement tools, technologies or working practices which could be exploited to improve the quality and productivity of ASOS Engineering both at the team level and at the department level.
Take pride in being considered a goto person or a technical authority, happy to help teams and individuals in their endeavour to deliver software, whether it be in your provision of general guidance and advice, problem solving, discussing and underwriting a technical design or as a point of escalation in resolving and overcoming the day to day challenges of software engineering.
Be a prominent force in defining and driving (while continually refining) good engineering practices across the engineering community, either by honing existing approaches or by recommending new ways of working and subsequently engaging with the appropriate parties, where necessary, to transform new or theoretical approaches into productive software engineering processes.
Work closely with a number of Lead Software Engineers to ensure that software is built to the highest standard, is built in a way that favours a simple and maintainable approach over a clever and complex one, is tested at every step on the path to production using the appropriate tools and practices, is deployable using automated tooling only, and is suitably instrumented to meet core operational and business monitoring needs.
Work with engineering teams and teams such as DevOps, Security, Database Engineering / Administration and Service Delivery to ensure that software being proposed for release into production is of the appropriate standard.
Verifying - and taking accountability for - ensuring software is fully tested, is of an acceptable quality, that the associated release package is complete and that the appropriate stakeholder involvement has been established in a timely fashion at every stage on the path to live.
Establish and maintain an open and collaborative relationship with Lead Software Engineers and the engineering community as a whole, to the point where as much as you may be viewed as a figure of technical authority, people treat you as someone they can feel comfortable in sharing their ideas, thoughts and experiences with and are actively encouraged to do so.
Be a versatile and efficient problem solver who is able to bring to bear years of experience and expertise in order to help teams resolve and overcome technical challenges of any size or complexity, to the point where, if the situation and circumstances dictate, you willingly immerse yourself into a team to accelerate problem resolution or provide more general hands-on guidance and direction.
Be committed to building and maintaining highly productive, happy teams which are instilled with the ethos of delivery - where the ultimate and only real measure of success is working software in production - by ensuring that the people around you are continually challenged, motivated, mentored and supported where necessary.
Develop and foster strong relationships with Business stakeholders and Business Analysts to ensure that the software delivered by your team maps to the requirements of the business
Seek out and actively promote ideas and techniques in the community both within ASOS and externally
What Success Looks Like :
Commitment to delivering high quality well tested software and to lead those around you to do the same
Proven experience of leading teams in the successful delivery of complex, highly performing and high quality software systems, with a strong focus on the Javascript stack (NodeJS, React, NPM / Yarn, WebPack), web browsers , visualization technologies (CSS, images, etc) and web performance & Site Reliability
Experience and understanding of Agile and XP practices
Proven experience of leading projects through the full application lifecycle, and an appreciation of the importance of each phase of the SDLC and each associated discipline (QA, ALM)
Proven experience of working with business stakeholders, Product Owners and Business Analysts to analyse requirements, develop ideas and design solutions
Understanding of non-functional requirements, quality assurance and continued improvement methods
Established areas of interest that you keep up to date on in the industry, continuously improve on and blog about
Proven experience of working with 3rd party systems and organizations
Qualifications
Excellent business presentation, communication and collaboration skills
Be diplomatic in nature, open and honest and seamlessly fit in whether you are working within a development team or presenting a technical solution to C-Level Executives.
Strong proactive leadership skills.
Excellent multi-tasking and strong communication skills are essential.
Team development and mentoring skills
Excellent analytical and problem solving skills
A very strong understanding of the Application Lifecycle and a solid understanding of Quality Assurance, Performance Engineering, Site Reliability, Security, user testing and Build and deployment.
Understanding of the importance of logging, diagnostics and related telemetry concerns and concepts
Can articulate to the business the impact of technology / design choices, and can communicate when trade-offs must be considered
Excellent and proven design capabilities including :
Design code that adheres to the relevant design patterns for frontend engineering
Experience of service orientation of solutions
Understands when to make use of asynchronous programming techniques
Understands differing techniques used in Javascript programming (functional / prototypical)
Understands testing techniques used in front ends (Unit, functional, integration, snapshot, visual regression, accessibility, security, performance, manual)
Can design and implement loosely coupled applications / systems
Implication of design choices on scalability, performance, accessibility, reliability and resilience
Knowledge of how and when to identify and evaluate 3rd party systems and libraries
Affinity for telemetry from server, client, browser, user, 3rd parties and infrastructure
While not as hands-on as perhaps one might have been, proven expertise and experience in broad base of technologies, including :
Deep knowledge of ReactJS, Isomorphic Javascript, Styled Components, Pre / Post CSS, NodeJS
Working knowledge of the tools and practices available and appropriate to each phase of software delivery, such as VRT, WCAG, Unit Testing, TDD, BDD, Integration Testing, Performance Testing
CI, Continuous Delivery, Build Automation, Yarn / NPM Package Management
Cloud based development & delivery platforms (ideally Microsoft Azure)
Container driven design, implementation and deployment onto cloud (Docker, K8s)
Asynchronous programming with Redux, promises, async await
Understanding of cloud and on-premise infrastructure concerns
Additional Information
What's in it for you?
Competitive salary, pension, and private medical care scheme
Performance related bonus
Flex benefits allowance - which you can chose to take as extra cash, or use towards other benefits
25 days paid annual leave + an extra day for your birthday
Employee discount (hello ASOS discount!)
Tech Develops - our internal tech focussed skills development programme to focus on your personal growth as a technologist
Opportunity to represent ASOS at industry leading events
Opportunity to help shape and drive our DE&I initiatives in Tech (like our WIT movement and Diversity mentoring in Tech)
Opportunity to make an impact from day one and work with the latest in cutting edge of technology
We want our people to be whoever they want to be. That’s why we’re committed to creating a truly inclusive culture at ASOS, but how’re we doing it?
Through our Fashion with Integrity strategy we are driving diversity, equity and inclusion across every aspect of ASOS and ensuring every ASOSer can be their authentic self at work.
We want our people to be whoever they want to be, because we believe people who bring their best selves to work, do their best work.
We’re proud members of Inclusive Companies, are Disability Confident Committed and have signed the Business in the Community Race at Work Charter.
We’ve also recently been placed 8th in the Inclusive Top 50 Companies Employer List too.
There are safe space employee networks and we host a monthly DEI events series to help support and celebrate all of our people.
We are constantly listening to our people, evolving, changing and taking a flexible approach to how we make ASOS truly inclusive.