My first time walking into Wealthfront’s office wasn’t the first day of my internship. Instead, it was 4 months prior, when I was flown out to Palo Alto for the onsite interview. Wealthfront was the only company that flew me out for an in-person interview. And it was awesome. Not just because the people were great, but I also tried some of the most delicious food around (Ramen Nagi, Dumpling Hours, and Salt & Straw ice cream).
First Week
Needless to say, I was pretty excited when I walked through the office doors on my first day. After receiving my laptop, I was introduced to my mentor, Joshua Mei. At Wealthfront, full-time engineers and interns are paired with a mentor. During my first week, Joshua set up a 1:1 every day to answer any of my questions. Joshua’s willingness to help extended past this first week, and he was an amazing mentor throughout my entire internship.
The highlight of my first week was definitely Modern Java. This Wealthfront internal course teaches newly hired engineers how to read our codebase and how to write production-ready code. We cover many patterns in our codebase, including dependency injection, database storage, testing, our query engine, and more. Throughout Modern Java, senior software engineers acting as “facilitators” walk us through content within each section. Each section also contains coding exercises that are similar to sprint tickets. We submit pull requests for these exercises/tickets, and the Modern Java facilitators review them, providing us with valuable feedback.
It was also during the first week that I discovered two amazing perks of working at Wealthfront: free lunch and coffee cards. Every day, we order lunch from a nearby restaurant of our choice, and this summer, we’ve ordered from 36 different restaurants. The “coffee cards”, which sit in the lobby of our office, allow us to get free coffee, boba, matcha, tea, milk, and pretty much any drink you want from nearby cafes while catching up with co-workers.
Finishing Modern Java
I didn’t realize the true value that Modern Java provided until after finishing the 3.5-week course. Upon picking up my first sprint ticket, I realized that all the patterns I had learned in Modern Java were directly applicable! Taking a step back, it’s absolutely incredible that a college student can read and write production-ready code after just 3.5 weeks into my internship, and Modern Java is a big part of why that’s possible.
Upon finishing Modern Java, my mentor introduced me to my project for this summer: Cash Category Interest. Many Wealthfront clients love our Cash Account for its high Annual Percentage Yield (APY) available through our program banks. Many clients use Cash Categories to organize funds and save towards goals like a down payment and want to track their interest earnings toward those goals. However, today interest payments are paid into the main cash account instead of directly into a category, leaving some clients confused and wanting more.

