Guiding principals

Abhinav Dhasmana
3 min readMar 24, 2017


This is a part three of a series of blog where I am planning to capture on how we provide technical apprenticeship to new college graduates that intern with us. Here is Part 1, Part 2

There are so many things other than one’s programming abilities that makes a great developer and a great colleague. Here are some of the things that we tell our interns to inculcate over time.

Empathy: A lot has been written about this in software development. Heck, we need this for being a decent human being. When looking at a code or design choices that were made, always remember that you were not there and what all they had to choose from.

You are not your code culture: When we are starting new, we all make mistakes and learn. Here are some good blog posts we try to live by :You are not your code, Egoless programming.

There are no points for coming first: Emphasis is on the doing the right code, naming conventions, exception handling, writing tests. Finishing first which misses any of the above points does more harm than good.

Don’t worry too much about optimization: Priority should be writing a easy to understand and maintainable code and not the best optimized code.

Focus on Why’s and not How’s: Technologies change fast!!. How do we keep up with it. Focus on principles and decision choices of the framework. Here is an excellent article “How” ages faster than “Why”

Debugging is harder than begging: Debugging is twice as hard as programming. Write simple code. In case its convoluted, stick to the problem for a significant amount of time and don’t go to someone who could help you in the first opportunity you get. You would come out as a better developer before you started debugging.

While debugging, remember not to get into a rabbit hole to fix everything. Make necessary compromises.



Abhinav Dhasmana

Senior Staff Engineer @freshworks. Ex-McKinsey/Microsoft/Slideshare/SAP, Tech Enthusiast, Passionate about India. Opinions are mine