Engineering and Product

Steffan Levet, Co-Founder, Co-CEO & Co-Head of Engineering at Narrative

Enhancing the performance of Narrative's product is something that is constantly on the mind of Steffan Levet, Co-Founder, Co-CEO & Co-Head of Engineering at Narrative.

We caught up with Steffan ahead of Fast Forward Auckland, to learn more about some of the unique engineering challenges his team is working on, what keeps him awake at night and what the future holds for Narrative.

If you want to have a virtual chat with Steffan, you can catch him and a handful of the Narrative team for a virtual coffee, Tues Nov 30th @11am NZT. Register here.

From an engineering standpoint, what is one thing that is unique about Narrative that other engineers will find interesting?

I think one of the things that maybe will resonate most with people is just the fact that we ship a desktop client. The constraints on what we're doing are a little bit different to like a classic web app or something. This application needs to be really fast and have high performance.

We're putting all of our machine learning stuff onto people's machines, so how do we solve for that and how do we monitor the product in a way that we can get insights on where we're slow or things are breaking, without slowing the app down so much monitoring it.

How do we balance all of those things? I think that's a really interesting topic and it's something that we're working through at the moment. It's a whole set of trade-offs, to figure out how to do that.

“I was like, uh, I feel like I got sold a lie here! ”

How did you get into software engineering in the first place?

I started studying mechatronics, but I, I pretty quickly switched over to computer science, because I realised that I wasn't going to get to build robots and autonomous cars and I was going to be building like process control systems in food-factories or something.

I was like, uh, I feel like I got sold a lie here! And then computer science was very interesting to me. I was doing papers in that and so I switched over.

“..you look at code you wrote six months ago and you're horribly embarrassed by it.”

How fast has your product evolved since you started building and how has what you are focusing on changed?

It's hard to remember sometimes as the world just moves so quickly in the space that you kind of forget. I know there's the classical tale of, you look at code you wrote six months ago and you're horribly embarrassed by it. And I guess that's a tale of just how quickly you're learning all the time. But I think also the toolings and general learnings in the community and in the world are growing so much as well.

I think that generally our ambitions are growing faster than necessarily where technology is at. And so I think that's our biggest problem at the moment is that we kind of keep trying to make the box a bit bigger. Back in the day we had relatively reasonable ambitions. Some might say it wasn't anything crazy, it's just that no one had bothered to build it yet.

Whereas now, I think we're in this position where it's a little bit more, how could we change the kind of entire face of this particular industry. Which is a little bit more far reaching, so I guess it's just different circumstances we put ourselves in.

“..what if we just made the entire workflow better for every photographer?”

Were your ambitions for the product as large as they are now when you started out?

I guess that's one thing with Narrative, that maybe a little bit different to other startups is that we didn't necessarily start out with this massive dream of changing everything. We just started with one problem, that was very, very specific to one part of the photographer's workflow and one kind of photographer, and just tried to solve that.

Then slowly we started to ask ourselves, what if we just made the entire workflow better for every photographer? What would that look like?

That's changed the kinds of technologies we use and certainly it's linked us into engaging in the world of machine learning and taking that more seriously because we need to. The kind of product that we actually ship out to users has kind of evolved as a result as well.

“..we needed to do it on-demand and on the machine right then and there”

Given the nature of your product, you mentioned performance is a core area of focus?

We ship a product that our users run on their desktop machines and it does everything. So all of our machine learning is shipped to the client because the client doesn't have enough time to upload a photo shoot to the cloud to do machine learning.

So we needed to do it on-demand and on the machine right then and there. We have to ship that product to them and it needs to be really fast, which is one of the reasons that we do ship a client. With browsers, it is still not quite fast enough.

Although we use a lot of web technologies ironically, we ship a custom web experience and that client onto people's computers and make that really fast, to kind of balance both worlds. That's a really challenging space that not a lot of people have spent time working in with our particular stack, so there's a whole bunch of interesting, interesting challenges there.

“..it goes out into the world and then it gets a little bit kind of different, right? There's some weirdness out there.”

How does performance translate into a great experience for your customers?

The big user-facing problem that I guess backs all of this, is the fact that it needs to be really fast and that's our core point of difference. Why do you want to look through 5,000 images when there is a little shutter of blurriness with everyone? Why can't they just the instantly sorted?

So we have to do that and it has to be really fast and every single image is on-demand. But then we also need to provide all of our machine learning insights over the top of it, which is very resource intensive. Add to this, there's a wide variety of computers out there in the world.

There's a wide variety of hard drives that people have their images on all of these kinds of things. Inside at Narrative, sure, it's a blazing fast product. It works great, but it goes out into the world and then it gets a little bit kind of different, right? There's some weirdness out there.

