
Buttondown - Justin Duke
Django Chat
Introduction
Justin Duke from Button Down shares insights on utilizing Python and Django for building their email platform, addressing scaling challenges and team dynamics during development.
00:00
Transcript
Play full episode
Transcript
Episode notes
Speaker 1
This episode is sponsored by Mailtrap, an email delivery platform the developers love. Try for free at Mailtrap.io. Hi, welcome to another episode of Django Chat, podcast on the Django Web Framework. I'm Will Vincent joined by Carlton Gibson. Hi, Carlton. Hello, Will. And we're very pleased to welcome Justin Duke from Button Down. Welcome, Justin. Thank you both for having me. I'm excited to be here.
Speaker 2
Thank you for coming on. So, tell us, for the, you, uh, listeners who perhaps don't know, tell us what button down is and how you, that's on a Django show.
Speaker 1
For sure. So Button Down is a email tool similar to say Mailchimp or TinyLit or Substack, but the rich ecosystem of ways you can just blast out emails to thousands of subscribers. All built on top of Python and Django over the past couple of years have been experimenting with, you know, some of the more modern web stuff for the front end, but the core back end, how we send our emails, how people view those emails, all of that is running through Django and running through Python. There you are. So I just have to jump into it. A recurring theme on the show is people always say, uh, but maybe Go is better. What are your current thoughts on when you see something slow in your application and, you know, maybe the grass is greener over there? You know, button downs at the phase of a product where it, I start to have to think about scaling concerns and performance way more than say like three or four years ago, where it was mostly around like, how do I hit product market fit? How do I iterate quickly? All the things that I think Python is particularly good at. And even now that, like, I am really, really performance sensitive, I still feel like there's upper echelons of software, and just in terms of raw volume, where I think you hit the nuclear button of like, we have to migrate off of the language that we're using because this just like cannot scale. But I think that is generally a couple orders of magnitude larger than where most people abstractly think about it like 95, 99% of the time when I'm dealing with some sort of perf issue, it's like the boring stuff, right? It's like an n plus one query or something that can be solved at the database or caching layer. I think even even now, even as we're handling so much traffic, there are so many Python level tools that help you address kind of those perf implications that I haven't really fantasized about like, oh, let's just take this little subsystem and rewrite it in go or rust like that would have to be motivated by something other than pure performance. Seems a very mature outlook. Can I ask how many, how many people are working on button down now? Because I know you have some support staff. Is it just you and engineering or what's the team size? Right now we're around five to six folks who are working roughly full time hours and then a legion of very lovely contractors doing stuff like support, documentation and writing, that sort of thing. Like the goal has always been keep it really tight knit and keep it really, I guess, small in terms of headcount. Like I've worked at really large companies and I've learned a lot from that. But one of the things that at least right now in my career, I'm not super interested in doing is like the startup hedonic treadmill of like hire as many people as possible, spin them all up, like spend all your time scaling and scaling and scaling. I think this is my first time working this long on a product or product that has just a handful of folks. And I think the level of velocity and focus that you get out of that is really, really rewarding.