A Lesson in Scaling: How Kami handled 25x growth with CTO and Co-Founder Jordan Thoms

Jordan Thoms

CTO & Co-Founder at Kami

Never miss an episode

Spotify
itunes
google
youtube

When applications built on Postgres see tremendous growth, they can start to hit limitations when it comes to scale. This was true for Kami, the world’s #1 digital classroom application, which saw tremendous growth as classrooms adapted to virtually learning during the pandemic.

In this episode, we hear about the transformative journey of Kami from Co-Founder and CTO Jordan Thoms. We’ll cover everything from the company’s roots in New Zealand, its early focus on teacher empowerment, and the pivotal moments in adapting its product direction based on the needs of the global education community. 

Join us as we discuss:

  • Challenges Kami faced in scaling to meet demands of 25x usage in a 6 month period — including how they solved for this by migrating from Postgres to CockroachDB.
  • How businesses can make the right architectural choices early on to accommodate for massive growth.
  • Discussing the value AI brings for education.

David Joy:

What is up everyone? And thanks for tuning in. Today’s episode of The Big Ideas in App Architecture podcast. We speak to Jordan Thoms, who is the CTO and co-founder of Kami. Jordan and I talk about Kami and how his company is making a difference in classrooms around the world. Jordan shares about the beginnings of Kami, to growing the company and how they’re architecting their solutions for scale, keeping in mind the daily challenges of teachers in every classroom around the world. So pump up that volume and get ready for an intriguing conversation with Jordan Thoms. Hey Jordan, how are you doing? Welcome to the podcast.

Jordan Thoms:

Ah, yeah, great, great. Thanks for having me.

David Joy:

This is the first time I’m having somebody come from the Oceanic side, so New Zealand-Australia, I did-

Jordan Thoms:

Down under.

David Joy:

Yeah, down under. I’m super excited and honored to have you on the podcast before we close up shop for the season, so it’s an absolute pleasure. For everybody listening, Jordan is the CTO, co-founder for a company called Kami. And without butchering what you guys do, I let Jordan kind of explain his role, the company, how they’re changing the world. So Jordan, why don’t you kind of spin it up and tell us what you guys are doing?

Jordan Thoms:

Yeah, yeah, absolutely. Kami is this company that I started along with a few other people about 10 years ago at this point. And we’re all about making teachers' lives better and making education better. So we built this product which is used in classrooms and essentially it’s like a teaching productivity tool, you can think of it. So most lessons will start off with some sort of resource that the teacher has, either publisher’s given them something or they’ve come up with something themselves, and they want a way for these students to really interact with this resource, pull it apart, show the understanding of it, put it back together, and then give that back to the teacher, and let the teacher give them feedback on it and give them ways that they could have done that better, or tell them what the great work they’ve done. So we have this platform that’s used in classes to send out work, give feedback, and make that a much more interactive experience.

A lot of the time when we go into a classroom, their previous solution to that is literally paper. You may think that it’s all gone digital and oh, they’ve spent have a million millions of dollars buying devices, but in reality a lot of that technology is too hard to use, and the teachers just go back to doing things the old way they’ve always done. So we’re making it simple enough that any teacher can just move everything that they were doing digital and get so many benefits out of that. So yeah, our biggest market is the United States. That’s always been our biggest market actually, but we’re in almost every country around the world.

David Joy:

That’s brilliant. I was preparing for this conversation. I went to Kami website and I was checking it out, and then I saw you have these amazing features, so where you can annotate live annotations. And then also one of my favorite features was, a teacher can actually live, do the assignment, and it can be for the whole class together at the same time. And the reason why I love that is, my mother was actually teacher and she would teach elementary school. So from first grade to fifth grade back in India, and they used to do everything on paper. The kids used to do it and then she would come up with these bundles of paper back home to check all the assignment, and score it. So my job as a teenager was to basically, once she’s checked everything, to score everything up together and give somebody a total.

So if it was out of 50, I had to sum it up to, okay, if we got 40, 45, whatever it was, and I was talking to her the other day, I was like, “Hey, you know what? There’s this company called Kami and they have built this app.”

She’s like, “Oh, wish I had that when I was teaching it,” and now she’s retired. So I think in many ways it’s very novel effort that you guys are putting to build an experience, because we have so many courses towards students, lots of people are building things for the student life, education, how can we explain something to get better? But on the teacher side, that’s underserved. I mean, that’s just my opinion, but tell me a little bit about how did you guys feel like you needed to do something? Well, what inspired you to build Kami?

Jordan Thoms:

