Demand-side Thinking: Creating Pull For Your Products

A great product tends to sell itself. It's the obvious choice for the problem it solves, and it solve that problem very well. Such a product appears to have a natural pull. So how can you go about creating a product like that? An approach that has caught my attention is what I like to … Continue reading Demand-side Thinking: Creating Pull For Your Products

How to Make A Prototype App

Prototyping is probably the most effective way to discover great new product ideas, and technical solutions to challenging problems. Building a simple demo lets you explore your ideas outside your own mind. It allows you to find new possibilities and creative directions. Unfortunately these days I see engineers are often bogged down churning out feature … Continue reading How to Make A Prototype App

Modern Distributed Data Architecture with Event Streams, Stream Processing and Derived Data

Some of the most interesting projects I worked on at LinkedIn involved building large scale real-time pricing and machine learning products. They required crafting fault-tolerant distributed data architectures to support model training, forecasting and dynamic control systems. None of this work involved a traditional relational database. Instead event streams, derived data and stream processing became … Continue reading Modern Distributed Data Architecture with Event Streams, Stream Processing and Derived Data

How to Build a Web App: A Beginner’s Guide

This guide will walk you through, step-by-step, on how to build a web app. If you have been teaching yourself programming, you will have picked up different skills without learning how to put them together in an end-to-end project to build real-world production software. I know this is a common frustration faced by many people … Continue reading How to Build a Web App: A Beginner’s Guide

Ultralearning: 9 Principles to Learn Faster and Better

Although a lot has been written about the learning process, there has been very few clear, direct step-by-step guides on how to go from zero to mastery. Scott Young’s book Ultralearning has changed that.  Ultralearning is a technique, developed by Young, for learning any subject matter thoroughly and quickly. He has used the approach for … Continue reading Ultralearning: 9 Principles to Learn Faster and Better

How to choose a programming language to learn

When starting out building web apps, you find there are a number of choices for the programming language you can use. For a beginner, the different options can be overwhelming. Over the years, programming languages ebb and flow in popularity. You might feel the pressure to pick something that is quick to learn and build … Continue reading How to choose a programming language to learn

How to Learn Programming: A Roadmap for Becoming a Software Engineer

I come across questions on how to get started in programming often. People are hungry to learn, but don’t know where to start or which path to take. This is made even more difficult these days due to a lot of different areas that exist, such as web development, mobile software development, game development etc.  … Continue reading How to Learn Programming: A Roadmap for Becoming a Software Engineer

Are you feeling stuck in a plateau? Here’s what it means and what to do about it

If you are feeling stuck in your learning journey, you are not alone. As frustrating as it may be, hitting a plateau is an unavoidable part of the learning process. We imagine and hope for growth to be a straight line, upwards to the right. But that’s never how it plays out in reality. Instead, … Continue reading Are you feeling stuck in a plateau? Here’s what it means and what to do about it