Adrian L: Welcome to the Asos Tech podcast, where we continue to share what it's like to work inside a global online fashion company.
Dave MN: Perfect.
Adrian L: You may have bought some floats from us, but have you ever wondered what happens behind the screens? Hi, I'm Agent, and my pronouns are he, him, and I'm an engineering manager at Asos.
Lucy W: And I'm Lucy Wilson. She also an engineering manager.
Adrian L: To today's episode, we'll be chatting with our engineering Trainer, weaving through the ins and outs of technical training. We'll be also catching up with Mophie, who organizes the monthly tech development.
Lucy W: And lastly, we'll be jumping into the day of a life of one of our software engineers, exploring how they utilize training and resources available. So let's get started.
Adrian L: Welcome, Dave. Could you please introduce yourself?
Dave B: Hi, I'm Dave Heehim, and I'm the engineering trainer at Asos Tech.
Lucy W: What does an engineering trainer do?
Dave B: Well, so I do three main things. One is I deliver training. That's the most important thing that I do. So a couple of days a week, Tuesdays and Wednesdays, remotely on teams, we deliver training to Asos engineers. That's one thing. And then another main thing, perhaps equally importantly, is that I work on the material for the training courses. So we spend a fair bit of time ensuring that the material is up to date. And tech training material, like everything in the It industry, changes very quickly. And so we need to keep looking at it and working on it and making sure it's fresh and up to date. And then finally, the third thing that I do is I still have my hand in the software development field. I'm a software developer by background and so I developed an app to keep track of the training program to let people sign up for training courses. That requires some software development and some coding.
Adrian L: Cool. And can you tell us a little bit about what training is available, what sort of courses you have?
Dave B: So there's two main learning paths that we offer and one of them is what we call the ACP Courses. That stands for Asos Compute Platform and that is essentially courses related to our Asos tech stack, and that is Docker Kubernetes, AKS and CI CD with AKS. And then we have a fifth course which is called the Asos Provisioning Pipeline. And that's sort of a bespoke DevOps pipeline that we built in house and has templates for doing things with Azure DevOps and so on. And then there's another learning path which is about building and constructing good quality software. And we call that SCD or software craft and design. And that teaches good practices like TDD, remote pairing. And also there's courses on software design patterns.
Adrian L: Cool. And how are these courses created? Is it just you creating them?
Dave B: Originally, the material was developed by Asos in conjunction with a couple of third parties including Microsoft. And the ACP courses were developed by Asos and Microsoft. And those were running for a couple of years pre pandemic, and then we lost a bit of momentum during the pandemic. Generally we were delivering courses in house and so we had to figure out a way to deliver them remotely. And so the material was retooled a bit in order to deliver it online. Some of the original material sounds a bit like it was written by a committee. It's got a bit stale and it suffers from the problems that material does if you don't give it some love and care and feeding over time. So you've got to keep looking at it and also evaluating it against current practices. And is it still up to date? So I've been in this role for about a year now. Prior to that, as I said, I've been a software developer my whole career and so in the last year, a lot of what I've been doing is just tidying up the material and keeping it fresh, getting it up to date.
Lucy W: Nice. And who can get involved in the training.
Dave B: So it's available to all engineers at Asos. That includes not just software developers, but data engineers, data scientists, QA people, business analysts, really anyone within Asos tech who wants to get involved in training. And I'm the only person whose day job it is to work on training. Others are essentially doing it on a voluntary basis. And it's one of the most lovely aspects of what we do, is that we're trying to create a community and people are actively engaged in that community first. Ideally, the pathway is you take the course as a trainee and then you take it as a shadow trainer, which means you observe the lead trainers and familiarize yourself with the material, and then you can become a lead trainer. Typically we deliver it as in a pair, so we have two trainers deliver the course. And that means you only need to prepare half the material when you're prepping for the course. And the courses consist of a mix of PowerPoint presentations and also lab exercises. So trainees get some hands on experience.
Adrian L: Wonderful. Can you tell us a little bit about the training app that you've built and how that came to be?
Dave B: So this came about because we were administering the program essentially manually. We had a kind of a wiki page and people would sign up simply by editing the wiki page and we would have various sessions that we were running. And it was all becoming a bit untenable, really, because we couldn't collect any data on what was happening and it was just a fiddly manual process. I thought to myself, this kind of cries out for some sort of an app. And I worked on an app in my spare time, really. I just also had an ulterior motive of improving my front end web development skills. And so I had done a bit of react when I was a contractor and so I built this thing which is React on the front end, which if you don't know what React is, it's a web development framework developed by Facebook and it's quite a popular way of doing front end web development. So it's got a React front end and a net core back end, which is a Microsoft technology. And then it has a SQL Server database, which is also a Microsoft thing. And so that's a kind of common, what they call a full stack web application. Also there's a phrase in the industry called eating your own dog food, which basically means that you practice what you preach and you use your own technologies. In that sense. We're doing that with this application because we containerized it. We run it in docker containers which are running under Kubernetes and AKS and we wrote Azure DevOps Pipelines to deploy those apps to the cloud. So we're trying to use it also as a kind of a teaching tool and a kind of a model application for just an example of a containerized application, similar to what we teach in the training courses.
Adrian L: And what sort of thing does they allow the trainees to do?
Dave B: So at the moment when it was delivered, it was what we call an MVP Minimum Viable Product and it was just designed to let people create sessions and let trainees sign up to join those sessions. And as it's developing, we are working on adding new features like the software crafters course consists of eight modules and so we want to let people sign up as a package deal. Like I'm interested in all eight modules, sign me up for all of those. It's got a little bit of intelligence built into it so it knows about prerequisites like you need to take the docker course before you take the Kubernetes course. So it's smart enough to know if you've actually done that or not and it will tell you haven't met the prereqs for this course and so on. Also we want to be able to let people sign up for all those modules, all those software crafters modules, and get on the waiting list in one fell swoop. So it's got things like that. And it also integrates with the Outlook Calendar. So when the admin is administering the session, maybe a week before, they'll push a button that sends an email to everyone on the waiting list. And then when they're ready, they push another button to create a calendar event and that creates it in their Outlook calendar, invites everyone and also creates a team's link in that invite that we use to run the session.
Lucy W: Cool, that sounds really useful and it's really interesting to find out how much training is available to all of our Asos later on. We're talking about Tech Develops with Mophie, but I was wondering, does any of this training go into the tech develop stage that we have at Asos?
Dave B: So people do use their Tech develops time it's voluntary or it's up to each person what they do on Tech develops and how they spend their time during Tech develops. But one thing we did recently was a little mini hackathon to work on this app that I'm talking about. The Training Course manager and a number of people joined this hackathon and helped develop features for the TCM app. And that includes people who might be back end developers who want to learn more front end stuff or vice versa. And yeah, it was really successful and we hope to do it again soon.
Adrian L: Wonderful. Some very good points that you hit there. Thanks Dave. And next we'll be going over to Mafi to see how she organizes Tech Develops, which is the last Friday of every month. Thank you very much for joining us on the Tech podcast today. Please can you introduce yourself?
Mofe A: Hi, I'm Moffy Adiyami. She her and I am a PMO analyst at Asos.
Adrian L: Great. And can you give us an introduction to Tech Develops and what happens?
Mofe A: Yes, so Tech Develops is a learning initiative that happens the last Friday of every month and typically we have on about six sessions. Sometimes it can be less, sometimes more, and usually they last about an hour each. Where people just come in and whether it's internally or externally, share their knowledge on things that they know. In Tech, helping people to upskill themselves, teach them about new things that maybe come from outside of Asos, but could be relevant to people's job roles. So yes, sometimes we have external speakers like Microsoft that come in once every month as well and they do sessions around Azure container apps, different topics that go on in the tech world.
Adrian L: And is it just external? Are there any internal people that do them?
Mofe A: Yes, so we have internal colleagues that kind of volunteer to host sessions. Usually if they've got some cool idea that they want to present or they've got some new tech that they've found out about and they feel like it would be relevant to people so then they would put on sessions. Sometimes we have things like hackathons where there's an idea in the business and people want to get that session put on to help Asos Tech with what they have going on and then yes, I think it's mainly just people volunteering because I think everyone in Asos is quite enthusiastic about learning. So it's quite easy to get people to come in, want to volunteer. Like usually the agenda is filled up months before the sessions are even planned. So yeah, I think goes quite good.
Adrian L: Cool, sounds really good. So have you got any examples of previous sessions that run that been really popular?
Mofe A: Yes. So of recently, I think since the beginning of this year, we've been collaborating with other departments in Asos, so we've been working closely with the Business Academy, which was formerly commercial, and they've been putting on sessions around what? They do and mainly about the product lifecycle just going into depth of how design works and how we get the clothes from the business out to the customer. And one of the sessions that they did put on towards the end of last year I believe was one on the Metaverse, which I think was really cool. A lot of people were very intrigued. They literally had virtual fashion shows. Just so many different things that you could do in the Metaverse. But I think, yeah, that crossover between commercial and tech has been a really popular session.
Adrian L: Cool. That's great. And so these sessions are normally in the morning, what do people get up to in the afternoon?
Mofe A: So typically in the afternoon it goes into kind of more self learning, self development so people can go online like the Learning Hub and do LinkedIn learning courses. People can just do things maybe that they wouldn't have had time for during their day job to get on with after the sessions in the morning. I know typically some people create things that they want to do in the next tech developed sessions. They then go on to decide they want to do a session after someone's ran a session. So might just be planning things like that. And yeah, just basically any kind of self development, self learning that they could get to that they wouldn't typically have time for is what people usually do in the afternoon. I think tech development is so embedded in Asos tech that it's something that everyone is just familiar with. Everybody loves it. It's like a great time to learn to take a step back a little bit from the day job. And I think that's what makes it quite successful that it just kind of runs itself even though I organize it. So it doesn't really but yeah, not really much else that goes into it because like I said, we usually have volunteers internally, externally quite often. I think externally is usually it's contacts that people in Asos have outside of work that they then obviously speak with and see if they want to come in and do a session. So I think maybe just getting more people to think about their contacts and see who they've got makes me think.
Adrian L: Oh yeah, who should I be bringing in?
Mofe A: Exactly.
Lucy W: Thanks Muffy. That was really interesting. Dave, do you want to introduce yourself?
Dave MN: I'm Dave Pronouncer. He him and I'm a senior software engineer.
Lucy W: Asos, can you share a little bit of your background and how you got into being a software engineer?
Dave MN: Sure, yeah. So like kind of a traditional I say traditional kind of stereotypical way in. I did physics at university and then did quite badly at that. So thought computers were really cool and then yeah, ended up doing software and computer rated design and manufacturing. So for like aerospace and healthcare kind of things. I didn't want to do desktop Windows development forever. So moved more in a web direction and then in the Pandemic, joined Asos as part of the payments team in Birmingham.
Adrian L: Cool. With the payments team, what do you generally work on? Is that front end stuff, back end stuff?
Dave MN: It's pretty much entirely back end. There's a couple of front end things, but yeah, it's backend. Net c sharp full Microsoft SEC.
Adrian L: Cool. Obviously the C Sharp is a rapidly moving environment that always keeps updating itself. Can you tell us a little bit about any internal training you've attended to keep on top of things?
Dave MN: Sure, yeah, I've done a lot of the groundwork with C Sharp before joining Asos or joined wouldn't say a master, but a journeyman. Maybe I can get by. Read the release notes for keeping up to date with Net. But Asos, I did some of the internal training on Containerization and then AKS, the Azure solution for Kubernetes. So that's two or three days courses around. That one thing I really liked in it is that it's cross platform. I was on the course with someone from my team. There's a lot of people from every corner of the tech estate, so you get to meet a lot of people you don't normally do, especially as we're in Payments are in Birmingham, there's a lot of people in the London office we've never met before, so that was nice. And then you've got contact later saying if you have issues or just someone to reach out to you, hey, we've got this issue with AKS we haven't seen before or some weird docker thing. There's someone outside of the team, you can just go, hey, you got five, can you give us a hand? So, yeah, it's really good. Cool.
Lucy W: It's really interesting to hear how it's not just the training, it's the networking and building relationships as well and all of that kind of coming together. We've spoken a bit around tech develops and what it is. So how do you typically spend your time in tech develops?
Dave MN: It's quite varied. One of my kind of longer running projects is Emulating, a support tool. I saw a talk from another company and blew my mind that, oh yeah, this is really useful. And the only way it got made by this other company was people just took some of their time to make it. So we call it the Asos Command line. It's just like automating a lot of the really mundane stuff. So it started as basically a glorified kind of bookmark manager because we have a lot of repositories and a lot of ways of deploying software and monitoring it. And people who'd been at Asos for a while had completely internalized that knowledge and I hadn't. And I was like, I could spend time memorizing it or we can just make a tool, but it's in the command line. You want to make a pull request, you're in a repository. We're all living in our terminal anyway. You just type in asos PR. It works out where you are, where that code is hosted or deployed and then it goes on to more of the kind of querying the system to work out what's healthy, what versions people are like services are running and then some more introspection into the workings of the kind of nonprod for support. So if someone says hey, something's broken, you can go look up what that's doing. So that's kind of part of my time but that's kind of I'm not going to say finished but it's just bug fixing at the moment. But another thing I end up doing is around the kind of outside tech develops CPD stuff that we do. So in payments now we have a book club and a code gym. So some of the organization of those things happens in tech develops because it's a good time to kind of examples of that will be like right now I am building like a library of cater that we can do in our Co club. So in Coclub we take an hour every Monday and we spin up some teams calls randomize pairs across payments and more people from outside payments are joining and then we just pick a random cater and have a go at it. So I am creating a library of those. So it's more self serve because one of the issues with that is people joining and then we're like what are we going to do today? I don't know what are we feeling? But if we have a pre built list of here's a bunch of cater rated by difficulty and how long they take, you can just pull a random one and then get going to just decrease the friction to get this thing going. Because again, part of it is the networking with people outside your team, outside your department trying new tools. So if I'm going to end up having just some templates we spend a lot of time just like setting up net projects to run these catters and make tests for them. So just having that boilerplate ready to go. So the friction is just nothing at all. And I've started making my own ones with varying degrees of success. So I made just like a very simple one which I called full English time. The idea is that you get given a Unix timestamp and you have to turn that into a full English sentence of the date and time and you are forbidden from using system libraries that do that for you. There's an honor system in that case but it gets people thinking about can you do it in a functional way? Do you want to do domain modeling around these things? And that was quite successful. Everyone's achieved it and did the extensions. And the other kind of CPD thing we do is kind of a book club. So we read a chapter a week and then discuss it. So in book club that formats intech develops what I use that time for. Sometimes it's catching up because it'll take time to read this. Sometimes if it's a bit of a struggle of a book, you don't prioritize reading it in fun time so you catch up or investigating new books. So we just finished a book on event driven design, so designing systems in a sort of event driven way. And we had a voting session on what we want to do next. And I was completely out of ideas, so I used the O'Reilly subscription we have just to take the morning and read the first couple of chapters of a bunch of books to work out. Is this an appropriate thing for book club because we don't want to repeat the same old like TDD thing a thousand times or we've done quite a bit of domain driven design recently and functional stuff, so kind of avoiding those things and looking at other things. So that's good. And my suggestion didn't win the vote, but there will be other votes and I can petition people to vote for my thing. That's good.
Adrian L: Cool. What other sessions have we attended on a Friday?
Dave MN: Some of the kind of internal sessions I think most recently. Really good one on this templating initiative we have. So the idea is we spin up a lot of quite similar services. So you've got like front end APIs that people are calling or you've got worker services that are handling messages in the background and running cron jobs and there's a lot of boilerplate there. So like you've got a service, it's going to go in AKS, but there's like boilerplate for each one of those things. And then you add sort of logging, you add authentication and you found doing the same thing over and over again. And teams have attempted to tackle this in a kind of platform basis. So there's a couple of payments templates that we have and I've used and they're very helpful because they get us up and running quickly, but because there's a smaller pool of people using it, it doesn't get maintained as much as maybe you want to have. So there's this Templating initiative which is come out of the Defenders of the Wheel initiative that we have which is to reduce this repetition. My support tool is a thing that I've posted in Defenders the Wheel and there's a couple of other support tools that do similar things and kind of aligning our thinking on what they want to be and have we solved each other's problems. But this templating one is taking these sort of team based templates and making them much more open to the rest of the company in a kind of inner source way to say, hey, we've got an API template and it's got plug and play near get packages for adding, logging, authentication, all of those things and having that sort of maintained in the public in the inner source sense so that lots of people can come along, contribute their ideas, say, hey, actually this isn't best practice. More of a kind of flow of more exchange between kind of teams around that sort of thing. So at one of these sessions, one of the people spearheading this just put something in the schedule to say, hey, I'm going to talk about the Templating initiative, come along and find out about it and then how to help. So it started with just like an overview of what I just said, the problem we have, what he's doing, what we are doing to solve the problem and then how to help. So yeah, it led from what is the problem to hey, here's some GitHub issues right now, you've got the rest of tech develops, go tackle some of those issues. And yeah, so that was really good. And then opening the floor to we've got these two templates, are there more things that we repeat? So that was a really good way of spreading the word. Again, the networking. There were people in that call who I'd never met before and it was nice to see everyone's perspective of what they want. This is back end focus, but there were some front end people coming in and saying, hey, they've got similar kind of Templating problems to tackle. Yeah, those are the kind of big ones I had. So that day was morning session on Templating, afternoon writing catters. So it's really varied. Is the answer to your question. Long winded answer, there's a lot of things you can do.
Lucy W: So you've mentioned Defenders of the Wheel a few times as a really cool name for something. What is? Defenders of the wheel.
Dave MN: So, Defenders of the Wheel is an overarching kind of way of organizing collaboration across all of tech to solve problems, but not solve the same problem over and over again. So we're not reinventing the wheel. We have a team's channel where if you are solving a thing so example my thing was I'm creating this support tool post that you're making it and then other people can jump in, say, hey, we've already got this. It's immediately like connecting you with other people who are solving the same problem. So you can focus your efforts rather than everyone solving the same problem 100 of times. You can just solve it once. It's also the kind of place to go that if you think there should be something or you're like, we must have a library that does this in Asos because surely we do X, Y or Z all the time. It's the place to go to find out if that is true. That's where our Asos call libraries come in because there's a lot of them. Like just reading GitHub lists might not help if you can just say, hey, we have this problem. Someone can say, yeah, we solved it in this thing and then it's related to our inner source. So once you know that you're using something that is maintained by the defenders of the wheel, if you have an issue, you know straight away you can go to GitHub and create an issue or you can start fixing it yourself because it's in a source. So you say, hey, this library has a weird bug, I think I'd like to fix it. You can just take that on and do it. Which is a thing you could reasonably do in tech develops. It's really good idea. And the name is excellent. I heard it and I was like, I know what they do straight away.
Adrian L: It is a great name. Is there any sort of tips or advice you can give to anyone trying to get into some of these things? Trying to get personal development?
Dave MN: Invite people to maybe not in the official schedule, but say in whatever channel you're in, say, hey, I'm going to be doing this tomorrow, do you want to come and join? So with our support tool, the kickoff of that was like a three person mob on the first day and we got a load of stuff done. Bring people in. You don't feel like you don't have to be on your own. But equally, if you want to just power through a book on some technical aspect, seize that. Don't be afraid to do that and then don't be afraid to kind of think, oh, I didn't do enough. I had this kind of thing when I spent one day just like doing some catter and then reading a book. It did not look as impressive as someone else who had investigated some new technology to solve a problem. But it's important to say, hey, I'm here doing this thing, it's valuable to me. And that kind of create that accepting kind of culture of hey, the culture is what you make it. It doesn't just magically happen. You have to kind of make it happen by doing so. If you just say, yeah, I did these things and I think that they were useful, encourages other people. So do those things and if they'd not considered that, so if people hadn't decided that, oh, I could take the day to catch up on book club because it's 100% allowed, it's like encouraged. It's professional development. You're learning about tech. The great thing about Tech develops is that everyone's kind of a view of what they want to learn is different. We're all different. So kind of expanding your horizons of is available. It's really good.
Adrian L: Cool.
Lucy W: That was great. Thanks for listening. And that's the end of season two of the Asos Tech podcast.
Adrian L: If this is your first episode, listen back to the previous 15 episodes for more insights, the culture and tech behind the screen.
Dave MN: Asos Tech.
Lucy W: Don't forget to subscribe. We'll be back for season three later in the year. I'm.