Relating to performance, how do you know that you are on the right track?

The big challenge for us is how do we know how things are really performing out there in the real world, from a performance perspective and a usability perspective, because the experience that people have is not as tightly controlled, we can't box the world and quite so tightly.

So how do we know that? How do we measure it, get insights on it in a way that we don't suddenly make the product really slow, because we've spent all this time examining how fast it was that we accidentally made it really slow again. That's tough. That's really tough.

“you changed this thing and it's made my life so much better now". That's a pretty good feeling.”

What do you personally find the most satisfying about working at Narrative?

Overwhelmingly, I think regardless of all the technology and the problems we are solving, I think that nearly universally the thing that's most exciting is that there are real people using our product every day and finding value in it, right? You can use the coolest technologies and build the coolest thing but if no one's using it, then it doesn't really matter?

If you spend the week working hard on something, scratching your head and not knowing how to solve a problem, and then you crack it and a week later someone comes in and says "oh, you changed this thing and it's made my life so much better now". That's a pretty good feeling.

Given the pace of technology advancement, how do you keep up to date?

In the case of machine learning, we have our own AI team. Everything's new inside that space and there's so many open problems in there to be figured out. It's sometimes hard to figure out where doing your job and learning stops and starts a little bit.

There are some things that you just can't know because they haven't been figured out yet really, or they're still so spread out in the community that there's no single kind of point of consensus on it yet.

“A lot of feedback, they kind of describe it as like magic or something and that is really great.”

Do you get surprised by how people use your product?

That's a good question. It's always, it's always funny to see how customers use the product. A lot of feedback, they kind of describe it as like magic or something and that is really great.

They're kind of amazed by that. Then there's always somebody who comes through and is doing something completely bizarre with it. And you're kind of amazed that didn't break in that scenario. That's always pretty cool as well.

I think it's quite cool to build things that empower individuals to outwit their creative or artistic talents in the world. That's very fun to engage in and they're just so nice! Like sometimes we have really bad bugs and they're just like, "it's okay guys, you're doing a great job." That is really nice to have that support.

“They're a very kind community, you know, of all the users that I've built product for over the years, they are by far the nicest..”

What do you love about the community you build for?

When we started, we felt like the professional photography community was pretty underserved. As time goes on, it becomes clearer and clearer that there are problems in this space that are worth solving.

There are a great community. They're a very kind community, you know, of all the users that I've built product for over the years, they are by far the nicest in support, which is pretty nice. They're very, very supportive and are great to like build stuff. I guess the things that we're building for them, they get to use those to create amazing stuff themselves, right?

“machine learning and AI, it's really good at just like saying 'here you go'..”

What are some of the biggest challenges with using machine learning in your product?

Machine learning is really learning from patterns, but photography is one of those things that is subjective. So how do you find those patterns? Something that's good for me might not be good for you.

The reason that I chose this photo over some other photos, maybe the reason isn't even inside of the photograph, but it could be just something else. It was a conversation you had when you took the photo, so there is this question about how we can bring how more about the photograph to that user, that gets them closer to the answers they need? This kind of human computer symbiosis.

I think that in the space of machine learning and AI, it's really good at just like saying "here you go". But if you say, well, that's not quite what I wanted, it just kind of like throws its hands in the air and walks away.

If we're going to like really make deeper inroads and make photographers lives better, we have to figure out how to better blend humans and machines. I don't know how to do that right now, so I spend a lot of time thinking about that.

I think that in the space of machine learning and AI, it's really good at just like saying "here you go". But if you say, well, that's not quite what I wanted, it just kind of like throws its hands in the air and walks away.

If we're going to like really make deeper inroads and make photographers lives better, we have to figure out how to better blend humans and machines. I don't know how to do that right now, so I spend a lot of time thinking about that.

“..it's still really early and you get to touch everything and contribute to everything, which is always a very, very exciting thing.”

From your perspective, why is now such a great time to join Narrative?

I think that where this exciting point where we know that what we've built people want, but we haven't quite figured out all of the details. There's still some unknowns. We don't have heaps of features and those features are good, but maybe they're not great yet. Maybe some of them are great and I think there's this question of, well, what does great look like for those features?

Not to mention the fact that we also need to make it really fast while adding more features. Add more features and the product gets slower generally. So how do you make it even faster?

The other thing is we're still small, right? On an average day, there's about eight or nine engineers working on the product itself. So it's still really early and you get to touch everything and contribute to everything, which is always a very, very exciting thing.

Want to keep up-to-date?

We send out a fortnightly email with relevant events, the latest jobs and career insights from interesting and candid people.

Yes please!arrow-right