Yeah, I mean, I completely agree with you, it’s a very, very underserved market. And so many things that you think are just really just basic workflows that in most other industries are solved problems, are still not in education. And the amount of time that teachers spend entering grades into multiple systems, manually adding up grades as you said, and all that time is not time that they’re spending with their kids, or that they’re spending planning the next lesson. It’s just more time taking out of their day and makes teaching less attractive profession. So we thought it was really important to make those things, as basic as they might seem, just really, really great experiences. And then, obviously on top of that platform we can build more and more exciting, interactive things, and bring in AI and do all these sorts of things, but off of a platform of just making teachers' everyday lives much, much better.

I mean, we started off with a slightly different product direction. We were actually building things more for university students. That’s where we were at the time and we were in our final university, and found that the note-taking applications were not that great, and we weren’t happy with them. So we built our own one. And then, as we put that out in the world and started iterating on it, we just found that there was this huge love that came from teachers for the product, which we weren’t necessarily expecting. It was a slightly different direction.

And we started talking to all these users. Actually we would, early on, everybody who signed up for our product, we would send them an email. Personal email, not an automated, just for one of us and say, “How are you liking the product? Why did you sign up? What are you are using it for?” And as much as possible get onto a call with them and talk. And we started to realize that all the passion of the teachers who’s using our product was just so high. And even with our product being relatively basic at that point, because we’d only built it a couple of months ago, they just really, really loved it. And we could feel that and we could feel that, okay, here’s an opportunity to do something quite significant.

David Joy:

Well, that’s brilliant. Yeah. So you were in college, four university friends, 10 years down. In 2022 became, I was reading, Times’s most influential companies of 2022, which is really significant. So you were saying the ideation wise, you were initially serving the students and then you felt like, hey, you have lots of teachers feeling like they need to do this. So how did that turn into a more mature product? Talk about the little bit of the beginnings of founding a company. How did that go?

Jordan Thoms:

Yeah, it’s always interesting journey and I think it’s a different sort of story for us than it would’ve been if we’d been in the United States at the time. It’s a different funding market in New Zealand. It’s developed a lot since that sort of 2012, 2013 period when we were starting out. But we rose a little bit of money from a few angels. We’d been working on it without any money at all for a while and just sort throughout uni. But after that it was like, okay, we do need to eat and buy ourselves something. So we sort of rose a small round, and early on we started trying to monetize in small ways. And mostly just as a way of validating, because if people are willing to pay for something, you have a better sense of the value that you’re providing. So we through that started monetizing quite early and we ended up being very capital efficient throughout the growth of the company, which was really good.

We’ve seen a lot of competitors and especially in the ed tech space, who will go and raise large amounts of money. And then that comes with expectations of growing very quickly. If you raise a BC series A, that’s obviously what they expect. And in the education market, it often takes time for people to adopt products. It takes time to figure out how to really get into classroom. It’s not an industry where people really like to change very, very quickly. So if you try to match it up to a BC timeframe, I’ve seen a lot of companies struggle with that. So we to took a slower approach.

David Joy:

I was curious, were there any other company, because of course in the New Zealand market, the startup scene was just kind of coming together, and I mean compared to the US it’s different market. Were there any examples for you that you looked up to and you’re like, “Okay, these are companies that we can emulate.” You were talking about them early on.

Jordan Thoms:

I think there was definitely a lot of companies out there that really admire and would emulate in different ways. I think things like Stripe and Shopify, and the way that they do engineering were always… Also, because they’re Ruby shops and we’re Ruby shops, I was always looking to them. I think in terms of education companies, definitely some, although I think one thing that surprised me at least, was when we started going to more education technology conferences and things like that. And you see the layout of the market. There’s very few that are focused on teacher and student needs and making their lives better. Most of them are focused on administrators. Most of them are focused on things that are not really that relevant to the teachers and students, and their actual learning. So there’s a few companies that have done really nice things, but mostly we were looking at companies in other verticals, I guess.

David Joy:

Yeah, because when I was also thinking about what Kami is doing, in my mind it didn’t come to me. What are the other comparative companies who are trying to do, it seems like what you are trying to do is directly affecting what’s happening in the classroom on a day-to-day basis. And that applies to elementary all the way through school, 12th grade, what you’re doing is directly affecting. Which is why I was like, okay, this is something different for sure. And it was good to hear from you and understand that, okay, it takes time. It’s not like you can go into a school and say, “Okay, start using a product.” Adoption takes time. Habits have been built on for so many years. Did you feel like everyone who started to use the product immediately was able to use it effectively, or did you feel like you had this, “Oh, we have been doing this traditionally for 20 years, this is how I teach and this is new.” Did you face those kinds of challenges, or not challenges, but more experiences that you heard from people?

Jordan Thoms:

