Interning At Frappe: Just Wow

Safwan Samsudeen
8 min readAug 12, 2024

--

Friend link if you’re not a Medium Member.

Around November 2023, I learned that I had to attend an event in Mumbai in January 2024. It was on a Sunday, and I wanted to make the most of my time there. I thought about what was in Mumbai — and I remembered Frappe. I had previously used Frappe for another internship, and was quite critical about it, to say the least. Still, I remember how I felt the raw, if untamed and flawed, power of the Frappe Framework, and more importantly, how awesome the team and their culture were.

I applied to work using Frappe’s online application randomly, not expecting even a reply. After all, I had previously mailed dozens of companies, and was mostly ignored. The few who did reply did so out of politeness, telling me that they wished me the best of luck, but unfortunately could not accommodate me at the time.

I was pleasantly surprised when I heard back from the team, asking me to complete a preliminary project. After I submitted it, I had an interview with Faris Ansari, the lead engineer. Finally, the CEO himself, Rushabh Mehta, interviewed me.

Late December, HR wrote to me saying that I was in! While I was quite pleased, I have little doubt that it had less to do with the strength of my application and more with Frappe’s values — the CEO had mentioned during our conversation that it was an internship that kickstarted his own interest and expertise in software.

I was slated to start at New Year, and couldn’t wait.

My Work

If you’re not into programming, probably skip this section: I’m just speaking about the work I did in my four months.

My first month involved working on improving the Mobile view of Frappe’s Desk. There were multiple issues on it, and my task was to fix them. It was quite interesting working in front-end development — I’ve had very little experience with it. I’ve long disliked CSS, but I came to appreciate it a little more. I still think it’s a wacko kinda language, though.

If I haven’t mentioned before, the Frappe Framework is pretty. Perhaps it’s just me, but one of the biggest things I look for in a product is being visually appealing, and would even sacrifice certain features (performance not among them) for it.

The second and third months flew by. Frappe’s full-text search, used in apps like Gameplan, wasn’t working too well, so I built Frappe Search (now Apex Search), a full-text search implementation using Tantivy. It was a surprisingly difficult project, even though it was, in theory, simple — put a wrapper around Tantivy and make the search work.

It was a concrete, separate, project, and it was really nice to work on. Even though the initial library was written in a week, I spent more than a month improving the performance, implementing fuzzy search, allowing for improved configuration, and integrating with Frappe products like Gameplan and Wiki. I’m reminded, once again, that the meat, perhaps 80%, of a software project can be completed in a surprisingly short time, a few days of intense motivation and inspired work: and then arrives the hard part, making the product perfect (or as close to perfect as one can reach).

On the side, I took up a project that would address a pet peeve of mine: how slow and not user-friendly Bench — Frappe’s CLI management tool — was. While it didn’t take off the ground, it was a nice experiment, as I explored how we might redesign the framework’s core structure — and hopefully, something I’ll return to in the long run.

In April, I took up the task of rewriting Frappe Gantt. Once one of Frappe’s most popular libraries, it had fallen into disuse with hundreds of issues and years of no maintenance. This project was the highlight of the internship. It combined so many different elements of programming: frontend, logic, and painful debugging. Furthermore, I had a lot of autonomy, and the thrill of managing an entire project — a small codebase by any real-world developer’s standard, I’m sure, but large to me — never wore off.

Some of the other reasons were surprising: one of the biggest things I liked was seeing my work having an actual impact on some real human being’s life. Every time I clicked the wonderful Close Issue button; every time somebody mentioned that the new changes were helpful; every time I pushed a commit, it kept coming back to me that this would affect real things in the world. The motivation boost was enormous.

A short update on the framework: my view counts a lot less now as I’ve worked for the company, but even accounting for conflict of interest, I genuinely think Frappe Framework has moved a long way. Due to the incredible work by Ankush Mehta — a frighteningly good developer who mentored me in my first project — it’s incredibly fast, my biggest complaint previously. Bugs remain, but less abundantly. I expect a lot of improvement within 2025, as there was talk of a potential rewrite of the Framework.

If you asked me my biggest complaint right now, it would probably be that instead of focusing on making one product — probably their core ERPNext — excellent, they have a wide array of products of less-than-ideal quality. This is, I’m guessing, mostly due to the individual work policy that Frappe has. Nonetheless, I can probably predict what Rushabh would say if somebody told him this: we work for our values, not profit. And I can’t bring myself to disagree.

The Team

My primary “boss”, though it’s a foreign word in Frappe lingo, was Faris Ansari. An impressively calm and remarkably kind person, he would always help out when I had issues and value my opinion while making decisions. As I told him at the end: “I learned a lot about software engineering, but also, perhaps more importantly, on how to be an exemplary boss”.

