I joined Frappe Technologies on 20th June 2016. I joined as a fresher knowing nothing about real software development. Today I am a part of arguably the best open source ERP software in the world. To say that I have learned a lot will be an understatement.
I have spent a lot of time writing code and doing activities around it. This includes discussions, code review and pair programming, attending meet-ups, mentoring students. This is an attempt to list down all of my activities in Frappe.
I have spent a good amount of time setting up code quality enforcements throughout our projects. Basically, adding linting to our JS and PY files. Setting it up was easier, but it was fixing all the linting issues that took most of the time. Needless to say, this is the first and obvious step towards better code quality.
Discussions are a great way to tackle the complexity of a project. Earlier, I used to jump right into building the said feature which often lead to me being stuck. Now, I try to spec out a rough design of how I would go about building the feature without writing any code.
Since all our projects are Open Source, we get a lot of contributions from the community. Earlier I used to review small Pull Requests, but since I have blanketed a lot of the codebase I started reviewing bigger PRs.
There were times when I had to decide whether to make changes in Pull Requests and merge it or request for changes and close it. Choosing the former meant new features would be merged faster but more overhead for us, choosing the latter would mean longer feedback cycles which may demotivate contributors in the long run.
My experience of pair programming has been great. Often, I have been able to achieve more with a fellow developer than I would have alone. Having someone on your shoulder to point out silly mistakes you overlook, discuss the design of the software and provide a 3rd-person perspective is a great way to boost your productivity.
This is too important a topic not to have it’s on own section. I have spent a major portion of my programmer life in JS files. And I am far from mastering it. I started writing JS when frameworks like Angular and Ember were becoming popular. Like most others, I learnt a JS framework (Angular) before knowing anything about JS.
Some of my projects forced me to learn Vanilla JS. It is surprising how easy it is to achieve most of the things provided by 3rd party libraries in Vanilla JS. I have started to consider performance for the every code I write. I am also learning JS Profiling to find out bottlenecks and fix them. Chrome DevTools is a great tool for anyone who wants to improve JS performance.
Communicating with the team is what I struggled with last year. Not clearing my doubts with the team lead to many frustrations whenever I got stuck. This has improved greatly this year as I have bonded with the team better.
I am not very social when it comes to meeting people face to face. Most developers are not. But they build great software together. I have attended a few meetups but I cannot say I am fond of them. I plan to attend more in the coming future.
We went for our first office trip to Goa. We spent two days playing beach volleyball, table tennis, cue sports, cards and also went trekking. We also did a sprint where each one of us sat down on the beach and replied to Support Issues from our customers. We had our bitter moments too. All in all, it was a great experience and we will definitely be doing this more often.
Not everything went well for me this year. Last year, I wrote blogs every other month, it all came downhill this year. The last blog I wrote was about a year ago. However, I plan to make it a habit to write regularly as I have learned the importance of it.
This year we came up with a Student Developer Program called ESOC (similar to GSOC), where students work with software developers and build real consumers products. An important part of it is mentoring students and I was responsible for on-boarding the students with our technology stack. I was a student 2 years ago, so I could relate to most of the problems they face. ESOC is still ongoing and you can check out it’s progress here: https://github.com/frappe/esoc-18
Scrolling through my Quora feed I read an answer where the author described his experience of visiting the great kingdom of Bhutan on a budget. I was intrigued. I also decided to visit but my plan didn’t come to fruition until 6 months later.
Gateway to Bhutan
We were a group of four. We didn’t consult any Tourism service, so we had to plan and research a lot. It was a great experience in itself. Although not everything went as planned, it is still better to have some kind of planning. Since we were Indian citizens, it was a lot cheaper for us than anyone who was not. The 7-days we spent in Bhutan were amazing.
That was all of my experiences in 2nd year with Frappe. I have come a long way and have a long way to go. Looking forward to another year of awesomeness.