Yeah, I mean there’s definitely in any market, and probably even more so in education, there’s a spectrum of teachers out there. There’s some that are incredibly tech-savvy. You wouldn’t believe how tech-savvy some of them are, and they’ll adopt something when it’s very early. Our early versions were not the easiest to use. They had different flaws and different things yet to work around, and they would adopt it even despite those things and figure out how to make it work really, really well. But then, a lot of those teachers will end up becoming tech integration specialists, or ed tech coaches within their schools and coaching other teachers.

And as it made the product much, much easier to use. And we’ve had those ed tech coaches out there, who many are big fans of us and who are now sort of heroes program, we support them. They’re able to teach the teachers who take a little bit more help to adopt new technology, and get them over that hump and show them the value. And then once they’re there and it becomes something they’re used to using, then they’re really happy with it and get that benefit out of it.

David Joy:

That’s brilliant.

Jordan Thoms:

Definitely just you see that you have this early adopter pool, then you have an early majority, late majority, that’s sort of adoption cycle. We’ve definitely seen that play out.

David Joy:

Right. That’s awesome. So I was thinking let’s go a little bit to your journey. Of course you’re now CTO, co-founder. Tell me a little bit more about what made you choose a career in engineering? How was Jordan’s influences towards engineering?

Jordan Thoms:

Yeah, it’s interesting one. I mean, I think that I started off, there’s a lot of stories in my parents I feel of I was doing all of the electronics kits as a kid. That was my big thing, was all of the kits where you get some resistors and a capacitor, and you solder them together, and you make some sort of circuit. And even before computers, because I didn’t really have a computer at that point, even before that I was really into those. And then I think I discovered computers and softwares. I was like, well, this is so much easier. I’ve been spending hours soldering things together and now I can create something with, I don’t even have to get up. Like okay, this is much better. So I pretty quickly switched to-

David Joy:

Your parents are like, “Jordan’s not burning up the house. This is much more easy. You can sit in a corner and work.”

Jordan Thoms:

Not breathing all the solder, which is probably more healthy too. So yeah, that was pretty early on. I think by 10 or so I was doing a fair bit of programming of different things, and I was always building software from pretty early on. When I went to university or colleges as you call it, I considered did I want to do pure software? Did I want to try to combine it with something else and more of combine it with… Because I also really enjoyed physics, that was the other big love. And it was like do I try to bring in some more physics or sort of mechanical aspect? And in the end it was clear, it was easier. It is going to be a better path to just a pure software degree, a software engineering degree.

And I think the entrepreneurial part also came through then of, I was going to be doing that separately. I’ve been playing around different things and doing the… well, I didn’t do a lemonade stand, but I did bake bread, so I cooked, maybe close enough. And I think at some point I got a internship in Silicon Valley, San Francisco just joined my degree after my third year. And I think that was the point where I thought, oh, you could actually combine these things and you could actually raise money for an idea, and people would give you money just to go and work on this thing. That was just an idea you came out with two weeks ago, which had not been a concept I’d been exposed to before. And I think seeing that definitely sparked some thoughts.

David Joy:

Yeah, I think so many people don’t understand the influence of Silicon Valley, and just the atmosphere of being around people who are constantly looking at problems and like, “Oh, let me turn this into an idea.” I mean, it’s fascinating. When I moved to the valley and I moved to the US in 2017, and within two years I was in the valley, and I was kind of integrating and talking to all these people, and now I’m in the thick of things talking to people all the time about ideas, and AI, and they’re trying to bring everything together, but they’re talking about scale. So what I realized is that, early on you have this brilliant idea and you start building that, and then suddenly it becomes very real when you’ve taken somebody’s money that you have to deliver something. So once you guys did that, let’s go back to talking about Kami a little bit. How was it early product? What technology stack you use, and how were you in the early phase able to show value back to the investors?

Jordan Thoms:

Yeah, I think we had, I guess there was sort of two. Very early on, there was a phase of that first product we built that was more university student focused. And that was probably actually the only time we’ve done a complete thorough way rewrite. We sort threw away that code base and built the new one, which was the first platform had been really annotation, and this document part that people actually responded to quite well. But we had coupled it to this whole course management thing and trying to be an LMS, and learning management system. It was trying to do a whole lot of things that were not actually what people wanted.

And we realized that actually the annotation part is interesting. The rest of it we just should give it up. So we took out that part and built as a new standalone product, which was initially a Chrome browser extension and still is, but now mostly just a sort of PWA website. And we bought sort of a Ruby back end with Postgres as a database, now Postgres and CockroachDB, but started off just with Postgres and we’ve actually kept, I think the stack has changed a little, but we’re on Heroku to start off with, and move to Kubernetes later on. But I think I’m actually quite proud of a lot of those initial database structures and things that I laid out 10 years ago, still haven’t changed that significantly now.

