A Tech Career for Life: How M&S does Tech Differently
Meet Janak, Software Engineer, as he tells us more about what it's like to work within our tech team, problems we're currently solving, company culture, and top tips.
After graduating from LSE, expecting to end up in Banking or Finance, Janak found that the culture of Investment Banking wasn’t for him, so he joined a startup as a Finance Analyst instead. Whilst he enjoyed the culture more, his interest in problem-solving and side hustles led him to learn just enough code to develop and release a simple iOS app. After releasing his first app in May 2013 (an eggless baking recipes app, in case you were wondering), he quit his job to focus on apps full-time and managed to travel across the world to New Zealand and South America for 3 years.
Now at M&S for the past year, he speaks about what it’s like to work as part of our tech team, including problems we're currently solving, culture and his top tips.
What are some interesting problems you and your team are solving at the moment?
Marks & Spencer is one of the UK’s most respected retailers so we’re able to work in some interesting areas that you might not usually get to see at your typical tech company. A lot of this is tech that bridges the gap between the digital and physical world. For example, the team are working on Scan & Shop which enables customers to scan items on their phone in the store, and then walk out without ever having to queue or visit the till.
We've not only had to make the tech work, but we've also had to think about how to engineer it in a way that people don't find it difficult to use. For example, I'm experimenting with tech like beacons, so the app knows immediately which store you're in, meaning we skip the whole step of the customer trying to find and identify the store.
One interesting problem that we're still trying to solve is that some customers simply aren't comfortable walking out of the store without visiting the till. A lot of people think that we'll think they're walking out without having paid and don't want to go through the embarrassment of being stopped. That's definitely a problem that I didn't think I'd have to consider working in tech. But it's really, really interesting figuring out how to make the process as welcoming and comfortable as possible but also at the same time, minimising stores' concerns about loss prevention on the other side, as well.
Can you tell us more about Closer to Customer?
Closer to Customer is where those of us who don’t work in stores, which includes the entire tech team, visit stores instead of the office for a few days each year. The idea is that we meet and talk to our end customers to learn how they use what we’re producing, and get their feedback. From there, anything we learn we send to our CEO via Straight To Stuart which is an app where all colleagues input suggestions and feedback, other colleagues can vote and comment, and our CEO Stuart Machin replies to every one. It means that great ideas are heard and discussed, no matter where in the organisation they come from. And colleagues whose ideas are implemented get recognised and celebrated too.
How does M&S – a traditionally non-tech company – actually function as a tech company?
Where do I start! This was one of the most surprising things to me at first. If you look at your larger, more-established companies, they usually have a compliance or change acceptance board (CAB), whose job it is to consider and sign-off on any changes. At a couple of companies I’ve worked at, everything had to go through the CAB: Any time the mobile team wanted to release a new version we had to take it to the CAB, even changing the colour of a small piece of text would need to be CAB approved. It slowed down development hugely and meant we couldn’t quickly iterate or test ideas out.
While M&S does still have a CAB, we learnt very quickly that if we want to be competitive, our tech teams need the flexibility to make decisions and experiment. So while the CAB’s remit started out quite large, with a tight grip, like all older companies, that has loosened over time to the point where in my time at M&S I’ve only heard of one instance that the CAB was needed. That progressive change is a good example of how M&S is across all areas. What I’ve noticed is that M&S aren’t trying to hold onto their outdated ways of working, and are very open to feedback and suggestions from all of the extremely smart and experienced people (CTOs etc.) they’ve brought on board to make change.
What differentiates M&S from other tech companies?
One thing that I’ve experienced at larger companies is that your role is very siloed, hierarchical structures are very rigid, and exposure to teams outside of your own is very limited. Whereas in the tech startups I’ve worked in, and at M&S, everybody gets stuck in to make things happen and the atmosphere is more fun and collegial because of this. The tech teams are not siloed which is one of the things I really enjoy about working at M&S. I’ve worked directly with 4 different designers, I’m encouraged to discuss and reach out directly to stakeholders and I’m always talking to iOS & Android engineers on other feature teams to share ideas & improvements. Things move very quickly, there are a lot of ideas. It’s clear the organisation has bet big on mobile apps and wants them to succeed. It’s a lot of fun at the moment working on tech like AR, GQL and AI personal shoppers. The atmosphere within mobile apps is more like a startup. We have plenty of ideas and test them using MVPs, iterating quickly before investing the time to fully build them out.
The interview process is another area where M&S is more progressive than other companies of the same age. That was the first sign for me that working here will be more like a tech company than a big retail company. In speaking with my future colleagues it was clear that everyone was switched on and pragmatic. Nobody tries to slip you up with a trick question or something you’d only learn for a CS degree. There is a System Design stage which is unusual for mobile interviews, especially outside big tech. But it focusses on the architecture of a mobile app (rather than the backend) and was a lot of fun because we were able to discuss architecture patterns, how I would theoretically organise the dataflow, where logic would go and how logic could be separated. And because it wasn’t part of the pair programming stage, we were able to discuss in much more depth.
How does M&S listen to its engineers? Do you have any examples?
Tech at M&S is very progressive, we’re constantly trying to improve the tech stack and we haven’t got tied into legacy technologies like many other 100+ year old companies. For example, there is no Objective-C left in the iOS codebase and I fully expected there to be given how old and large the codebase is, but the team has been surgical in upgrading to Swift. Even though we support iOS 12 as our minimum target, new features have the freedom to use newer, more appropriate, tech such as SwiftUI & ARKit.
Another thing is that many of the tech decisions come bottom-up rather than top-down. Within our feature teams we are encouraged to find the best solution, and identify the best technology, to address the specific problem we’re working on. Impressively the web team have recently re-built the entire front-end with Next.js because it is the best solution for us right now. Next.js is what the previous, startup company I was working for used for their web platform, and that was a fresh greenfield project where they had their pick of frameworks to choose from.
It is incredibly hard to get stakeholders to sign-off on a few months of refactoring work for something that, once complete, won’t make an immediate difference to users, but is the right decision as a foundation to build on top of for the future. It’s a few months where those teams are not working on new features. The fact that M&S leadership understood the benefits of doing so shows that they take tech seriously and listen to engineers.
What tips, both practical and technical, would you give to those looking to join your team?
- Definitely prepare for the System Design interview stage, this is a great resource: https://github.com/weeeBox/mobile-system-design
- Interview us as well, use the process to see if we’re the kind of people you’d like to work with on a day-to-day basis, and prepare a few interesting questions to ask us as the end too.
- In the technical stages, take your time before jumping in, and ask loads of questions to clarify things.
- With the time limit, we don’t expect a complete solution with all the bells & whistles, we’re more interested in how you approach the problem and how you think, so help us to see this by over-communicating your thought process.
Originally published by Hackajob here.
Share this story