Picking the right tools is one of the most important steps to starting any project. This is also the step where most people spend a lot of time, thinking and researching about all the available tools out there.
I think the biggest challenge is making sure that the tools you pick will be able to handle your future use cases. But you cannot predict the future, and so we spend a lot of time researching every new tool out there and finally lose motivation to get started.
Another issue is thinking about scaling while building an MVP. Some tools are…
As software engineers our jobs are mostly breaking down abstract problem statements into code that computers can understand.
I think the biggest challenge here is to simply figure out what to do. How do you convert an abstract problem statement with complex objects, asynchronous data flow, multiple stake holders and complex logic into low level code that a machine can understand?
Break down the problem into smaller steps is common advice that is seen everywhere when talking about problem solving.
But how exactly? Where to start?
I think the best way to go about simplifying a problem is to write…
Recently while reading A Philosophy of Software Design by John Ousterhout I came across the ideas of Strategic and Tactical programming. Both of them can be described as a state of mind while approaching and writing code.
100% credit for the ideas described in this post goes to John Ousterhout and his book, but I just wanted to share my thoughts and elaborate on his ideas. I think this could really help a lot of people, especially those starting out their careers in software engineering.
The tactical mindset is focused on speed of development while the strategic approach is more…
TensorFlow.js is a great tool to run ML models in your browser, and comes with lots of pre-trained models for us to work with. Today I will be using the Blazeface model to detect faces from the webcam feed on the browser.
Using this, you can crop images to get the face only, detect faces for tagging people in images or this can be the first step towards face recognition.
We can break the process down into 3 steps:
To run this code, it would be good…
NFTs have been all over the internet for the last few months. The goal of this post is to understand how NFTs work, what they actually are, and finally look at what the future of NFTs could look like.
Before we try and understand what an NFT is, we need to be clear on how blockchain works. The goal of blockchain is to allow digital information to be recorded and distributed, but not edited.
A blockchain is like a database, that stores blocks of data. …
If you have ever built a web based project, then I am sure you have come across the very annoying “CORS error” at some point. In this post I will try to break it down, and explain why it is actually quite useful.
CORS stands for Cross-Origin Resource Sharing.
Lets break it down:
Cross-Origin: Origin is basically the domain name from which the request is being called from. Two URLs are said to have the same origin if the protocol, port and host are same for both. Cross origin simply means a different origin.
Resource: Resource is simply whatever is…
The most straight forward answer to this question is pick whatever language you are most comfortable with. The only two exceptions to this are — it is not a language specific role, and the language you pick is quite rare/complex and there is a good chance that your interviewer may not be able to follow it.
Interviewers don’t care what language you pick to solve problems. Coding interviews are mainly to test:
Do you find yourself overwhelmed by the sheer number of programming languages, libraries, frameworks, databases and platforms that are coming out every day ? Do you struggle to keep up with them? Well, even do.
Hi I am Adarsh, currently working as a Software Engineer. The idea behind this post is to share my thoughts on how I approach all these new things by trying to keep the focus on the problem.
But, why do people create these ? Why bother learning about all these new things when the existing stuff gets work done ?
As humans, we are always…
Queue is one of the simplest and most useful data structure, not just in computer science, queues are relevant in our day to day life in lot of different fields.
In this post, we will discuss why queues are so important, how they are used in computer science and finally look at its implementation in Python and C++. The goal is to understand the queue pattern, and understand why they exist, this will hopefully help you appreciate queues and want to learn it.
So what makes queues special ? A queue…
Stack is one of the most popular and widely known data structures in computer science, and one of the easiest to learn and understand. But often, maybe because of the way it is introduced or taught, it seems kind of useless and boring to learn.
Stacks are not one of those useless things that you need to learn just to pass your exams or to crack the coding interview, but they are actually used for a lot of things that you do daily on the computer.