David Joy:

Right, right.

Jordan Thoms:

The uses of them has changed enormously, but some of those fundamental things are still actually the same.

David Joy:

And that’s what happens too. When you build something and if the idea is pretty clear, I mean, what I’ve noticed is that pretty much the table structure, the design, the entity diagrams, pretty much everything is the same. What changes is the amount of transactions and the scale at which people are trying to use. I mean, which is a good problem to have. You really want more people to start using your product. But again, starting with I would say a horizontal architecture where you have the application with a simple database running is a good way to kind of begin, I feel. Was that where you guys were initially? You were like, “Let’s see if this got legs and then think about changing things as we need to.”

Jordan Thoms:

Yeah, I mean there’s always an interesting debate that goes on between how much should you optimize for what would work at scale when you’re just starting out. But I think sometimes what people miss in that, is that some of the things that help you get to scale, I don’t actually think of any more work to do at the beginning stage. Separating your database from your app and having a scalable app layer, I mean, if you’re using Rails or something like that, actually that makes it incredibly easy and it’s fast.

And I don’t think it would’ve saved any time going with Mongo, or with some of the more things like [inaudible 00:17:28] that sort of get rid of some of that database layer. But I think the time would’ve saved from that would’ve been very minimal, if any. And going with a SQL database, like, okay, you need to define some schemas, but actually it ends up saving you more time than it costs you, and so much better stayed long-term. But then I guess on the other hand, we went with Heroku, which saved us a lot of time. Eventually we had to migrate, but it was an easy migration.

David Joy:

Did you move from Postgres to Postgres, CockroachDB?

Jordan Thoms:

Yeah, we moved. That was a relatively easy migration as well. I mean, it would’ve been very easy if we weren’t doing it in the middle of COVID and was an enormous traffic increases. It would’ve been a little bit less stressful, but no, it was definitely a good move for us.

David Joy:

Oh, that’s a good point you brought up. COVID significantly was a very impactful year for Kami, right? Because everybody had to work from home. New Zealand of course had a pretty strict rules at the time as well. So did you kind of see that’s when everybody started looking at Kami as this amazing option to start using for classrooms? Yeah, talk about that a little bit.

Jordan Thoms:

Yeah, so I mean we were already a successful part before COVID. We had millions of users and we have always been, we’d always gone for that in-class experience. I mean, we weren’t a remote classroom product. But obviously it also applies very nicely for remote classrooms. And when you send all the students home, those other options disappear. You have to go to something digital, you have to go to something that’s really easy to adopt. And Kami was that tool for a huge number of schools. So we saw enormous growth over that period. Over a six-month period, we had a 25 X increase in peak usage. So I’m measuring peak usage there by the per second amount, which is like that’s the amount that the database is going to croak on, is what is the busiest second across that day? And that busiest second increased by 25 X.

David Joy:

Wow.

Jordan Thoms:

That was where I think we got probably 10 or 15 X. We were able to get out of Postgres, which was actually good, we did a lot of optimization. But the thing about it was all right load and we hit a level of right load that was very, very difficult to deal with on Postgres, just because we were like, I don’t know, how do you want to go into Postgres? But we were burning over a billion transaction IDs per day, and Postgres has to vacuum if we do two and a half billion or so. So we were just constantly trying to do manual vacuums to keep up with it. It was nasty.

David Joy:

Yeah, I mean that’s a nightmare of a scenario to manage actually, especially when you want to scale the business and you don’t want to work on infrastructure. The fire’s going and you’re trying to put water and kind of fix it. But yeah, it’s great to know that you were able to scale. I wanted to jump back to a thing that you were mentioning previously, and I liked your perspective on it. Early on, I have spoken to many other companies, and founders, and CTOs, and I’ve met two types of folks. There are ones who are like you, who feel like, “Hey, the technology is not something that we need to prove, but we need to prove the idea and the use case, and make that work. And then we can go from scaling as we get there.”

And then there’s another side of people who have the seasoned experience of working on Kubernetes. They have worked on 50 other databases and they’ve worked in five programming languages in Kafka, all those things. And they build this really complex architecture and they have the solution of how it’ll be implemented, but they haven’t tested out if the use case, or the app itself will be functional. And I’ve seen more success in conversations from those people, around people who have focused on, like you, have clearly tried to see if this idea works, if this is really what the world needs, let’s get this working and then we’ll scale as we need to. So the question I wanted to ask was, did you ever have a point where you were like, “Let’s start thinking about scale early on,” or was it always like, “Let’s see if this works and then we’ll get there?”

Jordan Thoms:

