When we are starting our career we feel learning to code is the most difficult part, with time we realize that writing code is the easiest part, but building scalable reliable systems is the toughest. I tell this to folks looking for advice, anyone can write code but the most important part is to create a process. The most important part of creating process is using the right tools. Here I will list down all the tools I use whenever I create any system

  • Newrelic - Application Performance Monitoring (APM) is the most important tool for getting how well your system is performing in the production. New relic has a lot of other features like logging, Alerting, AWS monitoring integration, etc. If you are going live beyond your MVP, this is mandatory. The free plan is sufficient for you to use for the initial scale. If you want to learn how to integration NewRelic with your Django Application then follow the below steps.
How to integrate New Relic (APM) to Django?
Application Performance Monitoring (APM) is a must have tool for any of theapplications which is live for external users. I prefer using NewRelic as an APMfor all of my applications. Before jumping into the installation please create anew account with NewRelic. Deliver more perfect softwareWork …
  • Sentry - No developer likes to write buggy code, but we will definitely unintentionally miss that corner case for which the user might face a 5xx error. Sentry comes to our rescue, it gives us the exact scenario with the exact case for which our code failed. You can do a free-cost On-Premise setup.
How to integrate Sentry for Django and Celery?
All developers want to write bug-free code and ship it to production. While developing on local we have stack trace to capture our errors and resolve them, but we don’t have that privilege on a production server, then ultimately our end users will start experiencing bugs and we would not
  • StatusCake Β - You build your product but it is possible that certain times your website is down, it can be middle of the night, middle of the day, but you cannot open the website every minute and check it. There comes StatusCake, it keeps on checking your website and make sure that the server is up and running, for any reason if it fails, then you can get an email, or set up webhooks to send SMS or call. Similar popular platforms are Pingdom, Freshping.
  • Squadcast - Your website can go down anytime, and you want to call the relevant developer and let him know about the website gone down, Squadcast helps you do this. You can configure on-call alerts so that relevant people get automatic voice calls when something goes wrong. There are a lot of other features which you can use. Similar product PagerDuty, OpsGenie.
  • Hotjar - Once you have customers in your portal, you will be surprised to know that the way your users are using the product is completely different. You might have thought a feature to be the most used feature, while users don't really care about that feature. I have used Hotjar in multiple projects and this has changed my perspective towards building features completely.
  • Gitlab CI - You should automate your build process and deployment process ASAP since you don't want to be the gatekeeper for every release in the team. Gitlab CI is my favorite pipeline tooling, where you can run test cases, make releases to the stage, prod, etc. There are other platforms also like CircleCI, Gitlab Actions, etc. You can do a free-cost On-Premise setup.
  • Metabase - As soon as you have users coming in, you will start seeing a lot of requirements from the business to give you a data dump or run some analysis on the database. You will find yourself spending a lot of time sitting with product managers and other people to run queries and extract data from databases. You don't want to spend your precious time doing all this rather, you would want to give them some access to the database, DISCLAIMER- NEVER GIVE THEM PRODUCTION DATABASE ACCESS. You can set up Metabase and create a read replica for them to access the data. You can do a free-cost On-Premise setup.
  • Confluence - If you are setting up the development process, the first thing you should do is, move away from Google docs, why? Google docs are great when you have 10-20 docs, but as soon as your product scales and you have new people joining the team, you will find yourself in a mess, handling 100s if not 1000s of google docs to manage, right from permission to edit to searching and linking. Confluence solves documentation problems, it creates a paper trail for all your decision in one place and organized.
  • Trello - Managing tasks is a big challenge when it comes to startups. This is something I have been using for my personal life tasks and also side projects. You will see your life becoming more organized and your productivity increasing when you incorporate Trello since you know what tasks are to be done and when they need to be done.
  • Slack- And last but not least, move to slack if you haven't already. All the tools I have mentioned above have slack integration, so you really don't need to go to multiple platforms to check every hour, if there is something new or not. Rather you can create slack channels and incorporate slack bots to streamline all the communication. Move away from WhatsApp, skype, or any chatting platform you are using, join Slack ASAP. πŸ˜„