LearnVest is in a class of its own as a leading brand for women and their money online. The company’s mission is to empower women everywhere to take control of their personal finances so that they can afford their dreams.
LV helps by giving users the information, tools, and support they need to earn well, save well, and spend well. But beyond the beautiful design and effortless interfaces that you’d find after exploring all that LearnVest offers, there’s quite a lot going on behind the scenes. These details surrounding development, design, UX and analytical thinking rarely see the light of day, but are essential to finding out how successful companies tick.
To unearth some juicy details, we took time to speak with LearnVest’s leading team: Alexa von Tobel (Founder and CEO), Hrishi Dixit (CTO), Jeremy Brennan (Director UI/UX Technology), Kevin Connelly (Senior Enterprise Architect) and Cameron Sim (Analytics Lead) to find out more.
Harrison: Alexa, could you describe the way the general company is structured?
Alexa: Our team is quickly growing, and while we have a number of different departments, it remains an extremely collaborative environment. We have teams in the following areas: product (which includes product managers for free and paid memberships, our user experience team, in-house UX designers), tech, editorial, financial planning, business development, sales, and marketing. Each team has a leader on the VP level, and both the VP teams and overall teams meet on a regular basis (at least weekly). We have a great big office space that allows us to seamlessly communicate — no corner offices here!
Harrison: We all know what a CEO is, but could you let us in on your daily role? Which people do you work with the most?
Alexa: Being CEO of LearnVest is my dream job! Each day is different from the next, and mostly, I do a ton of running around. Currently, I’m splitting my focus between product/tech (we have exciting new things coming out this summer!) and sales/business development. In general, I work in close contact with our very talented VP team, including my business partner (and cousin), John Gardner, LearnVest’s COO/CFO.
My day starts around 7:30am and ends as my eyes close over emails around 1am. My favorite task is reading feedback emails for at least an hour a day, as this is where all my insight and inspiration for our financial planning products comes from!
From L to R: Kevin, Jeremy, Cameron & Hrishi (photo: Trevor Wilson)
Harrison: Hrishi, what is your role at LearnVest?
Hrishi: As CTO, I drive the technology direction for LearnVest. I am responsible for all hardware and software decisions for the company, tech architecture of LV products, running the operational and IT infrastructure of the company, as well as managing our ever-growing team of tech superstars. I also fix the printer when it’s broken and recycle the wireless router a few times a week.
Harrison: How are the technical priorities divided?
Hrishi: At a high level, tech is divided into 4 main areas – the web front-end, the business and service back-end, the content management system, and analytics. Given the nature of LV applications, web F/E and CMS make up almost 50% of the team, followed by about 35% for the back-end/service hub, and 15% for analytics (though we expect this to grow exponentially over the coming months).
Harrison: For the non-developers out there, could you explain the entire stack that powers all aspects of LearnVest?
Hrishi: The LearnVest system is built up of a series of applications that perform a well-choreographed dance — all in order to provide a unified and seamless experience to the end-user. At the core, we have two main user-facing applications: a WordPress-powered, highly customized PHP CMS that serves up rich multimedia content, and a highly secure “My LearnVest (MyLV)” enterprise application that harbors your personalized LearnVest experience, including your Money Center, profile, and premium content (e.g. your Financial Plan).
Once a user logs in to LearnVest, she gets access to this MyLV application and all of the personalized content and functionality therein. The MyLV app is integrated with an internal data collection and processing engine over a layer of web services. This engine is backed by a warehouse data store that is used to build anonymized analytics over our user base. These analytics help us get a qualitative sense of how our users are using the system, planning out new products to best serve them, etc. All of these systems are backed by relational MySQL data stores, optimized for their respective usage.
Harrison: How has the technology behind LearnVest evolved over time?
Hrishi: LearnVest’s technology has evolved quite significantly and along multiple vectors, based on the platform functionality, user base/size, and strategic partnerships.
From a software standpoint, we started off as a single Java enterprise app that provided a mix of content and tools that helped users navigate their finances. About 3 years ago, we started building out a formidable library of ever updating content in the form of articles, posts, interactive tools, etc., which resulted in the integration of a WordPress CMS into the core platform.
With the addition of the Money Center last year, we added a separate data acquisition and processing engine and are in the process of building out a Hadoop-powered analytics and computation platform. As our user base, load and traffic scaled, we shifted from the old monolithic enterprise application setup to a highly decoupled architecture built on best of breed technology at all tiers. This includes pure XHTML/JS/JQuery UI, client-side MVC with Backbone and Handlebars, Twitter Bootstrap and LESS CSS on the web UI side, and a centralized service hub in Java fronted by a highly cached secure Node.js gateway that powers our web app.
Harrison: Are there any open source projects that LearnVest uses and/or contributes to?
Hrishi: The bulk of the LearnVest stack is built on open-source technology, starting from our OS environment (CentOS). Our full tech stack is built on open source tools and projects, like Apache, Nginx, Varnish, Tomcat, Java and MySQL.
At a more granular level, we use several open source tools and libraries for specific purposes, such as MyBatis (for OR Mapping), Lucene (for fast search), ActiveMQ (for our messaging bus), Memcached and Redis (for distributed caching), Node.js for our service gateway, and Spring as our core enterprise framework for the service hub. At the UI level we are using several leading edge open source frameworks like Backbone.js for client-side MVC, Twitter Bootstrap, Handlebars as the templating engine and a host of smaller open source tools for specific widgets and UI components.
On the analytics side, we are using MongoDB as the NoSQL data store, Hadoop for distributed computation of analytics reports – with the overall app built-in Python and deployed in Amazon’s EC2 stack. Our development environment also uses several open source tools like Maven, Ant, SVN and Git.
We are extending some of these frameworks to add missing/desired functionality, as well as building out some useful reusable libraries and tools in the course of our development. While the bulk of these are property of LearnVest, we anticipate releasing some of these to the open source community – these may include UI libraries built for specific interactive features, custom plugins for WordPress, and more.
Harrison: Jeremy, what is your role at LearnVest?
Jeremy: I lead the user interface and experience development efforts for LearnVest, which boils down to ensuring the beautiful designs the creative team comes up with become a working reality. We work pretty closely to hash out feature ideas and visual interaction design. Day-to-day, I’m working with my team to build out new features across the site.
We also manage the CMS, so even if it’s not user facing we build out new modules to help the content team work more efficiently. I also troubleshoot any issues our users may be having on the front-end, which helps me to understand our users better and constantly improve the site.
Harrison: How is work passed back and forth between you, the developers and the product team?
Jeremy: Depending on the size of the feature, we usually have one or several planning meetings with the product team, where they communicate their ideas on the desired features. When we meet I’ll provide feedback on what is feasible, giving ideas on how to improve things or communicating what sort of compromises may need to be made. The product team comes with wire frames to help us understand the scope of the project and to guide conversations.
When the final designs and formal specs are signed off on, we move things into our internal project tracking tool, a customized version of Redmine, and the developers go to town. There’s always some back and forth during the development stage, so the developer and the product manager keep a dialogue going.
Harrison: How has LearnVest’s UX evolved over time?
Jeremy: LearnVest has always been a visually rich site, something which has helped us stand out. Before I started most of it was trapped in static images; so that we could use non-standard fonts, whole paragraphs were inserted as images. These days with the advent of @font-face and CSS3 everything is much more dynamic and interactive. I follow both graceful degradation and progressive enhancement when implementing the UI for the less feature rich browsers we support, so the core functionality works across all our browsers. If you have the newest browser, you’ll have a nicer experience.
Over time we’ve also adopted new techniques and technologies to help us measure and optimize the site. A lot of the decisions we make around the UI are metrics based, as it’s hard to argue with the numbers.
I feel it’s an exciting time for the front end right now. There are a lot of new technologies coming out to help enhance the user experience and streamline the development process.
Harrison: Kevin, what is your role at LearnVest?
Kevin: I work with Hrishi to put together LearnVest’s back-end architecture, from the software that runs the site to the hardware that powers it. I also manage our off-shore team and the talented developers. Our team is dedicated to making our cutting-edge systems capable of smoothly handling traffic even as our popularity explodes. The designs we create and the software we develop are never visible, but they make sure that everyone that comes to LearnVest enjoys a fast, secure experience that just works.
Harrison: Cameron, what is your role at LearnVest?
Cameron: I run the Analytics Technology capabilities and services within LearnVest. This role is threefold: it encompasses the integration of our web architecture with both internal instrumentation and third-party analytics; strategy and ownership for measuring the effectiveness of LearnVest’s content-driven email services, as well as the implementation and capability of LearnVest’s big data architecture; and the accessibility of application data to internal teams. All three verticals are very closely partnered with ‘bleeding’ edge best-practice initiatives in functional, segmentation and trend-orientated analysis.
This interview merely touches the surface of what goes on behind the scenes with LearnVest’s tech team, and the odds are we’ll be back for more to dig deeper into the company’s development process.
In the mean time, do you have any specific questions for the team? Feel free to ask anything in the comments below and we’ll make sure to send them over!