Yeah, it’s interesting, because to me it’s a little bit more nuanced than just that, because some things like Kubernetes to me is not that complicated. If you don’t use it in a complicated way, it’s not that complicated.

David Joy:

Yeah.

Jordan Thoms:

So if you were just starting out and you just want to deploy something simple, just do it on Kubernetes, use autopilot on GKE or the equivalents on others, it’ll be really simple. And if you need to run it a hundred times scale than we are now, you’ll have a path to get there. So there’s some things that are not simple to do it, that are actually simple to use at small stage and will scale, and some things that are just too complicated and you shouldn’t deal with. And it’s a matter of figuring out what those things are.

David Joy:

Seems like you were already using Kubernetes early on, so you didn’t really have to think about making too many changes to where you wanted to go.

Jordan Thoms:

Yeah. Most things that we encountered do not require major architectural changes. I think that we’ve done a few things right from the start around. We had scalable instances of Ruby initially on Heroku, but later on, Kubernetes. Communities didn’t exist when we started out, so Heroku was the best option. But having a scalable fleet of absences, having a database with scalability that we can scale up on the horizontal first, but we had plenty of headroom there. Mostly what we had to do as we were going through those initial scaling bursts was much more about just application optimization. Like, oh, we’re doing some dumb query. It should have an index, or we need to rethink how we do this, or those things didn’t really require too much architectural changes. I mean, the other thing we did was, we’ve always been very heavy on, we use Sidekick, which is a background worker framework for Ruby, and just pushing anything that’s long-running work, or needs retry, things like that, just push it out of your main WebQuest servers into Sidekick, and run those back on jobs, and that makes things much, much more reliable and scalable.

David Joy:

Right. So how did you make the decision to architect it this way? Was it something that your team kind of explored or you felt like this, you had strength and knowledge around this particular set of technology, that’s why you went with it?

Jordan Thoms:

Yeah, I’d used Vales before, actually when I’d been over in San Francisco, I’d used Vales, and I’d used other frames before. I’d used Django, I used various PHP things, that once I saw that, it seemed clearly the best way. And I was the only engineer, well, me and my co-founder, CEO of the engineers. So there’s no convince anybody else.

David Joy:

Yeah, I mean you’re like, “I’m the CTO. This is what we got to do.”

Jordan Thoms:

Yeah, this is what I’m going to do. It’s going to be Ruby, and I like Ruby a lot. So it was an easy choice for me.

David Joy:

I’m not somebody who’s used Ruby a lot. I was working on data science stuff. I was more inclined towards Python. And so, Django was something that I used a lot with Flask, but I never really felt it was… It was good enough to do simple things, but it wasn’t amazing. So I felt like every time I would go into forums or Reddit, or ask people, they all felt like they would prefer Ruby as what they needed to use. And I think this was also a little bit of San Francisco kind of in there.

Jordan Thoms:

Yeah, it’s definitely, I mean, Python I think is also obviously a great language. I haven’t used Django for a long time, so I couldn’t comment how it compares now though. I think there’s probably more… Like, between GitHub and Shopify and Stripe, and there’s probably more large companies building big apps on Rails than any of the Python frameworks. And it’s very nice when there’s a huge company that’s dependent on the same state that you are, and doing things in the similar way. A lot of our infrastructure around Kubernetes and stuff is quite similar to Shopify, and I read a lot of their Shopify blog posts and stuff as I was doing that transition, because you know that they’re going to have a big team dealing with all the hard, tricky problems. And you can kind of just piggyback off that a little bit.

David Joy:

I agree. I think I’ve heard the same thing. I think the only company that comes to my mind that’s using Python is probably Robinhood. I know Robinhood’s used Python to build their app, and I don’t know how extensively, like what all they’re using, but I do now.

Jordan Thoms:

I mean, certainly if you’re doing data analysis, Python is the language there. So for the same reasons you would use Python.

David Joy:

Definitely. Wanted to jump back and ask you, so now you’ve got four people, you’ve got a hundred people plus now at the company, and is it everybody is in New Zealand, or do you have teams in other countries as well now?

Jordan Thoms:

Yeah, so we have about 70 of those is in New Zealand, all of the production engineering team, marketing team, operations, all of that, and then finance, etc. But our sales team is mostly based in the US, but also across rest of the world. So we have a team of largely ex-teachers in the US who do a lot of work going into schools and training them on how to use Kami, and how to just teach better with technology generally. We started off and we were trying to have sales people in New Zealand calling into the US, and that was not very successful. But once we hired Americans to do it, that was a big turning point for us.

David Joy:

I mean, it’s time zone, man. It’s something to deal with, right?

Jordan Thoms:

