Still trying to launch my first product.

Every now and then, I feel like I am in the crossroads. There has been, is and always will be a larger objective and that has been to solely focus my energies on doing product development for my own, albeit small, company. But, dreams take a while and as I’ve come to realize, a long while sometimes. And while it is rather easy for me to throw the blame on the numerous challenges that life doesn’t cease to throw at you, I am fully aware deep down that if I really wanted to give it all, I would have. Having said that, I feel like this moment is the lull before the storm in my career. I hope it is.

A few years ago, I decided I wanted to convert some of my ideas into actual working solutions. Given that I had been building software for several years, and across different technology stacks, I backed my skills and completely believed that it would see my ideas through fruition within a couple of months. Boy was I wrong. The next few years have told me that development and architectural abilities, while obviously important, play only a small part in the overall equation. A significant part but a small one, nevertheless.

Challenges

We all run into unique challenges all the time but, a lot of times, I think we might run into the same type of challenges but handle it rather differently and that, in essence, defines us as people to some extent and plays a crucial role in helping us achieve our goals and realizing our dreams. Needless to mention, some challenges are more challenging than other challenges and the situations in which those challenges arise adds to the magnitude of those challenges as well. I wanted to share some of my experience as I continue to travel this path of launching a software product first and then, another and then, another. If you are looking to read about someone who has been there and done that already, it is about time to find another post to read (luckily, there is no dearth of accomplished people in this world and there never will be) but if you are like me trying to figure out how to make this all work and don’t relish in living in comfort zones, you may want to read on.

Do it Full Time, not Part Time

This has been the biggest of all challenges. While I’ve designed, architected, developed and deployed applications from scratch for a number of my clients and on occasions, all of this within a matter of a couple of months, the question I get repeatedly asked by folks who know me and care a bit for what I do is, “Why is it taking so long?”.

That’s a fair question. I am not trying to solve world hunger, after all. So, what’s causing this hold up? There is no better place to start that discussing the number of hours spent doing what you really want to be doing in any given week. Ideally, I would like to spend a 60+ hours per week on an average building whatever the heck it is that I’ve been trying to build. While it could be writing code at certain times, it may be rethinking the approach or architecture at other times. But what does help is if you didn’t have to switch gears to doing 2 or 3 different things and when that happens to be the case (and more often than not, it does), and you end up spending a meager 15 hours on some weeks doing what you absolutely want and need to be doing, it hurts your momentum.

Of course, we all need to pay our bills. At least, some of us have to and there begins the first trade off.

Don’t be obstinate

Obstinacy is no good in general and definitely has no place in a start up. Do I wish I had realized this years ago? Absolutely. Am I glad I at least realized this now? Absolutely.

Everything evolves in this world. We all know change is inevitable and is the only thing that is constant. Of course, we all know that. But, do we necessarily remember that it is the case at all times? Perhaps not. You start out building something and you do it because you truly believe in it but does it mean it is immune to the realities of the world that you may or may not have perceived when you started out? Not at all.

I’ve realized that while the problem domains I had started off to focus on haven’t necessarily changed all that much despite the advent of numerous offerings in those spaces, the scope of the problems continuously change and therefore, how they need to be solved has to be cognizant of that. I was resistant to making some changes to begin with and they have cost me. It is time to fix that attitude.

Don’t doubt yourself

I tell myself this every day with the belief that I would actually wake up one day not doubting myself. Has it happened yet? Not quite but I want to believe I am slowly but steadily getting there. I read somewhere that doubts tend to kill more dreams than reality actually does. Or, something to that effect. I couldn’t agree with it more. While there are no guarantees in life, the only guarantee is your commitment to what you are doing.

Every one does their job, be it intentionally or otherwise, in making you doubt your abilities. They do it rather well, at times. That – added to your own doubts stemming from the past, present and unknown future – makes the whole situation quite challenging. The onus is on you to not make it deter you. It is okay to have doubts, I think, so long as they don’t play a major role in moving forward.

Give it everything

