Evernote Tech Blog

The Care and Feeding of Elephants

Inside Evernote: Ed Roskos

Ed Roskos is a Senior Software Engineer on the Platform team. He has been with Evernote for 3 years and has been involved with major efforts in scaling and improving our infrastructure.

What does the Platform team work on at Evernote?

The Platform Team works behind the scenes on advanced service backend features, service scalability and stability, and with client teams in how they interact with the service.  Advanced features in the past have included enhancements to our sharing infrastructure, major updates to our caching subsystems, a rewrite of our synchronization engine, and a rewrite of our security access control subsystem.  Before handing them off to dedicated teams, the Platform Team also developed the original Evernote Business backend and related notes technology.  Keeping an eye on service scalability and stability involves instrumenting code and working with our Operations Team to understand current bottlenecks and issues.  These efforts often require us to devise clever ways to refactor code and improve the core infrastructure that supports our service.  Naive solutions often fail to scale adequately for servicing millions of users.  These efforts also lead to discussions with client teams to help them find defects and optimize their use of the Evernote Service.

What role do you play on the Platform team?

My role on the Platform team is as a developer, currently focused on sharing, synchronization, and access control.

What are the big challenges?

The biggest challenges for the Platform Team are to consider the maintainability and scalability of our solutions, manage the end-to-end rollout on live systems, and avoid breaking clients. Coding solutions to challenging problems can require additional care when accounting for live system upgrades, and we often have to write code that runs for a week or more to allow a transition between two solutions.  We also have to account for existing database schema and consider how to map newly added, persistent state into our business model objects.  Care must also be taken to instrument code sufficiently to know that features are working properly when deployed at full scale.  Evolution of, and additions to, the API and service model are ongoing as the Evernote Service continues to grow and seemingly safe changes in behavior or state can break deployed clients.  It is important to work with our QA Team to verify this doesn’t happen.

What is the most satisfying part of your job?

Knowing that by keeping the lights on while expanding and scaling the service, we make life better for millions of people.

What is your background?

I’m a software generalist.  I’ve worked in early stage startups as well as large companies in roles from management to development.  I previously worked on speech recognition application technology, networking systems and core routers, high performance storage systems, and web-scale search.  I look for jobs where I can work with smart people on tough challenges that result in products that make life better for our customers.

Who has been your biggest mentor?

I’m not sure I have a single “biggest” mentor.  There is no shortage of super-smart people in the world as long as your mind is open to new ideas, you are willing to admit you don’t have all the answers, and you immerse yourself in the right environments.  I have been fortunate to learn a lot from many people, some engineers and some not.  Sometimes, the most profound ideas come from people you might least expect to have them.

What’s your favorite Evernote feature?

It has to be the combination of the web clipper and related notes technology.  I love collecting articles on technology, science, history, and geopolitics.  Related notes technology brings up notes that help tie together the relationships between events over time.  And the web clipper’s auto-filer is also nice for helping tag my notes for topic search and perusal.

How do you use Evernote?

In addition to note clipping, I use Evernote to track my task lists and to communicate with friends and family by putting together images and text before e-mailing or sharing notes.

Leave a Comment

* Required fields