Yeah. Time zone matters so much. It always seems like a silly thing, like, oh, surely time zone, whatever. It really, really matters. You can’t get around it.

David Joy:

A hundred percent. Right now it’s early in the morning in New Zealand and it’s about three o’clock afternoon my time. So I think for a salesperson especially, they have high energy early on in the day. So somebody has to do this at night or evening, it’s a different experience altogether. Challenges wise, once you build the product out and you’re exploring markets, of course US is one of your strongest markets. What was the challenge? Sales was the biggest challenge and technology wise, it seemed like you were pretty clear. What were the early challenges that you saw?

Jordan Thoms:

We always had a very small team, so we had to be very efficient with that small team. And there’s probably, at some points, our team probably should have been larger, but some startups and startup founders always want to hire people, and they get a boost for themselves if they hire and make the team really big. That wasn’t our personalities as founders, so we sort of kept things small. So certainly how do we deliver really good product with a small team, was a big challenge and we had to prioritize, be very careful about how we prioritize things. A lot of talking to users and a lot of figuring out clever ways of solving problems that might be a lot easier to do than another way of solving that same problem.

And then we have a freemium model where people can sort of adopt our free version and then individual teachers can upgrade, but also a whole school, or district, or even a state can buy the full product. And I think early on, finding that mix of how do we get the free product compelling enough that people will use it, but also have enough in there that drives people to upgrade to the full paid product. That took quite a while to get right. And there’s points where we would have huge growth in free usage, but it’s like, oh, no money’s coming in. But those sorts of things, we got into balance eventually.

And then, I mean, certainly growing the team, it is anybody who’s I think growing a team plus different stages, and I mean, I can only talk up to the hundred point, and so people have gone much, much further, but things change so dramatically at different points, and you really have to completely relearn how you make a company work. You’re under 10 people and you can just all get into one room, and sit around, and figure out what it is you need to do, and then everyone knows and understands it, and then all the context because they were there. That’s completely different from even at 50 people where you can’t do that. You put 50 people into a room, you can’t have a conversation where everyone gets to have input and you come to a conclusion. It’s just not possible. So everything has to change.

David Joy:

Yeah, but it’s interesting. I mean, that’s the kind of problem you wanted, right? If you started a company, you never wanted to stay at 10 people. So I think it’s part of the adventure of being true to what the core of your identity is when you’re starting a company. And from what you’re saying, it feels like you’ve always known how you wanted to build the company. And again, these are good problems to have, but retaining culture, returning habits and perpetuation, these are all challenges that are good, I feel. So it’s interesting.

Jordan Thoms:

Yeah.

David Joy:

Let’s jump into something that I was really curious to ask you. In terms of the cloud and how the product right now is, let people understand, does it work like a SaaS product, or is it like they can self-deploy it within their infrastructure? Say they’re a district, they want to keep all their student data there. How do you guys enable it for everyone else?

Jordan Thoms:

Yeah, so we’re a SaaS product, or cloud deployed on Google Cloud. We haven’t done on-prem. It’s something like, earlier on in different iterations of things, we were looked more at some enterprise customers, about outside education and some of them are more interested in that, but schools don’t generally have, they don’t only have the technical teams with the time free to do something like managing on-prem. So they’re much more concerned about what are you doing with the data, how’s it protected and all those things, which we can do better if it’s our infrastructure. So we cloud hosted on Google, currently on US East, so we’re sort of there and it sort of served there with, we’ve got Ruby instances on Kubernetes, we’ve got CockroachDB running on Kubernetes, we’ve got some Postgres still running on Kubernetes. We’re using ClickHouse for data analytics, so that’s funding there, and a bunch of Kafka and other Ruby things running around, there’s some Java things running around in the background. So we actually even run instances of Chrome on our back end to do some rendering tasks.

David Joy:

Oh, interesting. Yeah, that’s very cool. But I’m assuming it’s a SaaS, you’ll basically a multi-tenant deployment for each company, or not company, but is it by user, or by the school, or something like that?

Jordan Thoms:

Yeah, it’s multi-tenant. So we’re not deploying separate tenants for different customers, because it’s actually a lot of collaboration happens between customers. So it’s sort of like, it’s one of those things that when we started hitting the scalability limits in Postgres, one of the things I did look at obviously was, okay, well let’s just take the busiest domains and split them off onto separate instances. But you start looking at how many links there are between people in different domains, and it turns out that teachers, they know the teacher in the school next to them, or the school that’s proper miles down the road, they’re sharing things back on and forth all the time. We don’t want to stop that sort of collaboration. One of the things about schools is they’re not generally in competition with each other. They don’t see the next school, even if it’s a different district, they don’t see them as competition.

David Joy:

That’s a good point, yeah.