For a week near the end of January, I went to the office to work. It was one of the most insightful, educative, and fun weeks (a combination that wasn’t that common, until I went to PROMYS and had six weeks like this) I’d had in a long time.

When I first arrived, the CEO welcomed me and we had an interesting discussion on the education system. After meeting Faris and working a bit, we had lunch. The team eating lunch together was rather heartwarming — sitting around at tables and talking reminded me of middle school, and I mean that as a compliment. Middle school is awesome.

Tuesday evening was when I first saw Frappe’s values glaringly. They have a compulsory meeting called “All Hands” — the only team meeting of the week. They were debating about something and things got quite heated — as English ceded its way into rapid Hindi, I could no longer comprehend the points being made. And yet, even with everybody obviously very tense, there was no name-calling, no storming off, no displays of power. Most surprisingly of all, after the meeting, the main people arguing exited together, discussing jovially about something else. It’s a scene I’ll cherish for a long time.

The social scene was extremely fun. Most of the team headed out to drink butter milk after lunch. There was an event almost every day. One day, we had the book club — we had a great conversation on How To Kill a Mockingbird. Another, Faris had a session on how to give good presentations. On Friday evening, to close the week, we played football.

It was very, very, different from my previous internship, and indeed everything I expected from the corporate world.

There are many specific takeaways, but I thought I’d speak about four here:

  1. Autonomy and freedom: everybody quite literally worked on whatever they liked. I’m not speaking about assignments based on preferences — everybody chooses their work. Given the wide range of Frappe products, it’s no surprise, then that everybody is functionally an entrepreneur — managing their own product within the company.
  2. Team bonding: from explicit activities, such as the ones I’ve spoken about before, to more subtle things, such as the CEO working side by side with the employees, talking casually with them, or everybody calling each other by their first name, or the team heading out to drink chaas (butter milk) after lunch together. Along similar lines, it isn’t a silent, depressed, place where people do work for somebody else. You can feel the palpable vibe and energy of the team.
  3. Authenticity and society over profits: this was something I saw not by working for the company, but by being around them. It’s hard to pin this down, but the feeling is definitely there. For example, at the Frappe Local event, the CEO spoke about how it’s important that Frappe expands slowly, without aggressive marketing, due to actual quality. “We’re not just a business, we’re a social movement”. Obviously, the fact that Frappe is OSS is another great example. The CEO — and everybody’s — down-to-earth manner also definitely played a role. A client spoke about how, when they were looking to use Frappe solutions, visited the team in Mumbai. Most companies would take out potential customers to fancy restaurants, as part of their manipulation marketing strategy — not Frappe. The client ate homemade food along with the rest of the team. I really resonated with this one — the idea of giving to society — because it was probably the biggest reason I was even given an internship.
  4. Democracy: this will probably be the most mind-blowing one for outsiders, but it was one of the main reasons I even wanted to go to Frappe. Democracy is powerfully shown both in practices — like sandwich organization for hierarchy, one-person-one-vote in decisions, and most radically, choose-your-own-pay — and in common sight — without being told, there is no way to see who the leaders are, who the CEO is, who the freshers are, upon entering the office. This, again, was especially meaningful to me, given my age and lack of experience (and education, for that matter).

Closing Up, and Moving Forward

Aside from the odd, partly envious, partly dubious glances I get from friends when I tell them about the internship, I gained so much from this experience as a high schooler.

Balancing school work and company work was difficult at times, especially around exams. Yet, it was a balance well worth it — as I dipped my toes into a future of meaningful work and real-world impact, a world of difference from our deeply detached education system. One thing I do notice is that it’s a lot harder to like school nowadays, after tasting true work — especially the autonomy and feel of Frappe.

I think integrating more practical experiences like this into the educational system would be a huge boost — not just for students, but for companies too. Apart from the fresh perspective and quick learners, you’re training future programmers that could contribute to your company and the world. Even if you aren’t a social movement like Frappe, it could be the capitalistically sensible thing to do.

It’s been a couple of months since the internship ended (as soon as the internship ended, I wrote the SAT, headed to PROMYS until late June, and then attended Babson Summer Study throughout July). The team was kind enough to offer to extend my internship, and I look forward to continuing my stint later this year (unrelated, but I have like four blog posts due, and you’ll probably get them all this month).

In that week I worked on campus, as I walked into that huge, glittering, business park every day, I was the only teenager visible. I would take a moment to recall how privileged I am, and remind myself to pay forward that debt someday. Every now and then, some company upends the world by challenging the norm, no matter what society thinks of them. We can’t predict the future, but I truly hope that that company will be Frappe.

--

--

Safwan Samsudeen
Safwan Samsudeen

Written by Safwan Samsudeen

Student of life, mediocre programmer trying to get better, book addict, proud overthinker. Another random idiot who thinks he's great.

No responses yet