Luckily all it takes is three simple steps: Step 1: Crystallize the problem you are solvingStep 2: Align on the problem with your team and stakeholdersStep 3: Keep coming back to the problem Answer the following question Description: What is it?Problem: What problem is this solving?Why: How do...

Does the architecture account for all the requirements?Is any part overarchitected or underarchitected? Are expectations in this area set out explicitly?Does the whole architecture hang together conceptually?Is the top-level design independent of the machine and language that will be used to implement it?Are the motivations...

As you continue to learn and improve, acquiring new knowledge, many lines of code become less and less appropriate with the passage of time. Although your initial solution solved the problem, you discover better ways to do so. It's clearly wrong to deny the code the...

Through our analysis, we were able to say how many more tasks could be done using the same amount of computing power after an algorithm improved. As problems increase to billions or trillions of data points, algorithmic improvement becomes substantially more important than hardware...

#6: Managing Multiple Projects and Expectations Start by tracking the amount of time you spend on tasksOnce you understand where your time is going, see what tasks you can cut out or delegate to others.If the scope of work seems too large for the current iteration...

This blog is a product of taking the learning in public challenge. I'll be posting things I have learnt through books, tutorial, personal/other people's experiences etc. I'll try as much as possible write about interesting Computer Science and programming topics. ...