Jordan Thoms:

They’re friends, they’re collaborators, so they’re always sharing things back and forth. So from that, it was clear that we really wanted to maintain single infrastructure for all of our tenants, all our customers. So then we could have that sort of collaboration much, much more easily. I mean, you can do workarounds, but it was going to be messy.

David Joy:

I mean, that’s a good point. I mean, the space you’re in is so different. The education space, this online education, which is different, this is classroom education, and everybody’s doing the same thing, and the objective is really to serve the next generation. At the end of the day, whatever these teachers do, and my daughter just started going to school, and we have a different app that the school uses for that. And I was just looking at the app and I felt like it was not really that great, but I’m not… She just started school.

So if I as a parent go and say, “Hey, you need to start using Kami,” it’ll be really funny. So at some point I’m going to pitch it for you guys, but what I felt is, when my daughter interacts with the app that they have, there are a lot of things missing in it. I looked at your videos and demos, and stuff like that. I like the fact that you integrate with Google Drive, and Docs, and teachers can go in scribble on top of that, and it makes the whole experience so much more, I would say real, which you can’t do with typing stuff. So that’s pretty interesting.

Jordan Thoms:

Yeah. One of the things I think that is a little bit unique about us is, as you mentioned, there’s Google Docs, there’s obviously Word and 365, and the Sheets, and there’s a lot of tools out there which are great and do get used in classrooms, but none of those are built for kids. None of them are built for students. When you’re asking a, like a six or 7-year-old to use the same Google Docs interface as a Fortune 500 company, their needs are very, very different. What they could really use is a great drawing tool.

David Joy:

My daughter’s favorite feature, she’s like, “Where are all the pink colors?” So she’s looking for colors and something that looks like a pencil, that she can scribble on top of things. So it’s a totally different user experience for sure. It’s a great point. Go ahead, yeah.

Jordan Thoms:

Yeah, you’re right. Yeah, it’s like the color selection. I mean, even just great drawing tools, we’ve invested a lot in drawing tools, because it’s so important for schools and for students, that Google Docs hasn’t really done investing that much, and I guess they’re focused a different use case. That thing where I think that by being focused on the education use cases, we can just make experiences much, much better and we can build really nice turn in flows, really nice flows around.

So we have the ability for the teacher to choose what functions the students should have available for a certain assignment. So if a teacher is sending out something that’s really just about text and drawing, they can just give, okay, only give the students text and drawing. And they can even modify that, join the class. So they could say, “Okay, now you’ve got past this section. Now I’m going to turn on the insert picture tool and go find a picture, and put it in.” And that sort of real-time controls just allows the teacher to actually keep the students on task and keep the students clear where they need to go, rather than the students coming into a tool with a hundred options all turned on and they’re trying to find the one that they’re supposed to use.

David Joy:

I mean, it’s fascinating when you were saying, I was thinking actually there’s some amazing changes happening in the space with AI, and OpenAI has this assistant API that is now capable of GPT for revision, right? That’s the model. And basically, if I show it a photo of a duck and I say, “What is this?”

It can tell me, “Oh, this is a duck.”

So I was just thinking for you guys, I do not know if you’re already doing that, it’ll be so cool for you to integrate with something like that where a teacher says, “Okay, you need to submit these things, make sure you put these diagrams in.” And then these diagrams come in, you can use the API to kind of look at these, and auto score these, and the teacher’s work is produced using AI. I don’t know if you’re doing that already, but yeah, there goes a good idea for you. So I don’t know.

Jordan Thoms:

We’re adding a lot of tools around questions, and auto scoring, and making this much more structured in Kami. And obviously that ties into AI very nicely in different ways. It’s interesting, there’s some things where you don’t want the AI to be integrated in a way that takes away the learning part for the student. And that will, of course, I’m sure lots of debates of which things is a point to learn that thing now, because AI can just do it. And generally our philosophy on those sorts of things is we are a teacher-focused company, so we will make those things available for different teachers to decide, and they can decide, “Okay, is this something I want my students using?”

David Joy:

They don’t want to enable or not. Yeah.

Jordan Thoms:

And maybe there’s some places where they want to get the students to have experience using AI, or experience doing something, so they’ll turn it on. And other times like, no, I really want you to learn this thing, so I’m going to disable that. But yeah, and definitely on the teacher side, I mean we’ve seen, and I’m sure you’ve seen this as well, that you have a stack of papers to grade, the amount of time that takes is enormous for teachers. And anything that saves some time just gets the hugest reactions from our user base.

