My Ponder Internship Experience: Bill Wang

Bill Wang

Jan 17, 2023 4 min read

Articles
My Ponder Internship Experience: Bill Wang image

A little over a year ago, while scrolling through LinkedIn, I stumbled across a post that piqued my interest: Rehan Durrani had started a new role as a Founding Engineer at Ponder. I had only met Rehan briefly over Zoom during his last year at UC Berkeley, yet I remembered his friendly attitude, witty behavior, and, most importantly, passion for computer science. I was intrigued by his update. Why would Rehan, of all people, be working at such an early-stage startup? After taking a deeper look into Ponder, I too found myself drawn in by the company’s products and vision and casually applied for their internship, with few expectations in mind. 

Fast forward to today, having recently completed my 12-week internship at Ponder, I wanted to take the opportunity to reflect on my journey as Ponder’s first intern.

My Internship Project: Small Query Compilers 🤏

Coming into Ponder, I was immediately presented with the open-ended question: What do you want to learn? Despite my previous internship experiences, Ponder was the first company I’d worked for whose product centered around its open-source offering, Modin. I decided to join the Open-Source Software team to work alongside my intern manager, Karthik Velayutham, and the team lead, Mahesh Vashishtha.

My intern project was to design a solution to optimize small and empty DataFrames on Modin. The need for this solution was rooted in two primary issues:

  1. Empty DataFrames (any DataFrame with 0 rows) were buggy. Even though Modin was able to properly handle extremely large DataFrames and produce outputs identical to Pandas, it struggled to meet all edge cases when working with empty DataFrames.
  2. Small DataFrames were slow. In order to parallelize operations, Modin partitioned all DataFrames, regardless of size. Although larger DataFrames benefited greatly from this optimization, small DataFrames suffered from the overhead introduced by partitioning, often resulting in slower initialization and operation times in comparison to Pandas.

The solution to these problems: When working with small and empty DataFrames in Modin, default the initialization of and all operations on these DataFrames to Pandas. The idea was simple: All DataFrames designated as small or empty would automatically skip partitioning and directly run using Pandas, theoretically optimizing all operations to be similar in performance to their Pandas counterparts. However, this was not as simple as I had initially expected.

Even after scouring through the Modin codebase and making small bug fixes, I struggled with the implementation. The main logic was positioned at the query compiler level (hence the name “Small Query Compilers”), which contained hundreds of unique operations. I spent weeks hashing out tricky edge cases, referring to the countless pages of Pandas documentation, and running unit tests. (The groupby operation will forever be my greatest enemy.)

Finally, in the last week of my internship, I presented my work during the company All Hands. Despite being the most junior member on the team, I was given the spotlight: an opportunity to demonstrate my ability to and be heard by everyone (including CEO, Doris Lee, and CTO, Devin Peterson 😱). After my presentation had concluded, to my surprise, the team had carefully paid attention as questions and discussions continued. Some engineers asked about specific design choices while others continued to discuss the obstacles. While it might have been just another Tuesday afternoon meeting for many, I found this experience to be an extremely rewarding and fulfilling conclusion to my internship.

Takeaways ✨

Prioritizing the Intern

Right from the beginning, there was a significant emphasis on what I wanted to take away from the internship. What do you want to learn? What do you want to work on? How can we better help your work style? My accomplishments, no matter how small, were recognized. Even as an intern, I was invited to all company meetings and even flown out for the company retreat. (How often does a startup intern get this kind of treatment?) Everyone made it clear that my ideas and contributions mattered. While the pressure from these questions intimidated me at first, as I became more comfortable with the technology and the team, I found the freedom to express my thoughts and concerns to be rewarding and provide a sense of ownership over my own work.

Company Values

Throughout my previous internship experiences, company values usually ranged from mild suggestions to force-fed propaganda. Especially at large, mature tech companies, I would joke with my fellow interns how everything we did was “customer obsessed.” However, at an early-stage startup like Ponder, company values had a very clear, actionable impact on everything we did; design choices had a clear impact on customers and day-to-day interactions had a significant effect on company culture. Overall, I found these conversations to be fascinating and insightful to how startups operate.

The Community

Coming into this internship, I was excited, yet worried, to join a remote first company. Despite the freedom and benefits of work from home, I was concerned there would be a lack of communication and connection between me and the rest of the team, especially given the limited time I had. However, this was far from the case. Every morning, Karthik would listen to my latest rants whether it was about my law school aspirations or the newest Pokemon game; during happy hour games, Mahesh would accidentally respond with the funniest responses; Peter would always reference one of the millions of books he’s read; Labanya could always relate to the difficulties of student life in Berkeley. Needless to say, I made countless fun memories and am grateful for the community I had at Ponder.

Conclusion 👋

As I reflect back upon my experience as an intern, I can confidently say that I grew and learned more than I could have ever imagined during my time at Ponder. To anyone interested in working at an early-stage startup, I cannot recommend Ponder enough: The fascinating work, amazing people, and strong leadership speak for themselves through their incredible accomplishments. While this step in my career has concluded, I am extremely grateful for the unique opportunity I had as an intern.

Ready to level up your Pandas game?

Try Ponder now