To become a faster developer, you need to think beyond coding speed. You need to improve not only your core skills but also the physical environment, tooling and your approach to problem-solving.

If you are just starting out, don’t get bogged down by the details. I have an elaborate setup because I work from home and I have been programming for over 25 years!

You will build expertise over time and fine-tune what works best for you. I am sharing what worked for me.

A comfortable environment

I cannot stress enough on how important a good sized desk is. You need enough space…


All of us write code that breaks at some point. That is part of the development process. When you run into an error, you may feel that you don’t know what to do. However, even the most seasoned developers introduce errors and bugs that break their code. We are humans after all.

The important thing is to learn from these mistakes and avoid repeating them by developing techniques to improve your programming and debugging skills. Errors are primarily logical or syntactical. Some of them manifest via exceptions or crashes while others may only be observed when using the software.

Here are some of the mistakes that developers make

Failure to Log Messages

One…


Here are GitHub Extensions that I use. They will enable you to improve your productivity on GitHub. Please share your favorite extensions in the comments.

Octotree allows easy exploration of the source code within the browser through a panel on the left:


Caching allows you to increase application processing speed. Storing a copy of the previously fetched data or computed results increases processing speed. This enables future requests to be served faster. It is an effective architectural pattern, because most programs access the same data or instructions over and over.

It is applied to everything from web-browsers to web-servers and hard-disks to CPUs. Let’s take a bottom-up approach to understanding the various layers of caching. We will focus on where data can be cached instead of how to cache it.

CPU Cache

Cache memory is an extremely fast memory type that acts as a…


Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js. It manages relationships between data, provides schema validation, and is used to translate between objects in code and the representation of those objects in MongoDB.


What is a Boilerplate?

In programming, the term boilerplate code refers to blocks of code used over and over again.

Let’s assume your development stack consists of several libraries, such as React, Babel, Express, Jest, Webpack, etc. When you start a new project, you initialize all these libraries and configure them to work with each other.

With every new project that you start, you will be repeating yourself. You could also introduce inconsistencies in how these libraries are set up in each project. This can cause confusion when you switch between projects.

This is where boilerplates come in. A boilerplate is a template that…

Nick Karnik

Sr. Engineering Manager, Connectivity @ Tableau | Computer Scientist | Entrepreneur | Teacher

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store