Hey folks, and welcome to the small tech podcast by Ephemere Creative. I'm your host Raph. And today. We are going to talk about scale. Now for context. I am used to working with small companies, whether that's startups or non-profits or sometimes it's just entrepreneurs with an idea. Yeah the sort of largest companies I've worked with are in the sort of 30 employee range. Our clients vary a bit more than that, but myself personally that's the that's the experience.
So that's my caveat before, before we start this episode, but I think there are still things that are important and interesting to think through when you are considering scaling your company and your product even just from that sort of two founders or a small nonprofit or whatever. And you've got this product and it's got a few users and you need to take it to thousands of users and you need to onboard a few employees to help manage it.
Those are things that aren't always as obvious as they might seem to be. And yeah, they can be pretty complicated and they can help set the tone for like your company's growth. So. Yeah, let's talk about it. I kind of already touched on it, but the way I'm going to talk about growth or scale in this episode refers to users of an application. It refers to the size of your team that is managing and, or building the application.
It's going to be about the infrastructure that your application runs on. And it's going to be about communication and how you interact with users. Those contexts, but broken down into design, engineering, marketing, and communications and operations. So let's talk about design. One of the things that I find happens with early stage products you know, an entrepreneur with an idea who's just ready to throw out an MVP or you know, a smaller organization who just wants to test out an idea.
Is that design is very fluid. It's just throwing ideas together and changing them on the fly, testing them a little bit, but not a whole lot. Running them by some people that you trust, maybe a couple people that you don't know so well, if you can get ahold of them, but in the early stages, it's pretty tight. It's pretty limited. And so you can be very flexible and just throw things around. Eventually, that starts to get disjointed.
If you don't have a system in place to manage your design assets, how you think about design, your design principles? And I guess even just like your information, the research that you do on your users. The data that you collect as you do interviews with them, that sort of thing. And I think it becomes more and more important as you grow the product. And as you grow the team, To make sure that you have all of those things in place.
I think about this a little bit from a technical perspective, because that is generally how I approach things is as a developer. And so I like to know that a design team has things sort of tightly systematized. Perhaps at the early stages, as you're starting to build a bit of momentum, it doesn't need to be a full design system but at least some basics about color usage about, about spacing. And that sort of thing to help guide a developer so that they don't always need to refer back.
They just know. All right. Yep. This is kind of how we do things. And if they see something in a design, they kind of instinctively know what they're working with. Otherwise, if they need to double check for every single design, like the pixels in between things or the spacing you're going to have a mess. It's going to be bad.
And so just getting into the flow of creating sort of structure around design will help you create structure around your development processes, which might seem like it could slow you down initially, but it will speed you up down the line because developers won't need to always be questioning everything that they see.
So I think, yeah, basically just making sure that these things are organized and communicated and sort of spread throughout the organization in a sort of structured way where people kind of know where to get things. From an engineering perspective. I have this thing that has happened to me many times over the years, which is. You build a monolith at first because it's simple and you can get something out the door quickly.
And very quickly once you start to gain traction and people start to interact with your product or maybe you're just handling more data. Maybe something happens in the system. And even if you don't have a lot more users, you're now processing much larger video files or you're bringing in a million things to process instead of the thousand that you were processing the day before. And you start to realize how certain parts of your application just.
Would do much better being split out into their own infrastructure that's specialized for its use case. And so you start breaking apart this monolith into different services. AKA are our favorite microservices term. And that can be painful. It can be. Very helpful, but painful. Because splitting out those things that are tightly coupled generally when you're building a monolith.
It's just, it's hard if you're not technical, basically you're taking things that have been like tightly bound together. And expect to be bound together. And you're trying to split them apart into these different systems that now have to interact with each other more loosely and they have to grow independently and change and they still need to be able to talk back and forth with each other. And that stuff becomes kind of hard to organize. So, yeah. On a side note.
We at Ephemere Creative are building a framework called the Chewy Stack, which you can find at gochewy.io. That's G O C H E W Y dot I O. And the whole point is to make it really easy to build something that feels like a monolith when you're working on it but actually is deployed as microservices and makes it easy for you to build out those services. And manage the infrastructure on which they run and how they're configured and how they talk to each other.
Basically the idea is it should be easy to build microservice-based applications. Or just as easy to build them as it is to build monolithic ones. So that's my little side note. The other thing as you start. Growing your your technical product. Is that you'll find. Okay. So you will start splitting things into microservices. And now maybe you've got a couple of developers working on one service and other developers working on another.
And you need to make sure that everyone is able to run what they need to run effortlessly otherwise work stops. And there's a whole thing around dev ops and making sure that deployments are automated and all of that. But I think another thing that's not spoken about enough that I find is often a huge pain point. Is making sure that developers actually can run what they need to on their local machines.
Even before deploying to an environment that they control, making sure that they have access to the things that they require is painful.
So make sure you think through those processes, whether it's just like access control in your git provider of choice or whether it's cloud environments or provisioning laptops or whatever, like just make sure you've got a good process to make sure that developers communicate between each other, the requirements of the application and can get it up and running quickly without having to jump through hoops or go through meetings with other developers and. Make sure things are documented.
I know we all put that off developers. Love to put off documentation. The other thing is like, as your systems become more complex you know, you will inevitably add different services, whether they are your own services that you're managing or you're using third-party APIs. You're providing integrations to other systems. And as you do that, just little things sort of explode into bigger things. And one little system that fails here is going to cascade into a giant failure elsewhere.
And that can happen even with like pretty small applications and it can be hard to debug. So make sure that you have tooling in place to be able to find those failures and make sure you can fix them fast. Okay, so marketing and communications. This is the stuff that I find is the most, like fun, to deal with in in terms of like, scaling. In part, because I just love looking at like the data and the flows that you can build on top of on top of the data in an application or around an application.
I don't know. It's just really neat to me. And I love integrating apps. With tools like Segment and Customer.io or Intercom, or I don't know, whatever else. But I think there's something really important there. Which is that early on, you might just use an SMTP provider and you might just shoot out emails from your app when certain things happen. And I think that's valid for a lot of use cases, even as you grow.
But there are certain things that you'll find, oh, I want to communicate something with a user. It's more about onboarding or it's about I don't know, retention. You want to bring them back? After they've dropped off for a while or, and those things you don't really want to deal with that in your app, you, you should be doing that elsewhere in a system that's built for it, like customer.io or like Intercom. And you can build these really complex flows.
And that will help you sort of scale your communications. But then you also need to be able to respond. And so making sure that you've got like the right. Infrastructure in place to handle people trying to reach out to you is important that can even just be like, if you're using Google workspace. Just make a group for like the support email. And make sure that the right people have access to it.
It can be that simple, or you can use a custom, like a shared inbox with Intercom, where you can collaborate on messages and see user data as you deal with it. Or something like that. But I find that some people don't know that those systems exist, and yeah, I guess I just wanted to put it out there. Like you, there are tools to like, make your life easier when it comes to handling a lot of people trying to talk to you at once.
And you will need to scale up your team to deal with that, but there are things that you can do to make it simpler. So yeah. Operational perspective. I guess this ties into everything that we've already talked about. As you're building out with just like a couple people you don't really think about process. It's just, it's responding. It's things happen and you react to them. But as you find people who like your product. And it starts to solidify somehow in some ways.
You then get to a point where you're like, okay, we're doing this a lot. And. I can't do it anymore. I needed someone else to do it, but I'm the one who knows how to do it. And. From an engineering perspective, just because that's how I frame things a lot. We always think about like building systems and so writing scripts to automate things for us. In a human mode like. You can't do that. But you can. Document things.
And you can tell people, Hey, this is where you need to look for all of the information to. Through the things that you need to do. And I think it's really important to start doing that early to say, yep, these are the processes. These are the ways in which we do things and the ways in which we provide our value to the world . And getting that done ASAP. As soon as you start seeing that you're repeating yourself over and over. And you start thinking, man, I wish someone else would do this.
Start documenting it. I think also this ties back to what I was saying about design, but like making sure people have access to the data that they need. And don't have access to the data that they don't. Is a good thing to start thinking through ASAP. You want to make sure that you know, that someone that you hire who might turn out not to be a great person. Doesn't have access to things that they shouldn't have access to. On the flip side, you want that go getter.
Who's just an amazing new hire who wants to help out and has great ideas about how to do X, Y, or Z. That, To have all of the things that they need to get that done. And sometimes it's not super obvious all of the things that they'll need. So just making sure you have, I mean, it could be as simple as like a shared drive in Google workspace, just being like, yep. This is where all of the marketing assets go. This is where we put all of our, I don't know, sales information. Stuff like that.
Just making sure that they have access to that and they can use it without having to ask you for it. Because if they're having to ask someone then you're, everything's going to slow down and it's going to be a pain. And then there's tied into this like communication. I know so many people who think about this a lot, because it's painful. Like communication is so messy. Just generally. Because of the proliferation of 20,000 different ways to communicate. As a team.
Or as a human being with other people, On your phone, on your computer. But yeah, just making sure that you have clear guidelines on how to communicate with other people when and where I think that's really key. That's the thing that sometimes I have trouble with. But I think it's really important as you grow a company, as you grow product. Making sure that people know who they can reach out to when, where, why. Yeah, I dunno. I feel like that's mostly it.
I guess this was just sort of my thoughts. I was thinking about like a few different companies that we've worked with at EC. And a companies that I've worked with in the past and thinking about like those challenges. As you go from, you know, a couple of co-founders to 10 employees, 20 employees, 30 employees, or you've got 10 users on your app and suddenly you've got a thousand users on your app or 10,000 users on your app. And you're just like, oh, I think I need to change things.
I think I need to be ready for this. Cause it's happening fast. So yeah, just a couple of thoughts and hopefully they were helpful. So yeah. If you want to keep up with this stuff, make sure to like, and subscribe that's on the YouTube or in your podcast app, or I don't know, we've been posting some of this stuff on LinkedIn and elsewhere. If you have thoughts, if you want to, if you want to talk to me on the show, that would be awesome. Reach out I'm at raphael@ephemerecreative.ca.
Shoot me an email. We can chat. We can do an episode together. And yeah, we all want to do some good in the world. So go out there and build something. Good friends. See ya.