To address this issue, my project adds backend support for interest to be paid directly into cash categories. This feature will be available to clients in the coming months.
Design Document
Each new project/feature at Wealthfront is accompanied by a design doc. The design document details how a feature will be implemented, including how clients experience the new feature, which new entities we need to save in our database, what parts of the existing code need to be changed, and which code path is taken in different scenarios.
Writing my design doc was a week-long process. First, I browsed past design docs that were related to my project. In my case, I read the previous design docs on the cash categories backend and interest posting. I also read through the parts of the codebase that these previous design docs implemented. Matching up previous design docs to their code allowed me to get a better sense of how the entire system worked.
Then, I started writing my own design. I learned that writing a design doc isn’t a “one-time” thing either. After creating my first design, I went back to revise and optimize different parts, such as batching database transactions together to reduce read times. Writing the design doc gave me a high-level picture of how my new feature would fit in the rest of Wealthfront’s codebase.
Then came the design doc review, where I presented the problem and my proposed solution to my team, our engineering lead, and the CTOs. Through this process, I received valuable feedback, which I incorporated into my design, making it easier to implement my project down the road.
Writing the Code
With the design document complete, I split the proposed implementation into tickets that I would later implement. Similar to Modern Java, I only realized the value of the design process once I started writing the code. Knowing clearly how each piece of code fits into the overall project was invaluable. It was like having a detailed map before embarking on a journey; while the initial effort of creating the map felt tedious, it prevented me from getting lost in the weeds of complex features and helped me foresee potential issues.
I also learned the value of test-driven development. The idea of this practice is that we write the tests before writing the code. This forces us to clearly define what the code should do. We’ll write test cases for the normal case, edge cases, and even test cases that should throw an exception. Only once all of these tests are written do we actually write the code. If written correctly, the code will pass the tests that have been written in advance. This practice has also taught me the value of reading tests as documentation as well. Tests are always the most up-to-date record of what the code should be doing, since all tests must pass before we can deploy to production.
Impact
My favorite part of this entire internship was the ownership I had of this entire project. From writing the design doc, to implementing the backend, to working with product and design, I felt less like an intern and more like a full-time engineer, directly responsible for the feature’s success.
Wealthfront’s interest accrual process handles the hard-earned cash of our clients every day. My code adds support to this process to calculate interest on a per-category basis, and pay out interest directly to Categories when clients have enabled the feature.
During my internship I shipped a beta release of this feature to Wealthfront employees. We’ll make this feature available to clients, allowing clients to turn on Category-specific interest based on personal preference.
Takeaways
I’ve been thinking about this section for longer than I’d like to admit, because it’s incredibly difficult to condense my entire summer’s takeaways into five points. But, if I had to, they would be:
You cannot write good code without a good design
Without a well-thought-out plan, a project can quickly become a tangled mess of redundant logic and inefficient database queries. Taking the time to consider how the entire system should work together, rather than immediately writing the code, saved countless hours of debugging and refactoring later.
Code is the source of truth
Ultimately, the code currently running in production determines how a system works. I believe that this is the best way to understand production logic. In contrast, relying on manually written documentation can be dangerous if a pull request is submitted without updates to the corresponding wiki page. At Wealthfront, I’ve learned firsthand the advantage of having self-documenting code: time savings from quickly understanding new parts of the codebase, and not needing to manually write documentation pages.
Simplicity is an advantage
I came into this internship thinking that complex solutions are more impressive than simple ones. However, I learned that using unnecessarily difficult logic makes debugging exponentially more difficult. Keeping solutions simple also allows future engineers to understand each possible code path, making it faster for them to add new functionality.
Collaboration is key
Engineering is a team sport. I found myself working closely with the product and design teams. Our product team ensured that what we were building was truly valuable for our clients. Our design team created the user interface for how clients will soon see my project in action. Sharing our perspectives allowed us to create the best possible experience for clients.
Ask questions
One of my favorite parts about Wealthfront is how open everyone is to questions. If I had a question I couldn’t figure out on my own, I asked my mentor. If I needed to get feedback from the team, I asked everyone during our daily stand-up meeting. If I wanted to learn more about our Automated Investing Account or Stock Investing Account, I asked co-workers from the Trading and Brokerage teams. And of course, if I was confused about a specific piece of code, I opened up git-blame and asked whoever last edited that line 🙂
Final Thoughts
At Wealthfront, you’re given the opportunity to lead entire projects as soon as you join. While this level of ownership can be daunting at first, Wealthfront provides an incredible support system of mentors and teammates who genuinely want you to succeed. The combination of autonomy and guidance enables Wealthfront engineers to build features that clients utilize. It’s not a company where you spend your internship working on a project that clients never see. The environment is fast-paced, and I’ve met some of the smartest people here this summer.
As I reflect on these past three months, I’m incredibly grateful for my mentor, my manager, my teammates, and everyone who has made my experience at Wealthfront amazing.
Disclosure
The Cash Account is offered by Wealthfront Brokerage LLC (“Wealthfront Brokerage”), Member of FINRA/SIPC. Neither Wealthfront Brokerage nor any of its affiliates are a bank, and the Cash Account itself is not a deposit account. The Annual Percentage Yield (“APY”) on cash deposits as of [July 31, 2025], is representative, requires no minimums, and may change at any time. The APY for the Wealthfront Cash Account represents the weighted average of the APY on the aggregate deposit balances of all clients at insured depository institutions that participate in our cash sweep program (the “Program Banks”). Wealthfront sweeps available cash balances to Program Banks where they earn the variable APY.
All investing involves risk, including the possible loss of money you invest, and past performance does not guarantee future performance. Securities investments are not bank deposits, are not bank guaranteed or FDIC-insured and may lose value. Please see our Full Disclosure for important details.
Investment management and advisory services are provided by Wealthfront Advisers LLC (“Wealthfront Advisers”), an SEC-registered investment adviser, and brokerage related products, including the Cash Account, are provided by Wealthfront Brokerage LLC (“Wealthfront Brokerage”), a Member of FINRA/SIPC.