Earn Rewards: Sign up now and earn a special reward after your first deposit. See offer details



Save, invest, retire

GET — On the App Store


Upcoming maintenance: Our website and mobile apps will be unavailable from midnight Saturday to 4am Eastern time on Sunday for routine maintenance.

Introducing Checking

Download our app and gain access to no‑fee, hassle‑free checking.

Introducing Checking! Our no-fee, hassle-free, mobile-first checking account. Learn more

What the CARES Act and market volatility mean for 401(k)s. See resources


Three Things I Learned In My Engineering Internship

I knew I had a lot to learn about how a Web app works, but I never imagined that it involved as much as it does.

Articles by Katelyn Lesse
By Katelyn Lesse Senior Engineering Manager, Betterment Published Sep. 10, 2013
Published Sep. 10, 2013
3 min read

This post is part of series of articles written by Betterment’s 2013 summer interns.

This summer, I had the privilege of participating in a software engineering internship with Betterment. My assignment was to give everyone in the office a visual snapshot of how the company is doing. This would be accomplished through the use of dashboards displayed on TV screens inside the office. We wanted to highlight metrics such as net deposits, assets under management, and conversions from visitors to the site into Betterment customers.

Coming in with experience in only Java, this was definitely a challenging project to tackle. Now that the summer has ended, I have accomplished my goal — I created five dashboards displaying charts, numbers and maps with valuable data that everyone can see.

From this experience, there are three very important things that I’ve learned.

1. School has taught me nothing.

Maybe this is a bit of an exaggeration. As a computer science major, school has taught me how to code in Java, and maybe some of the theoretical stuff that I’ve had drilled into my head will come in handy at some point in my life. However, writing mathematical proofs and small Java codes that complete standalone tasks seems pretty pointless now that I’ve experienced the real world of software development.

There are so many links in the development chain, and what I have learned in school barely covers half of a link. Not to mention almost everything else I needed I was able to learn through Google, which makes me wonder if I could have learned Java through the Internet in a few weeks rather than spending the past two years in school? Needless to say I definitely wish I could stay and work with Betterment rather than going back to school next week, but today’s society is under the strange impression that a college degree is important, so I guess I’ll finish it out.

2. The structure of a Web app is a lot more complex than what the user sees on the page.

Before I began my internship, I had never worked on a Web app before. I knew I had a lot to learn about how it all works, but I never imagined that it involved as much as it does. There’s a database on the bottom, then the backend code is layered on top of that — and then that is broken up into multiple levels in order to keep different kinds of logic separate. And on top of all that, is the front end code.

All of it is kept together with frameworks that allow the different pieces to communicate with each other, and there are servers that the app needs to run on.This was extremely eye-opening for me, and I’m so glad that the engineers at Betterment spent time during my first week getting me up to speed on all of it. I was able to build my dashboards as a Web app, so I not only needed to understand this structure, but I needed to implement it as well.

3. A software engineer needs to be multilingual.

I’m not talking about spoken languages. The different pieces in the structure of a web app are usually written in different computer languages. Being that Java only covered a small piece of this structure, I had a lot of languages to learn. Accessing the database requires knowledge of SQL, a lot of scripts are written in Python, front end structure and design is written in HTML and CSS, and front end animation is written in javascript. In order to effectively work on multiple pieces of an app, an engineer needs to be fluent in multiple different languages. Thankfully, the Internet makes learning languages quick and easy, and I was able to pick up on so many new languages throughout the summer.

My experience this summer has been invaluable, and I will be returning to school with a brand new view on software development and what a career in this awesome field will be like.

Recommended Content

View All Resources

Attract Top Talent With a Competitive Compensation Package

The five most important aspects of competitive compensation packages.

Congress Just Passed the SECURE Act—Here’s What You Should Know

The government is taking steps to make your retirement more secure. Find out how the new changes might affect you.

WebValve – The Magic You Need for HTTP Integration

Struggling with HTTP integrations locally? Use WebValve to define HTTP service fakes and toggle between real and fake services in non-production environments.

Explore your first goal

Cash Reserve

Our high-yield account built to help you earn more on every dollar you save.

Safety Net

This is a great place to start—an emergency fund for life's unplanned hiccups. A safety net is a conservative portfolio.


Whether it's a long way off or just around the corner, we'll help you save for the retirement you deserve.

General Investing

If you want to invest and build wealth over time, then this is the goal for you. This is an excellent goal type for unknown future needs or money you plan to pass to future generations.

See details and disclosure for Betterment's articles and FAQs.