This has been tricky for me. While the heart says – quit everything you are doing and just do what your heart desires, it is easier said than done. Who’s going to pay for gas? How about food? The house? Phone? And the list goes on.

I’ve always wondered how other people did it. And just as that thought crops up, another one does too. It is that all of our lives are unique and therefore, what works for one may not work for another. There isn’t a silver bullet.

I would be ecstatic when I make the call to give it everything and I do honestly feel I am at the crossroads now.

Priorities

This goes back to one of my earlier points about doing it full time versus part time. One of my main challenges has been the fact that I work for my clients for bread and butter and do my product work as an afterthought, all the time. While this is understandable because the client pays me and I’ve promised to produce my best and nothing short of it at all times, it does come in the way of getting the product out the door.

I tried the part time route where I worked only a few hours a week for my clients (even if it meant significantly lower returns given the Time and Materials model) but as it turned out, I actually ended up working full time and only charging part time. That’s because, a feature that needs to be done by a certain date needs to be done and if you are like me who doesn’t ever want to miss any deadline ever, you will know what I mean. It doesn’t matter what you get paid or what the contractual model is, you are simply unable to do anything lesser than what your ability is.

Developer vs Project Manager

In a small company, you tend to play multiple roles. When you are working on launching your first software product, you tend to play multiple roles and some more. While it is good that you have to and are able to play these roles, they do come in the way of getting something out the door. Let me tell you why I say this and how it has come in my way go launching something sooner.

