What The Stack?
A podcast where Andy asks his guests about the hardware, software, tools and people they rely on to build our products.
What The Stack?
Maintaining Code Quality in Large Teams and Solo Projects with Miles Woodroffe
With Miles Woodroffe, CTO of Mindful Chef.
He takes us through his journey from a hands-on coder to a managerial role, sharing his passion for Rails 7 and the Turbo Native framework along the way.
Welcome to the what the Stack podcast, where we dig into the hardware, software teams and tools that people use to build amazing things on the internet. We'll focus on one of those angles on each show and today I'm joined by Myles and he's going to talk to us about all of those things.
Miles:Good afternoon. Yeah, I'm Myles Woodroffe. I'm the CTO at a company called Mindful Chef and also an advisor at Cook, and then I do a bunch of other kind of Rails-y stuff Been around the Rails world for a long time Well, literally Rails world, but the Rails world.
Andy:We are inside the Rails world as we sit.
Miles:Yeah, rails since 2006, I believe. So, yeah, yeah, cool, glad to be here.
Andy:So you've been part of a big team. You were in Japan before and you moved back to the UK and ran a big cookpad team there. You're now at Mindful.
Miles:Chef, which is another sort of medium-sized team, would you say, yeah, small to medium.
Andy:But you've also, in between those times, you were hacking on some personal projects as well. You've tried all of the ways of doing Rails. So how have you found? Rails is obviously the fundamentals of your software stack. Let's talk about your private, your personal project. What was the stack that you used for that? What software, what parts of Rails did you use? What parts of Rails didn't you use?
Miles:What software? What parts of rails did you use? What parts of rails didn't you use? What did you find great? What did you find hard? Yeah, it was pretty much moving into management a bit.
Miles:I wrote like the first line of code at cookpad, really proud of that still after 15 years in history, but then got out of coding. But then this whole rail seven stuff started popping up and I thought this looks amazing, gotta build something. Yeah, and I went through this kind of weight loss journey and I was using my fitness plan. It was really driving me crazy that I couldn't do what I wanted to do. I thought, hang on, I know how to do this stuff. I could do software, let me try. I just made a little thing. So, and then I got really hooked into the kind of turbo native world.
Miles:So in terms of stack, yeah, that was, uh, like rail seven, trying to use all the new fancy stuff. Basically I I went full-on default, don't do anything that isn't in the default stack. I even went to Minitest after many years, which I love Minitest now. Yeah. So I built this app, end-to-end Rails Herbo Native, got it in the App Store somehow. Christmas Day is a bit sad, but it's my tip Submit an app on Christmas Day and it was released on the day after. Submit an app on Christmas Day and it was released on the day after.
Andy:There you go. So, in terms of how was that different from the stack that you've been working with at Cookpad, or even the stack that you have currently Mindful Chef was in existence before you arrived as CTO. So how was the stack of your personal vanilla Rails? Which bits are different and what are the advantages and disadvantages you found with that?
Miles:Yeah, it's super interesting because, building your own thing, you can just do what you want and you don't have to answer to anyone. Yoloing the tests. Yeah and Cookpad was a little bit like that, because we started a new project and this was when was that?
Miles:That was 2010. I can't remember what version of Rails it was, but from day one I hired a couple of great engineers and we just wanted to write great code, really focus on quality. So even there it was great. But as we grew to C85 in the team, it really becomes a massive challenge to keep all that together.
Andy:To coordinate.
Miles:And it's just honestly. It's just people and when you work on your own, there's a certain thing.
Miles:This one-person framework really resonates with me and, having seen that, what you can do with it, it's, yeah, absolutely mind-blowing. Um, so, yeah, I think, yeah, so that's like a cookpad we split away from japan cookpad, which is a bit of an older code base, but we had the luxury of starting from scratch. Okay, we spent, yeah, almost 14 years same majestic might be an overstatement, but monolith really focusing on code quality, hiring people who really enjoy that as well. I think it's critical just really committing to the quality of the product and the code base. And then, as you said, coming into a new company, mindful Chef. It was built on a different kind of mindset to that, so, adjusting to that, building a team, it's just lots of challenges, but ultimately it's the people.
Andy:Yeah, yeah. So in terms of the hosting of your personal business, how did you approach that?
Miles:Yeah, I think initially I put it on flyio which I found cool, but then this thing called Kamal came up. What the hell is this Kamal thing Got into that? Absolutely love it, so I'm full on buy the book.
Andy:You have a VPS somewhere? Multiple.
Miles:Hexner.
Andy:Okay, nice.
Miles:Actually, I was just sitting next to Donald at Keynote which was amazing because I was looking for him, so there, and actually I was just sitting next to Donald at the keynote, which was amazing because I was looking for him. So there it is. So, yeah, I'm thinking about how to upgrade to Kamal too, but my personal stuff, or Kamal, I've helped two friends also get onto it and it's phenomenal. It really is. In my day job we're using Heroku, which, yeah, david was positive about earlier and, yeah, heroku is a great product. Great product, a bit more complicated cost, a little bit harder than a bit very pricing, cool platform. Yeah, flash services at software as a service and then cookpad yeah, was the opposite scale 8 full-on AWS, big team right when kubernetes yeah and I still single person framework, come all you're all in you like that?
Andy:is there a world in which you can see the, you can see Mindful Chef moving towards that sort of more single laptop deployed kind of thing, or do you think that train has somewhat sailed?
Miles:no, but I think for any small company of massive scale I think it's a no brainer. It's kind of showing that it can be done but we're not all level.
Andy:But still, I think you can go a long long way.
Miles:I think David said it. I can't think how to paraphrase, but you go from your small app tens of thousands, hundreds of thousands. You're not Shopify.
Andy:And when you are Shopify. You can hire smarter people than you to fix those problems for you lots of them, yeah thing um, that's the other dichotomy that you're embodying. Is the one person versus the team like do you have? What's your approach to managing other humans in a rails or software engineering environment? Primarily rails, obviously.
Miles:Last decade and a half yeah, I think it's difficult, you, you really just have to get everyone on the same train, and I don't know if this is the right way to do it, but my strategy has always been roll up my sleeves, get in, write the code, show how it's done, show how I think it should be done, listen to people, but have a kind of just work together, yeah, always focusing on quality and, you know, building a great product, because we we're building a product for customers. Obviously that's that's how we pay the bills, but we have to work in this environment every day. It doesn't have to be awful. Let's work together and build something.
Andy:Bills, but we have to work in this environment every day. It doesn't have to be awful.
Miles:Let's work together and build something great that we love to work in.
Andy:Yeah, newsflash, your job doesn't have to be awful it can be amazing.
Miles:Yeah, we're so lucky, yeah, that we can do this. Yeah, I think it's just bringing people on board. Bring the right people on board, working with them, empowering them to bring what they have. I mean, I love this conference we're at railsworld because there must be I don't know 15x cookpad people that I hired into my team that I still love talk to all the time. Some are at 37 signals. They're all at shopify.
Andy:They've gone on to greatness.
Miles:Yeah, and that that probably gives me more pride than anything I've done.
Andy:I think, yeah yeah, makes a big difference. Yeah, and also they're still to be friendly. Even though they've moved on, they can't have been that bad. They can't all be pretending yeah, yeah, it's true.
Miles:So I think I should probably ask them. I should actually ask them why it worked well, but we were reminiscing at Shopify last night about this kind of period of time at Cookpad. That was just magic. Yeah this kind of period of time at cookpad.
Andy:That was just magic. Yeah, a few of us there just kind of reminiscing what were the things in terms of like team that made it that way smart people that can just agree, even agree to disagree, and just get shit done.
Miles:Get stuff done, but do it well and have pride in your work yeah, it was kind of clock out. I think there's a hundred percent place for that. Coming at nine clock in, write some code, clock out. I have no problem with that. But the way I like to work is and it's not even about the hours, it's just about what you're putting into it, your mindset.
Andy:This is my world some of that kind of craft. It's one of the things that's nice about Rails as a framework is that the level of thought that goes into the naming inside the framework right, there's definitely an inspiration to that right. So we can we can all sort of take into our day-to-day days and days of that I keep.
Miles:I've mentioned this a few times recently, but I just remember that I I added some like favorites feature in cookpad and then I had to change it because I'd use the english spelling, oh, and we'd agreed on american.
Andy:I think you and I, in this safe plastic box where no one can hear us, can definitely agree that there is a letter U in favourites.
Miles:Exactly. I do remember that fondly with you, know it was like yeah, I agree, we've agreed to do this. Let's do it kick a few tables and get on with it, but yeah.
Andy:Nice, okay, and to wrap up, finally, like are there specific tools that you use yourself to help you go live? You know what's your text editor of choice. Are there particular things that you pay for that you think maybe other people are sleeping on? Individual contributor tools that you really like.
Miles:Yeah, yeah, so I'm old, so I was all in on, you know, vi for decades.
Andy:I don't know if you've heard, but Vim is the big thing. Now I'm coming to that.
Miles:Somehow I got waylaid into this world of Alexa for a few years. I just got really into it, which almost seems so quaint now in the world of LLMs, like what the hell are we doing? But I was in this Alexa space for a long time and there's a lot of Nodejs in that JS and that Hated it. But I got sucked into this code world and just one day, I don't know one day. I always had Vim on the side, but one day I opened a Rails project in VS Code and then it's like, ah, and I was stuck, but now I'm all in on NeoVim Lazy everything Love it and it's just again.
Miles:It just brings the joy, just I don't know know, just in space, uh, forward, slash and you can search through files and just see them just so fast, like I don't know. I just love it. I feel like some kind of spaceman or so it's just. You feel like a wizard, yeah, and all I'm doing is searching miles. It's phenomenal. So, yeah, I love that tool. Set things you pay for, uh, I'm generally using postgres. I guess I use pg admin a lot, which I mean as good. I quite like that table class, is it?
Andy:Oh, yeah, that's the normal map right.
Miles:Yeah, I don't really use it, but I get so much. I probably pay for that. Yeah off the top of my head. I can't really think of any amazing productivity tools that I'm using. Probably not that.
Andy:Are there things that you, as a team, that you pay for? Obviously you said you're on Heroku. Are there platforms or tools that you plug in to take care of a big thing that, as a CTO, would be a headache for you?
Miles:Yeah, Well, I mean, we just pay. We pay for a lot of stuff. So, most of my time is trying to think how can we not pay for this? You see like a Datadog bill come in. It was like 4,000 pounds a month and I was like what is this? And he spent a day trawling through it and it's like I've been using this. Got it down to 900 pounds. That felt like a good day. So that's the opposite of what you're saying.
Andy:I mean, it's definitely like it's one of those things like it's there's so many great tools that we can use and they're all somewhat designed so you can easily plug them in. But, it's knowing when you're actually getting the value and actually using those tools. There's so many that you can plug in whichever error reporting or solution you fancy, but keeping an eye on those things as your project gets bigger and starts getting used more, those usage-based things can really burn you.
Miles:As a team as well. It's hard to keep track of what's going on and I really love fresh in my mind because I just watched you talk SolidQ. I absolutely love it because I remember it was a delayed job.
Miles:Yeah, the amount. My first company using Rails or second company, the amount I should tell him contention and things going wrong with that. But SolidCube, we love it. I've actually given a talk at two meetups so I feel like I'm riding on Rosa's. I did a live coding demo, a bit like David's, but actually live. Create an app, you know, install it in 25 minutes and it's mind-blowing. Yeah, it's really cool.
Andy:Thanks for joining me. Before we go, any people who are interested follow you online or get in touch, or would you rather maintain your?
Miles:There's not much going on with me. I'm Tapster on Twitter. It's a very long story. It's not a long story, but pretty much everywhere. Yeah, and I've got a blog which a few people have read.
Andy:There's good stuff. There's some really great stuff, as Miles is building out his personal project and trying out all the Rails 7 goodies. Some really good stuff in there.
Miles:And Haggis Ruby coming up, I should give a plug for.
Andy:You should give a plug to Haggis Ruby in the UK.
Miles:I'm a minor sponsor of that, just to help them out. Jolly good. Brighton Ruby obviously just passed, but next year check that out.
Andy:Next year? Absolutely, yeah, Come and see us on the of this Perspex box in the middle of Rails world, which you can hear nattering along in the background. Whilst I do want to talk to companies that are doing things at scale, I also want to hear from middle and small-sized folks about how they're using software, hardware tools and people to get through what we like to call software engineering. All right, Thank you very much, Thanks.