Behind the Scenes: Uniting Evernote’s Apps
Articles,  Blog

Behind the Scenes: Uniting Evernote’s Apps

– Hi, I’m Ian Small,
CEO of Evernote. And welcome back
Behind the Scenes. In our last episode,
we looked deep inside the cloud at some of the things
we’re doing to improve the fundamental architecture
and infrastructure that we’re using. Today, we’re going to do
the same thing with the client, where we’re making
fundamental changes in how we
build our software. I’m here with Mike, who’s a senior
member of the engineering team that’s undertaking that project. So Mike, why don’t you tell us about
some of the challenges you’re taking on. – So right now,
we have five clients running five completely
different code bases. – So there’s almost no shared code. – No shared code between them. – What kind of problems
does that introduce? – What happens is that
as these products evolve, they all sort of start
to evolve separately. And they’ve all been written
in different languages by different engineers,
by different teams, and have approached challenges
that are somewhat the same, but solve them
subtly differently. – So what you’re saying is the way
I might see something sync on my iPhone might be
subtly different than the way I see it sync
on my Windows machine. – Exactly.
And if you are on multiple devices, you’ve probably noticed
some of these inconsistencies. – Okay, so that makes sense. How are we going to tackle fixing that? – So that’s where Conduit comes in. – What’s Conduit? – Conduit is our
single code library that will run on
all of our platforms to manage the data
coming from our Evernote cloud. – So Conduit’s not a new product. It’s an internal project. – Exactly. Each client will implement
Conduit as part of its data backend. – What is it responsible for? – Conduit will be responsible for
grabbing all your data from the cloud. So that’s your notes,
your notebooks, and things like that, storing that into local storage, retrieving it when
the UI wants to show it, as well as making the changes
that the UI requests and sending that
back into the cloud, all in one consistent manner
across all the platforms. – So if the UI then is
responsible essentially for all the buttons that I see, and the editor,
and changes like that I make, whenever I change a piece of data, whether it’s which note is in which
notebook or the content of a note, it’s Conduit that’s responsible for
actually making sure we save that. – Exactly. – Okay. That makes a lot of sense. What are some of the advantages of
taking an approach like Conduit? – The major advantage here is that
we have a consistent way of managing our data. All of the clients will interact
with the cloud exactly the same, and there should be no differences
between upsync and downsync between different clients. – Okay. Well, I know
it used to be a problem over here with this approach
because often, when a user reports a bug to us, we have to backtrack through
what device they used last and what sequence of devices, because we have to look at
where did the bug happen? Was it in their iPhone,
was it on the Windows desktop, was it on the web browser? Because they’re all a little different. With Conduit, does that become simpler? – Yeah.
It’s much more consistent and we can rely on
Conduit to be the source of truth for all of this data. Any bugs that we do have
will show up solely in Conduit, and we’ll know
where it happens. And there will only be one team
responsible for actually fixing this and pushing those changes out. – And what about how it helps us in
terms of bringing new features to market? – Any new features
that we want to develop, we can develop once in Conduit
to manage the data from the cloud. And then our UI teams
can focus on what they do best, which is making
a good user experience. – Whereas over here, we build it
five times, basically, top to bottom. – Exactly. – All right, so that
all sounds pretty good. But I can imagine there are some
challenges because, you know, I know my iPhone
is a pretty different device from my Windows desktop. – That’s actually what makes
Conduit such an ambitious project. Uh, your mobile devices, for example,
will have significantly less storage than, say, your desktop devices. Conduit has to take this into
account when it does any changes. – So Conduit is basically
a single code library, but it has to be optimized
for each of these devices. – Right. – So, talk to me a little bit about
when our users can actually expect to see a Conduit-backed client;
an app in their own hands. – So right now we actually have
Conduit running on Chrome for a subset of our users. We have a preview that’s currently
running for some of our users as well, in iOS and Android. And we also have a preview that we are
working to get ready to release for our desktop clients. – So today, some of our web users
who are using Evernote on web are actually using
a Conduit-based build. – Exactly. – They just don’t know it. – They just don’t know it yet. – Okay. Well that’s pretty good. Presumably that’s one of the
goals, is they shouldn’t know it. – Yup. – But over time, as we get this out
into all the clients, our users will experience a more consistent
and predictable experience. – Exactly. – Okay. I guess last question, how do
you feel about how things are going? – So development is taking a little
bit longer than we would have liked. However, we do have to take into account
that we have been doing about 12 years
of development and compacting that all
and rewriting it from scratch and putting it
into a single library. – So it’s a big lift. – It’s a, it’s a big undertaking. – Especially if you’re
going to write bug-free code. – Yeah.
No bugs. Every time. – We like bug free code. So what we’ve talked about today
is something you don’t see when you use Evernote. It’s the code that lies behind
the interface that you touch. But that code is core to delivering a
consistent and coherent experience across all the different devices
that you use. And our goal here is to create
a predictable experience no matter what
device you’re on. Mike and his team are doing
the extremely heavy lift required to actually
get that done. And they’re making good progress,
and we’re happy to be actually out
in the hands of users with some of
the early builds of this. We hope you’ve enjoyed this episode,
and you’ll join us next time, Behind the Scenes at Evernote.

Leave a Reply

Your email address will not be published. Required fields are marked *