Showing posts from 2017

The True Worth of a Life

A life is measured not by how much money is earned but how many people are helped while the candle is lit. The people present when the candle blows out represent the true worth of a life. 

Thoughts on Software Development: A recent interview

I had a very productive discussion with a few consultants from India recently. The topic of choice was Software Development: specifically, how best to run teams and a good software development process. Here's a quick summary of what we discussed. Hopefully, this will be helpful to a broad audience: Q1: Team Structure: How best to structure a team, what are the roles and responsibilities? A: Largely, teams in tech are structured with 2 leaders: a technical lead and a manager. The role of the technical lead is managing the technical aspects of product development (code reviews, commits, design, testing, client team management and tough debugging). The role of the manager is people management (specifically and preferably practicing "'servant leadership"). The manager is responsible for morale, happiness, compensation, budgeting etc. but is not responsible for the technical direction of the team. In some cases, it makes sense for the technical lead to also be the manager

Freelancing for the gainfully employed

I've been professionally employed for a very long time and I was self-employed before then. Life has changed significantly for me, having come to the US from the small college town of Roorkee and my hometown of Jamshedpur. Over the past few years, I've been knee deep in technology at Google and now recently at LinkedIn. One of the things that I've missed in both these jobs is the freedom of execution that's inherently present when you pick up work of your own volition.  There's a lot to be said about companies and the infrastructure they provide and there's a lot more to be said about the problems they abstract away. When working for a large firm, you just don't have to deal with the nitty gritty and some skills go to rust. But every single time I've had the opportunity to pick up a project or a hobby outside of work, I've been amazed at the rapid pace of change out in the marketplace: new frameworks, new technologies and new systems keep co

Excellent Book on Advanced Data Structures and Algorithms

This book draft by a competitive programmer has an excellent overview of advanced algorithms and data structures. It's dense and packed with information and covers many tips and techniques not found in any other "standard" algorithms text.  If you're looking to learn Competitive Programming and solve some of the more advanced challenges, go through it: Web Page: Book Link:

A day in the life of a Professional Software Engineer

Sometimes, it's important to gain perspective over what it takes to run a successful career in your industry of choice. Growing up and in college, I didn't know very many people doing Computer Science in industry. I managed to meet a few during my internships at Microsoft and Qualcomm where I got a taste of life in Computer Science and Engineering. These were the early days of blogging, YouTube, Facebook, Android and the iPhone. Things have moved rapidly in this industry and life today looks very different from life just a decade ago.  Before college, I was taking some monumental decisions in my life - where do I go study? what do I study? what happens after college? How do I know I'm taking the right choice?   I'd wished then that I knew some people who had an understanding of life as a professional software engineer. I was pleasantly surprised when Jaeho (from SJSU) approached me to give perspective to life as an experienced Software Engineer in Industry. Ou