Leonardo that you mentioned was an Australian company that, what, 150 people or something like that?
Yes. Don't quote me. Yes, I think around about 150.
Doing foundation models for visual stuff.
Interesting. And so the decision to acquire was to continue to build foundation models, which there is certainly a current of thinking in the current AI landscape where people say, well, stop building your own models. It makes no sense because the foundation models, by becoming ever more general, are going to do a lot of things that any kind of specialized model does. But not everybody agrees with that. But clearly you guys want to maintain at least independence through your own model. How do you think about it?
So Leonardo's got a very successful end-user product in market, and so we're keeping that running independently as well. We primarily acquired Leo for their research capability, though. I mean, their research capability is phenomenal. They've managed to build a world-class research team that's spread all around the world. On the question of foundation models, I don't think that race has been won, certainly. And again, we're radically pragmatic there. Leo have just shipped an amazing set of features that uses Google's Veo 3 model.
It uses the latest Flux models. So even Leo is using third-party and internal models. We do think we are uniquely positioned to be in that foundation model space. So maybe that advice of, kind of like, don't be in the foundation model space is good general advice, but we think that we are in quite a unique position in terms of the data that we have to pursue that particular avenue.
Do you use any open-source model?
We do. We use Meta's models. We use models from Stable Diffusion. Segment Anything is an open-source model that we use. I know we've tried Llama. So yeah, we have certainly looked at those models.
How about the tooling layer, orchestration, all the things? Any tips, recommendations, things that work, don't work, that you've tried, that you like, that you don't like?
So we have our own proprietary platform layer that sits on top of tools like Vertex from Google or Bedrock from Amazon. I think certainly Vertex or Bedrock have really impressive inference serving. We don't have a strong preference. We try and maintain a footprint across both to give us flexibility. And we have our own model-serving capabilities internally, which are part of that AI platform that I mentioned.
And you mentioned eval a few minutes ago. How do you go about it? Same thing: do you use third-party tools? Do you do your own evals for the specific job to be done here?
We use Weights & Biases for our evals, and we have our own eval framework that we've built.
How do you think about hallucinations and AI being stochastic and not deterministic, which perhaps you could argue for creation of visual matters less, except you all made a big push in the enterprise. So presumably when it comes to things like brand guidelines, you need to be pretty accurate. So yeah, how do you think about hallucinations and then guardrails and that kind of stuff?
Yeah, it's an interesting question. It's an unsolved problem. If a model gets it right 90% of the time, then 10% of the time it's getting it wrong, right? That's going to be acceptable in some cases and not in others. For some of our AI implementations, we decompose the problem and use much more orchestration that's based on heuristics, with elements that are solved by LLMs. That gives us much more determinism and much more control. So if it's really important, that's the way we're going to solve it.
There'll certainly be AI in the mix, but it's not like, hand the problem to the AI and then hope for the best. For other spaces, as you said, when it's more creative, then perhaps you can do that. Yeah, the hallucination problem is interesting. It's minimized, but it's still there, and I'm not sure it's going to go away.
Is AI security something that you think about? Prompt injections?
Absolutely. We think very carefully about prompt injection. We are very careful. We have a world-class security team that has rapidly upskilled on security as it applies to AI. So we're very careful in that regard, very sensitive to being in that enterprise space.
Talking about enterprise, that seems to be one key strategic initiative that you've had over the last couple of years in particular. Was there anything specific, other than what you would imagine around security and sort of enterprise-grade features, that was part of that push? We have a number of companies that we all work with as VCs, early-stage startups that at some point graduate from that early kind of PLG inbound motion to being outbound and enterprise-focused. From an engineering standpoint and product standpoint, any sort of tips and tricks about what took longer than you thought or was harder than you would have imagined?
Catering to an enterprise market, it certainly pulls the product teams in different directions. Enterprise customers want sophisticated admin controls, they want sophisticated auth, they want data residency, these kinds of considerations. If you haven't baked them into your product early, they become quite expensive to retrofit. Very early in Canva's architectural journey, we put quite a good abstraction in over our AWS infrastructure. But I do think back now and wonder, oh, we could have just spent a little bit more time really abstracting region-based storage.
It would have been cheap to do then. We have got it now, but it was a massive engineering effort. Back when it was 10 of us and a few services and a few databases, it would have been relatively cheap to kind of build that culture in there, build that kind of tax, if you like, on every product that you have to think about what region shard you're going to store the data in. Having to retrofit it across hundreds of teams, hundreds of services, was a monumental lift.
Any other sort of scalability lesson going from that 10-, 12-person team to the scale today in terms of architectural decisions, technical debt, anything that in retrospect you wish you had done earlier?
Technical debt is, I mean, it's a dirty word. It shouldn't be a dirty word. Technical debt is an extremely useful thing when you're a startup. And we had the high-interest credit card of technical debt for a few moments in Canva's history. And I'll tell you about two of them. One was our original editor. We call it E1. It was a JavaScript, kind of jQuery big ball of mud that was kind of hero-coded by a few people.
And it got so big and so unwieldy that it became very, very difficult to add new features without kind of non-deterministic behavior cropping up in it. I mean, it was an opportunity cost. We could have re-engineered that, but we were busy building essential services that were going to power the next generation of features that we were trying to get to market. By the time we were ready to rewrite it, we did have to pay a lot of technical debt down.
We went through a huge re-engineering effort, two years to rebuild this editor without adding really much of any new features. Well, we did get collaborative editing out of that, I should say. But it was, I think, an example where we just ran up the technical debt to get this critical mass of functionality built around the product. And we could see that this thing was groaning under the weight of just basically poorly architected front-end code, but we were willing to take that on.
And then we found product-market fit, we got a revenue stream, and that gave us a lot more runway to then go back and do the big rearchitecture. I think we made the right choice. It was pretty scary, but I think we made the right choice there. And we've got a number of examples where we've done that, where we've kind of really run up technical debt. I think the important thing is to, as an engineering team, recognize it, see it, make intentional decisions around it.
And that goes to our engineering value of striving for pragmatic excellence. It can be a pragmatic choice to be expedient in engineering quality, to take shortcuts to get to market quickly because you just have to. And as long as you are intentional, you're making really good engineering decisions, and then you're keeping the receipts so that you can come back to product and say, well, now we need time to go and reengineer it properly, then I think that can be quite powerful.