So we’re definitely looking at ways that we can use AI to save teachers time, but I think you want to do it in a way that is taking out the busy work, so that then they can give actually more high quality, more personalized feedback. Maybe it’s some AI is summarizing it for you, but then the teacher’s then taking that and recording a video to give back to the student, which is a much more personal form of feedback. So it’s not just like, oh, here’s some AI graded thing, that it’s important that the student feels that the teacher actually cares about their learning, and cares about them progressing, because that’s one of the major drivers too, to learn and to go further.

David Joy:

Yeah, that’s an interesting point because you don’t want everything to be done by AI, because then the teacher is just like, “Hey, I’m just going to do a push on what you guys need to do.” And it just comes in, AI auto scores it, but the teacher is not really involved in how the kid is progressing. Definitely a good point, and kind of also reveals how much you think about the experience as somebody who’s designing the app and building the company around this idea.

I wanted to ask you, I know we are reaching a little bit of towards the close of the podcast recording today, but there is so much going on, changes in the market, changes in new software every time there is a reinvent. I know you and I were talking about all the different announcements that might be coming up at AWS re:Invent last month we spoke. I mean, how do you keep up? Do you have a process within the company to hear what’s happening and look at ideas that you can implement in your tech stack?

Jordan Thoms:

We get a lot of feedback from, we feel a lot of people out on the field talking to teachers and talking our users all the time, and they give us a huge amount of feedback back that we worked through. I guess in terms of changes on technology side, I certainly spent a fair amount of time on hacking news, which may or may not be the most useful way to spend time, but I definitely see things coming up there. And across the team, the engineer team, people always see new things, and we’re posting those up and talking about them. And I mean, there is such a rapidly changing capabilities out there. I mean, I think part of the philosophy of how I try to approach these things is, I don’t think that we are a company or should be a company that is… There’s some new hot technology, whatever that is, and we’re going to integrate into our product, because we want to be associated with this hot new technology.

We could have gone like, oh, we’re going to input blockchain and NFTs into our product. And it’s like, well, does this add value for teachers? Because that’s the question or not. And that’s the question for us. We absolutely want to use all of is AI technology and we will, and we’re developing those things, but it’s about adding value for students, adding value for teachers, making learning better. And we don’t feel a need to jump onto any particular hype train of-

David Joy:

Trend.

Jordan Thoms:

Yeah, any particular trend of, hey, everyone’s launching AI feature this month, you better have your AI feature. It’s like, well, does it help teachers? Does it make their lives better, or is it just something cool to put on the homepage and say, “Hey, look, AI.”

David Joy:

Yeah, I mean half the products in the market, half the emails that I’m getting today has AI. And I was at re:Invent and pretty much every booth I would say was talking about, “Hey, look at what we do with AI. Look at this and that.”

And again, what happens is the use case is diluted in that and what you’re trying to solve can get lost. I’m kind of glad that you are building a company that’s focused on solving a very, very clear problem, which I believe teachers and students are always going to be there. Here’s my opinion on how universities are going to be. I think the way we do universities is going to change, but the way we do schools will remain pretty much the same, because we have to go through standard education. And I feel like what you guys are doing at Kami is extremely, extremely awesome, and it’s been an absolute pleasure talking to you about it, Jordan.

For everyone listening, you want to check out what Jordan and his company does, go to kamiapp.com and that’s the website, I believe?

Jordan Thoms:

Yep.

David Joy:

And they are doing some brilliant, brilliant engineering work and building this awesome product for the teachers. Jordan, are there any other places where people can come and learn more about what you or your company do, or even follow you that you would like to tell everyone?

Jordan Thoms:

Yes, it’s in the Kami app, is our main site and we’re on all the different socials as well. There’s a Life at Kami Instagram, which is sort of the behind the scenes. So yeah, people can share that as well.

David Joy:

Awesome. Hey, I’m going to be following what you guys do and I’m going to talk more about this to my mother, who was a teacher and I’ve got to make her more troubled by the fact that she didn’t have something like this. And at some point I’ve got to go to my school where my daughter goes and say, “Hey, well you guys need to start using Kami, because I think it’s pretty cool.” So I’ll do that pitch for you.

Jordan Thoms:

Yeah, thanks for having me on. This has been great.

David Joy:

Hey, thank you so much. Jordan, it’s been an absolute pleasure. I know the holiday season is coming up, so best of holidays to you, your family and the company, and all the best to whatever you guys do.

Jordan Thoms:

Yeah, all the best. Have a great holiday season.

David Joy:

Catch you later.

Big Ideas in App Architecture

A podcast for architects and engineers who are building modern, data-intensive applications and systems. In each weekly episode, an innovator joins host David Joy to share useful insights from their experiences building reliable, scalable, maintainable systems.

David Joy

David Joy

Host, Big Ideas in App Architecture

Cockroach Labs

Latest episodes