When I do consulting work as either an Architect or Developer (I work with a project manager who manages the time lines. While I haven’t always had to work with a project manager as it is sometimes the Director of Engineer/Technology or a Development Manager who I end up reporting to (and that has mostly been the case), the person I report to defines the deadline and it is a hard one meaning the work needs to be done by that point for certain. That helps and it helps a lot in being able to meet the deadline.

Compare this to the product development scenario where I play the role of both the Developer (+ Architect) and the Project Manager. While one side of me that wears the Project Management hat says I need to get something done by a certain date, the other (and the more side that wears the Engineering hat coerces me into doing it the right way at all times. What this means is that the technology stack and the architecture change more often than they really need to from a deliverable standpoint.

Spreading myself too thin

It is exciting to define the features, assess the market constantly, architect the applications, design the features, implement it, test and finally, deploy it. It is unquestionable that each and every one of these steps is not just important but quite intriguing as well, some more so than others. But, what’s also true is that you sometimes aren’t able to do enough of any of these things at any given moment given the number of these things that you have to do. That tends to play havoc at times.

While it would be nice to have some help, it would be nicer to be able to afford some help. I do try to get help time and again but till there is a constant source of revenue from any of these products, this is another bullet that needs to be bitten.

Wish me luck!

Anyways, I think I’ve rambled enough for not just this weekend but for the next couple of ones too! Wish me luck in my endeavors and consider becoming my first customer when I do launch the product, at some point.

— krish @ http://www.snowpal.software

Advertisements

Consulting vs Product Development. My thoughts.

Screen Shot 2016-04-18 at 11.21.15 AM

You know what happens when you do something and people don’t criticize you enough. You end up doing it again. And it is rather debatable as to who is to blame in this case. And for those of you who are subject to this for the first time and are wondering what in the world I might be referring to, I am speaking about my posts. This is my second one and everyone who liked my first one might have to take responsibility for encouraging me 🙂

Debating. Love it.

I’ve always loved debating and did a little bit of it, on a rather regular basis, back in my college days. Still, not enough and not nearly as much as I would have liked to do in hindsight but just about enough to change the way I looked at things. I want to say it has helped stand me in good stead with my software development career. I had little clue back then that something as simple as picking a language to code in – Java versus Ruby, or vice versa, as a very simple example – would evoke so many emotions. It sure does. And I am mighty glad that it actually does.

Brevity. Not my forte.

That brings us a tad closer to what I actually want to talk about in this post. Closer but we aren’t there yet and I’ll tell you why. It is because I am someone who tends to start with speaking about the parking lot when I am actually asked to say something about the coffee I had in a coffee shop (after I parked the car). Yeah, brevity has never been my forte. As you can see, we are into the third paragraph and we still haven’t even touched upon the basic premise of this post. But, it is what it is.

I started my career doing this and if I had a chance to go back and start all over again, I wouldn’t pick anything else. I might start off writing slightly better quality code since I now know a little better but, that apart, I wouldn’t change a thing. Sometimes, and rather coincidentally, you end up somewhere you are better off being but hadn’t necessarily planned to be there. And more often that not, at least for some people like I, the better decisions in life are made for you not by you but actually by the very situations you’ve been put in. Software was one such thing for me.

I have enjoyed every aspect of it not the least of it being the passions and emotions it brings to the table, not to mention the debating skills it does require from time to time. And that’s why we had the brief pit stop about my interest in debating earlier. The beauty of variety and options is simply that there is a whole lot of stuff to agree – and more importantly, disagree – about. Some of the obvious questions a lot of us would have faced during the course of our development careers:

  • Which language should the application be built using – Java? C#? Ruby? JavaScript? Scala?
  • What frameworks do we want to leverage – JEE? .NET? Grails? Rails? Sinatra? Padrino? Grape?
  • Which database do we want to rely on – Oracle? MySQL? SQL Server? PostgreSQL? MongoDB? CouchDB? Redis?
  • Which application server might work for the application – JBoss? WebLogic? Passenger? Tomcat? tc Server?
  • How about the web server – Apache? Nginx?

Options. Too many options.

As if the list above wasn’t enough to tire everyone before a single line of code could even be written, now we are dealing with even more questions – thanks to the exciting world of JavaScript development.

  • Should we use Backbone.js, Ember, Angular, Knockout or one of the other 200 alternatives that seem to be out there?
  • Should it be a Single Page App at all times? Or, does it make sense to not take that route on occasions?
  • Should we stick to jQuery for the most part or continue to explore alternatives like Dojo, Ext JS, AlloyUI?

Now, you know why debating becomes a rather important skill even in the life of a developer. Not only the need to debate but the interest and energy to want to do it all the time! This is in some ways no different from the experience I had ordering coffee at Starbucks when I first landed in the US. All I wanted was coffee, a simple coffee. But, it took a herculean effort before I could get myself one. Did I want a Latte, an Americano, a Frappuccino? Did I prefer tall or venti? I mean, it came to a point where I felt so embarrassed that I almost wanted to give up the need for caffeine, even if momentarily for that day.

Consulting. Different kind of beast.

While I still continue to do product development, even if it is limited to building a product for my own 2-person company, I switched to doing consulting a few years ago for my bread and butter. It was something I hadn’t done before and hence, the urge to want to explore it further got the better of me despite a bit of skepticism I had to begin with.

I am in my seventh year of consulting and at this point, I have a decent sense for what it entails and what the pros and cons are. Let’s talk about the pros first.

Being able to work with a wide variety of clients.

Given that the length of the projects vary quite a bit, and I’ve done projects that ranged from 2 years long to ones that lasted no more than a few weeks, it provides the foundation to work with a number of different clients. Needless to mention, this is very exciting as you get to interact and work with new people all the time and if you are an extrovert like I, you will know what I mean.

Working on a new stack all the time

As a developer and an architect, nothing triggers my excitement more than the technology stack I would be working with. Add to it the fact that the stacks keep changing in consulting, it is no less than an icing on the cake. I always look forward to this phase.

Being treated as a fresher to start with

Of course, I mean this in a good way. That’s why it is listed under the pros! Every time I start a new project, I am entering new unchartered territories. While the client undoubtedly has a certain amount of trust in you (as they wouldn’t have hired you or your company in the first place) based on all your achievements (for lack of a better word) thus far, it is only natural that they have an iota of doubt during the initial days and weeks as they haven’t yet seen your work.

That feeling is quite humbling to say the least. All your education, all your work experience and all your recommendations are temporarily put on hold while you are being assessed. This excites me as it makes me feel like I have at that point shed all my baggage and am able to start off clean and nice, and can work my way through to try and earn the trust of this new client.

Trust. And the satisfaction it brings.

I’ve always believed that while being hired by a client for the first time takes skill, talent and accomplishments, it takes all of that and a bit more for them to hire you the second time. And one of the most important contributors to the bit more I mention above is trust. Trust isn’t easy to come by and is very easy to lose. We all know it. Therefore, it gives me unparalleled pleasure when my previous clients reach out to me as they know what they are signing up for!

Now, if it is all hunky dory, why wouldn’t consulting be the magic answer to all software related professional problems. Well, just like everything else in life, everything has a good side to it and a bad side, unfortunately. Here are some of my gripes about consulting.

  • Being treated as an outsider. Given the nature of consulting work and the length of the projects, it isn’t worthwhile for the clients to spend a lot of time, money, and more importantly, energy, in integrating you with the core team.
  • Nature of work is in parallel to the core functioning of the team. One of the reasons for hiring a consultant in the first place is that the client either has a specific problem they want you to address or build a Proof of Concept or something that is not along the lines of what the rest of the team is working on. While we’ve discussed the benefits that this might bring to the table in terms of the exciting nature of work, it comes in the way of being able to interact with the team enough.
  • Lack of stability. While I’ve listed this under the cons, it may or may not be a bad thing necessarily. We live one life and what we want out of it varies from person to person. I like taking chances so this isn’t an issue for me necessarily but the feeling of lack of stability isn’t always comforting. I can tell you that much!
  • Interviewing. While this used to be exciting for me in the early stages of my consulting career, I have to say that it is exhausting. Not just interviewing from a answering technical questions standpoint but also from a process of applying standpoint. My first post alluded to this particular issue so I’ll refrain from saying much again. It should suffice to say that I don’t necessarily agree with some of the interviewing processes I’ve experienced and am less than convinced that they would help hire the best consultant for the job.

Well, we’ve come to the end of this post. Yes, finally. Hope some of this makes sense and even if it doesn’t, thanks for reading!

— krish @ http://www.snowpal.software

Going beyond a resume to sell myself

Okay, this is my first post on LinkedIn. And I have to admit, I absolutely have no clue what is typically expected to be written. But, I figured that’s a bigger problem for folks who may actually have followers or even anyone remotely interested in reading what is being written. Given that there are no such expectations from me, and further, given the very likely possibility that this post might be read by none other than I, it gives me some comfort. A lot of comfort, actually.

And if you made your way thus far, maybe you have a few more minutes to read the rest of what I am going to write. And as to the nature of the content, your guess is as good as mine at this point. So, my apologies if this ends up being an entirely arbitrary ramble. It is just that I’ve started to look for contracts and the next thing to do, and in between that and umpteen other things that are part of what has now become a predictable schedule,  I felt I could use something that refreshes my mind even if it was at the cost of someone’s online minutes.

As I have been trying to sell my services over the years, it became rather evident that I was repeating myself during the interview process. So, over the years, I’ve taken small but progressive steps towards making life a tad easier for me and more importantly, for someone who reaches out to me to find out what I am capable of doing. A resume is a necessary evil, at best, but I’ve always felt that it was more like my wedding video. My wife and I haven’t seen it even once and unsurprisingly so, as it isn’t quite engaging like Mr. Nolan’s movies. Needless to mention, not anywhere near it despite the fact that it was, is and will be my only shot at being a lead actor. Okay, back to my issue with resumes. They are plain and simply boring to look at, read or review. Anytime I look at mine, I hope to see something new, different and exciting and I don’t quite get that feeling even when I was reading through projects that I’ve absolutely enjoyed working on.

So, I tried my hand at coming up with creative variations of my resume. A mind map, a profile on Trello, an Infographic and so on. I have to admit, it isn’t quite as boring as a resume but it still says a lot of things that the reader has to simply believe. I would like to go a step further and make it quantitative. And here’s my take on some of that and it would be awesome to get some feedback from everyone or anyone who reads this post. And for that selfish reason, I hope someone stumbles upon this and to extend that greed, I really hope they didn’t give up on the post after the first few words. But, if they did, I am to blame as I had little idea what even the image at the beginning of the post should be and hence, I simply took a screenshot of my company’s website. Yeah, that’s the best I could come up with.

Enough digression, back to some of my thoughts and questions on how I can successfully corroborate the work I’ve done over the years.

  • Would creating random repositories on GitHub or Bitbucket make a significant difference? I have a bunch but most of them were created without a pressing need or haven’t been kept up to date with the changing version numbers and stuff. And I am not convinced, they actually speak to my skills as a decent coder, architect and problem solver given how much time I had spent on them in the grand scheme of things.
  • Would creating sample applications that use a similar technology stack as some of the recent projects I may have done make sense? If yes, what does this really prove? That a software engineer who has been doing this for over 17 years knows how to create Java/JEE/Ruby/JavaScript applications? I mean, how is it even possible that one who has done this for a while wouldn’t even know these things?
  • Would standing up LIVE applications with links on the company website give a bigger sense of confidence? I’ve always liked this idea and took some steps but to create an application that even did anything remotely meaningful meant that it had to be in lieu of something else I really needed to be doing – working on making progress with a product that I’ve been trying to complete and launch for a bit.

Anyways, that’s a whole lot more than what I thought I would end up writing but I’ve not been known for brevity. To be honest, I’ve not been known for much but the hope that there would be such a day is what has kept me going. That, and the unconditional love for software development and architecture.

Thanks for reading. And yes, that’s me encouraging myself and believing there would be a reader. Some reader!

— krish @ http://www.snowpal.software

Debates and discussions. Software related.

AAEAAQAAAAAAAAkSAAAAJGYzNzgyNDc2LTZlNTktNDZiZS05NmYxLThiYjhhMDNmYTk2NA

Of the many things I miss from my college days, which are obviously long gone at this point of time, there are some that I miss a lot more than the others. One of them that is close to the top of that list, if not at the very top, is the many hours of almost meaningless debates we used to consistently have in our dorm rooms. We didn’t ever plan to have any of these discussions and they almost always happened at the spur of the moment. Sometimes, it was after we got back from dinner at the cafeteria – dinner that most of us didn’t really care for, and at other times, it was after one of the tests or quizzes or exams we had (and we had way too many of those on a weekly basis, if you ask me).

Some of us enjoyed the debates a lot more than the others. Some of us participated in these debates a lot more than the others. But, I want to say that all of us enjoyed these debates to a large degree and perhaps, also came out of it with a lot of learning whether or not that learning translated to anything tangible down the road. And to be honest, what made these debates enjoyable both at the time we had them and also, as I think back about them is mainly the fact that they were rather meaningless and served almost no purpose, at least nothing intended at least. It just provided an avenue for us to express ourselves and learn to share our thoughts at an early age (early in comparison at least!).

I still remember a 10-hour debate from over 2 decades ago about whether or not a college was managed well. Not that any of us attended it or had any interests in it, whatsoever.

Personallya lot of my learning has come from folks who have disagreed with me and from discussions of the sort I mention above. One of the reasons could be the fact that I didn’t have a really high attendance rate when in college (and our school didn’t mandate attendance) and that gave me a whole lot more time to actually disagree with people 🙂 I mean, how much can you really learn if you always forced yourself to agree with the other person? While it is amicable and all, I am not sure if it is necessarily the best way to go from a learning standpoint. Besides, not all of us have the personality to be that way anyways even if we wanted to.

Having said all that, I have to say that I’ve mellowed down as years have gone by. While I attribute some of that change to plain and simply aging, I think the nature of work I do now plays a huge role as well. Going from working for the same firm for years to consulting for a number of clients, sometimes even within the span of a single year or a quarter, has been a different kind of challenge. I have certainly gone from having several hours of discussions regarding why a certain thing should be done a certain way to simply documenting/communicating the rationale behind the approach I suggest/recommend & moving on to the next task. And by taking that approach, I’ve certainly coerced myself into changing my personality. What that really means is that I’ve continued to yearn for an alternative outlet to express my feelings relentlessly.

I would really enjoy a weekly hour-long session discussing and debating software topics. I’ve been thinking about it for a while. Nothing personal and all technical. Discussions that span the spectrum from Ruby Development to Java Architecture to UI/UX to Product Management to Project Management to Testing Practices to Deployment to Cloud Computing to Selling to Database Administration to Running a tiny company to Growing to Making Money to Enjoying what one is really doing! Pretty much like a brown bag session at work except that the difference here is there is no productivity or gains expected and no Cost-Benefit Analysis needs to be done. Just pick a topic and speak about it. Agree to disagree freely without any inhibitions or hard feelings, whatsoever.

If there is something along these lines (meet ups, etc.) happening in Northern Virginia (NoVA), let me know and I would be super excited to join it. If there isn’t one you know of but would like to be part of one, let me know and if there is enough interest (where enough could literally mean 3 people!), I can get one started. If you are anything like me, I think you would enjoy these discussions and also, learn quite a bit from the process!

— krish @ http://www.snowpal.software

Interviewing. I would like to do a lot better.

I have been speaking for a good percentage of the last 24 hours. To different people and about slightly different things but speaking almost continuously nevertheless. Writing has turned out to be a rather relaxing activity off late (in lieu of another interest of mine that is a tad expensive – poker!) and so, here I go.

The good part about interviewing for me has always been the fact that you get to meet new people doing different things. Not to mention it being humbling, to say the least. However, the part where it tends to get tricky is the time and effort it takes. Add that to a consulting career and you will probably see what I mean. The number of people who have to make an impression upon along the way can be a little exhausting as well.

I really wish I could come up with an ingenious way not to prove that I can do whatever my potential clients need but to simply exhibit the few skills I might have beyond an element of doubt. Ultimately, the client needs help with something and they need the best company or person that can help them achieve it. The sooner you get the client and the sooner the client gets the candidate or the company, the happy all parties are. But, we all know it is easier said than done.

I have tried a few options myself and while some of them have come in handy sometimes, they haven’t been able to play a role for the most part. For instance, I created a few different applications that used varied technologies and demonstrated some basic stuff. The code is pushed to a Git repository and is generally running on my laptop that I am well able to demonstrate to the client. The hope here is that they are able to see some code that I both own and wrote with the objective that it goes some way in alleviating any concerns they might have for lack of having seen my work directly in the past.

This has made a difference to some clients and not to most others and there could be several reasons for this – (a) The nature of problem that these scaffold-ish type of applications might solve may not necessarily be complex enough (b) The client cannot be entirely certain that I actually wrote the code (c) The applications aim to demonstrate some skills but they are clearly limited in what they can prove given that I need to create a number of these to cover the different stacks I have worked on in the past (not to mention the upgrades that have to be done along the way).

The one other option I’ve tried occasionally though it hasn’t attracted any client thus far, to be honest, is a 2-week trial period. Given that the on boarding cost involved in consulting is rather limited, in my opinion, I have asked some potential clients if they would be willing to “try me” for 2 weeks and then pay me in a backdated manner IF they liked my work. While this should help in mitigating the risk even more from a client standpoint, I haven’t really been able to sell this and while there may be many reasons for this too, I think one of them is that they aren’t necessarily set up from a process standpoint to go down this route.

I see myself doing consulting for a while unless many other things fall in place much quicker than I expect & given that, I want to really try to find ways to make the finding the next gig part easier and seamless. I’ve been very fortunate over the past few years to be able to work repeatedly with a few of my clients (and a big thanks to them, once again!) and the search hasn’t necessarily extended into week-4. It has, this time around, and I am just beginning to feel a bit exhausted. I feel like it is about time I write some actual code or do some real architecture work for my next client and hearing myself talk about work I’ve done in the past is becoming a bit boring, if you know what I mean! Enough of past laurels, give me a new problem to solve, please!

— krish @ http://www.snowpal.software

Compete. Not so much with others but with yourself.

AAEAAQAAAAAAAAjnAAAAJDk2YjdjZWQxLTMzNmYtNGFkYS05ZjE1LTExZmZmNzVkYzM1NA

The world population is about 7.4 billion. There are close to a 200 countries. The number of distinct professions in the world, while I don’t quite know how many exactly, has to be in the thousands. Yet, any of us can live in no more than 1 country at any given time and perhaps, don’t get to live in more than a handful during the course of our lifetime. The number of people we actually encounter in our lives and have any form of sustained relationship with (in any and all capacities) has to be in the 1000s, if that. A lot of this is mere speculation and while I wouldn’t be surprised if I am completely off with the numbers, they certainly hold true for me. That I can say with a good degree of certainty.

Other than all the reading and watching and hearing we do, in terms of actual interaction with real people we know, we might mostly be limited to a ridiculously small percentage of the world population. And that I think is all that matters to a large majority of us unless, of course, you are one of the relatively few popular & known & accomplished figures out there. I am not one and I don’t know of anyone who is such so, like it or not, my experience and therefore, my thoughts are purely limited in that sense.

A lot us are competitive but not all of us are, certainly not to the same degree. While it is true that a number of our traits are innate and a number of them are shaped by the environment we are subject to both in the impressionable early years and slowly, but surely, over the rest of our lives, I want to believe that we still have control over our thoughts and can choose to really be who we want to be. It is undeniable that most of us aren’t born with a silver spoon and hence, we have to work towards a lot of what we want to achieve a bit more than a few other lucky ones but our destiny has to be within our control.

I have one child, a teenager who would soon be in college. While I am still in the pursuit of my own dreams, I can see that my dreams get tweaked a bit periodically (not to mention more frequently now) to make room for what I think can help him achieve his dreams as he starts to have the first of them (the more important ones beyond those along the lines of “I want to own a Bugatti”!).

The only piece of advice I see myself giving my son repeatedly is that he should do his very best at all times and put his best foot forward but, more importantly, try to always do what he thoroughly enjoys doing and be respectful of others in the process.

While I have no complaints and am immensely grateful to the Almighty for giving me all that He has, I would be lying if I said that I didn’t wish I had done things a little differently over the years. Hindsight is surely 20/20. However, none of that is going to stop me from sticking to my goals and dreams, regardless of how long they actually take to come to but I feel it is my duty to do all I can do to help my offspring get the head start. Now, here is the most important part and what urged me to write this post today. I want to try and help him get the head start without most, even if not ALL, the related pressures associated with something like this. That’s where it tends to get tricky, unsurprisingly.

I grew up in a competitive environment, relatively speaking, but wasn’t one to succumb to the pressures, not most of the time at least. I did what I could and what I was able to. I did what I felt like doing amidst the rules and requirements established by society that most of us are unable to escape. I certainly didn’t let other people’s opinions of me come in the way of doing what I wanted to do and more importantly, come in the way of not doing what I didn’t quite want to do in the first place. This resulted in some decent grades and perhaps more, not so good ones! It resulted in some jobs and not others. It resulted in some contracts and not others. But, overall, it resulted in me being happy despite the grades I missed & the contracts I didn’t quite get. That’s because I tell myself that I at least did what I really wanted to do at the time of the doing.

Of course, we all run into people with differing mindsets all the time. To each their own. I just hope and pray that my son can continue to live life in his own terms (as he now does) and not have to succumb to societal pressures at any point in life. What people think of what we do is entirely their problem, not ours. I have always believed that competing with one’s own self is a whole lot more important than competing with someone else. Agreed, when you apply for employment or for any such thing, you are evaluated against the rest of the applicants but if the sole purpose of life becomes competition, I am not sure it’s even healthy. And even if it is, I certainly doubt if it makes one happy.

I think there has to be a good balance between what you have to do and what you want to do. This balance needs to be maintained at all times in one’s life and cannot be deferred to a future point of time. I was told a number of these things (paraphrased, of course) as I grew up:

  • When in 10th grade – “Just work hard this year and that will ensure you get into a good group or school next year and you are all set”.
  • When in 11th and 12th grade – “Just work hard these 2 years and that will ensure you get into a good college”.
  • When a freshman in college – “Just work hard this year and that will ensure you get a dual degree of your choice”.
  • When in the next few years in college – “Just work hard these few years and that will ensure you get a good job once you graduate”.
  • When in the last year in college – “Just work hard this semester and that will ensure you get into a good college in the US of A”.
  • When in the US of A – “Just work hard for the next couple of years and that will ensure you find a good company to work for”.

And so the list goes on and on. While my point is obviously not that it isn’t good to work hard at any and all points of time in life (that’s a no brainer), all that I am trying to say is that happiness cannot be deferred. There are things you would really feel like you want to do at different stages in life and you have to try your very best to do them at that time. If you are one of those people for who what I am stating is rather obvious and are already living life that way, I am absolutely happy for you (and perhaps a tad jealous too!). If you aren’t one of those, give it another thought to see if what I mention makes any sense.

Don’t wait for life to happen. Make it happen. I have to admit I am absolutely hypocritical when I say this as I still haven’t made that call but my hope is that by reiterating this and putting it in words, it would make it a bit easier for me to take my own advice. That would make me selfish, I accept. So, at the end of another long post, it looks like I’ve published myself as being both hypocritical and selfish. Good job, Krish 😉

— krish @ http://www.snowpal.software

A week off before the next gig!

It’s been a while since I’ve taken a vacation in the actual sense of that term. Not to say that I’ve been all work and no play. While I sometimes wish I had the ability to do just that and be a complete workaholic, I am not my wife and therefore, I am certainly not that. However, I’ve not really taken time off per se amidst the umpteen things that have had to be done even for a product that is still in the making. Don’t ask my why because that’s not what I am intending to write about in this post. Rather, I want to focus on the one week ahead where I am not quite planning to do anything that is even remotely software development related.

You aren’t going to really be enlightened by this post so if you have something better to do, you should 🙂 Not that I am trying to suggest in any way that the rest of my posts are enlightening in the smallest of ways but what I am trying to actually say is that this post is going to be even less enlightening. That’s all!

Anyways, I’ve been contemplating about what I should really do this week to completely detach myself from the routine. If it weren’t in the middle of the school year, it would have been a no brainer. The planet we live in doesn’t have a lack of places to visit even if it means squeezing into coach class and being dormant for several hours and absolutely despising that part of the travel experience. However, it is the middle of the school year and that means the rest of the family is busy as heck. That takes many things off the table but a bunch of them still remain.

  • Travel. We just discussed that so on to the next things on the list.
  • Walking. I love walking and the weather at this time of the year in Northern Virginia is absolutely phenomenal. So, this is an option though it is something we do on a regular basis throughout the year and therefore, it wouldn’t be any different.
  • Eating. Unless there is a Saravana Bhavan nearby, and there isn’t one, this isn’t much of a passion of mine really. Yeah, it would be good to not be hungry and that’s about it.
  • Sleep in. I do this quite often given my nocturnal work habits and my coding efficiencies in the wee hours of the morning. While this is an important aspect of any vacation, it wouldn’t make the week feel any different.
  • Bike. I’ve mostly biked for business (where business is defined as school!) in my early childhood years and it wasn’t until my son grew up and enjoyed biking immensely that I started accompanying him on bike rides on W & OD. Regardless, I don’t bike anywhere to the tunes of the 10s of miles he bikes on a daily basis. I definitely don’t enjoy it anywhere near how he does.
  • Talk. This, I love to do. Between my son (who is chattier than I much to the surprise of people who actually know me) and I, my wife who is an introvert to begin with, hardly gets to say anything ever. Till I find ways to attract folks to have more software related discussions on a weekly basis, she has to bear the brunt of my talkative personality!
  • Poker. This brings us to what I might really end up doing. I wish I didn’t enjoy playing poker but I do. Do I actually win playing poker? Not really. Do I enjoy playing it primarily because it takes me momentarily to a state where nothing else seems important other than the pair of cards in front of me? Absolutely! As lame as it might sound and as futile as the time spent on it really is, it still helps me completely forget about everything else which is, hard to argue, a blessing in some way.

— krish @ http://www.snowpal.software