It has been 3 years since I joined Frappe and it's been quite a journey. This is an attempt to write down my experiences during my third year at Frappe.

Trip to Germany

I had never been to a first world country. In today's connected world, you know what to expect from visiting one. But I have to say, I was still blown away by whatever I experienced during the week of my stay.

Anything that could be automated was automated. Parking lots, doors, gas stations, lights were automated in some way. The streets were clean. Infrastructure, even on the outskirts of the city, were beautiful. People obeyed traffic rules seriously and would not tolerate violation from others.

Every small thing was perfectly designed and was built for ease of use. I remember being impressed by a ketchup satchet that was very easy to tear off and use. I also loved their shiny spoons. So much so that I bought a set.

Posters, notice boards, traffic signs and anything with text had consistent typography. At the end of my trip I was so used to a lifestyle where things were perfectly built and designed, I started noticing the lack of these when I arrived back.

If it ain't broke don't fix it

Rich Text Editors are a pain to handle in web apps. Our editor at the time was no different. In all my excitement, I started looking for a replacement and started integrating it in our app. After a couple of weeks I decided to release it.

What followed was a slew of user complaints and bugs which I would fix for the next 5 months. I was careless. I didn't test a crucial part of a software whose objectives were easier data entry and it's management.

6 months later, the new editor is still giving us problems, so it was not a good tradeoff, given that our customers were used to the old one and it worked pretty good for 90% of cases.

  1. Customer satisfaction is priority.
  2. Introducing new features is secondary.

These are the lessons that I learnt the hard way and I try not to forget them as I work on more features.

Customer driven Projects

We are a product focused company. We didn't do client projects. Until we made the decision to. The idea was to build enhancements and features into the product while also fulfilling direct customer requirements. I did two such projects.

These projects went from specific customer requirements to them being developed and going live on their systems. The requirements ranged from "I want this to be big" to "Do whatever you want but make it fast and look good".

There were a lot of communications (and miscommunications), direct calls, building prototypes, bug fixing, UX enhancements etc. Overall it was a different experience than my usual workflow. Fast user feedback from an end user really helped polish it out.

Writing Code, Reviewing Code

We doubled our team size during the last few months of last year. It had a direct impact on me since I had to mentor a few of them. It scooped away my coding time.

Day by day, I spent more time reviewing code than writing it. Sometimes I would get frustrated and refuse to help. I got used to it eventually and learned to be patient. I hoped training these first wave of developers would help us scale up for the future.

I realized that I am bad at time management. I would never finish my tasks on time. But since 4 others could finish theirs, it was an overall win for the team.

This is the year I didn't experiment too much outside of my work. No new npm package starting with frappe- this year.

Writing Documentation

I realized the importance of documentation when I saw my time being slowly chipped away. There were concepts that I had to explain multiple times to different people. My fellow developers would call me "live documentation" because most of the APIs were documented in my mind. If only we had all this documented for everyone.

Our current documentation was far too behind our codebase. I spent a good amount of time rewriting our documentation. It took me a lot of time to get up to an acceptable speed because I was used to writing things that a computer would understand, not a human.

One month later, we have something that could only be called a first draft, far from perfect. But it's not an empty canvas. It's only going to get better from here. I have to get into the habit of writing documentation so that the next wave of developers self-educate themselves.

Developer to Engineering Lead

It has been said that "The reward for good work is more work". I have found this statement to be true every year at Frappe.

It is a constant battle between expectations from me and me trying to live up to them. So far expectations are winning. To top it all off, I have been given the title of "Engineering Lead". I hope to give that title justice and be better at what I do.

It was yet another exciting year at Frappe, with new learnings and experiences along the way. I hope to do good work and be awesome like everyone else here.

Read my past experiences here:

  1. A year at Frappe
  2. Two years at Frappe