jay's old blog

this blog will be deleted soon - please visit my new blog - https://thesanguinetechtrainer.com

Your Mind Is Where Your Office Is



Years ago, when I started my first office job, I noticed something. I was based out of New Delhi at that time and it was a fun job. I had wonderful colleagues and a fun office environment. The amount of work was minimal, in fact, outright routine and I was being paid handsomely. Unfortunately, all these creature comforts weren’t good enough for me because I am an arrogant moron who cannot be happy be with what god in his infinite wisdom has given him.

He wanted more. Of course, I solved this conundrum eventually but until I solved it, I was stuck having to go to office every day. That meant figuring out some kind of daily commuting solution. Sometimes, it was a simple as a bike ride of 15 minutes. Other times, it was a 3 hour ride which included a city bus ride, a cab ride, a long walk and another bus ride. These are figures for a one way ride, and needs to multiplied by two.

Fortunately for me, Over the last few years, I have managed to reduce the amount of time I spend commuting to work by figuring out employment opportunities that do not involve me sitting in an office. As of now, If an average person spends about 250 days in office, I may have spent may be 100 days at most, and the number keeps reducing with each successive year. So yes, I am doing okay, working but not actually sitting at an office stuff. However, even on those few days when I travel to office, I cannot help but wonder why does a system such as this exist?

The answers are several and it is quite possible that no matter which answer I come up, I will end up upsetting a lot of people.

However, I did figure out something else, something that I learnt from being a programmer at a young age. The story goes back to the computer lab exams that we had to take in 6 out of 8 semesters of my engineering days. Out of the 120 students who were in my batch, I noticed that almost 110 of them used what was called a lab manual to practice for their exams. They would by heart (mugging up) the code(!) and then vomit it out on to the computer via the keyboard. Even in my very first semester of college, I thought this was odd. The whole point of a lab exam is to test your skills in a simulated work environment. Unfortunately, most of my peers were simply acting like a living and breathing Xerox machine.

The lab exam was for about 3 hours. These lab manual holding, copy pasting obsessed peers would wrap it up in about 2 to 3 hours. I would finish it in 5 minutes. If the lab exam started at 9 AM, I would have submitted my exam papers by 9 15 AM. This wasn’t a spec in the dark because, I repeated this in the remaining exams, and for the entirety of the 4 years of my engineering education. Over the years, I kept thinking about how I managed to do it. I kept telling myself if it is possible to replicate this (15 minutes versus 2 and half hours) at a work place.

In fact, 5 years ago, when I turned independent consultant, the idea was to implement this and make it happen. I could not come up with a name for it, except to call it, mind office. The title is easy enough to be derived. An office is a place that you go to get work done. What if, your mind is the office? If so, what if you could figure out a way to work inside your mind (not all the time because, mind sharing is not yet a real thing) most of the time. There are a truck load of benefits of working right inside your mind. Where you go, your mind is already with you. You are traveling in a cab, you are working. You are sipping coffee at a nice café, and you are working. You could be lying down on the recently cut grass on the lawn and you could be working. No need to commute or worry about internet connectivity or data access or any of the usual stuff that you can connect to the office environment.

As much as possible I try to implement this in my own work life. It just so happens that the software development industry is one of those that allow for working in such a mind office. If anything, I got additional information about this in a subject that we had in our 6th semester. It was called Software Engineering and I would end up reading it like dozens of times, just for the fun of it. The book talked about how software development is mostly about figuring out the different components of solving a problem. The book also went on for hundreds of pages about how, unlike in civil engineering or mechanical engineering, the solution in a software world is just ideas and diagrams and concepts. A civil engineering might need bricks to actually a house, but a software developer does not.

The more I think about it, the more I reread the book and the more I realized how true that. Going back to the way I did my lab exams, I finally found out why I was so fast. I wasn’t fast because I was some kind of super genius. I was simply applying the concepts of software development, the way it is meant to be. When a problem was presented to me (in the lab exam) I had simply solved the problem in my head. I had build the components in my mind office, and then, when I was asked to type out the solution, I did not worry about the solution. The solution was already ready in my head. It was just a matter of translating the solution from my head into the computer screen, debugging any issues that arose, and presenting the output.

During the first few years of my employment, I was surprised that these concepts were not being put to use. On the very first month of my job, I would listen to my then manager (very nice guy, but you know, but regular guy, like the 110 peers in the lab exam who need a manual to write simple code) lay out his strategy to increase sales and I thought it was lame. Sure, he has experience but that is all he had. He was essentially regurgitating what his managers did, who themselves probably had copied the strategies from their managers. I found that these folks were constantly reinventing the wheel, instead of inventing something else.

As a consequence of this, I found myself at odds with everything and everybody. I would explain to people that instead of spending hours and hours in front of work tools, we should be spending hours and hours away from the work tools. If solving problems is like cooking food, I would propose that we don’t enter the kitchen until we have logically proved that our recipe is fantastic. However, a lot of people would not agree. Almost everybody I met would jump into the kitchen the moment they were asked to cook something. Nobody stopped and tried to figure things out. I found this wasteful, unproductive and frankly boring because so much collective energy was being wasted.

That means, anytime there was a team project, my technique of working was always at odds with everybody else. I was branded an antisocial guy, an anti team guy. Add in to this to the fact that I am extremely punctual and extremely documentation oriented, sometimes it took only 15 minutes to become the most hated member in any work group. Add on to this, my general recklessness, and disregard for established social structures and cultures (none of which I subscribed to) I became impossible to work with. If anything, these issues are the real motivation for me to become an independent consultant.

All this brings me back to the mind office concept which I live and breathe each day in and out. Whenever a problem is presented to me, I rarely turn on my many work stations and start hammering away the code. On the contrary, if a project is supposed to take 20 hours to complete, I don’t sit in front of my workstations (plural because I always work with multiple computers) for more than a few hours. The remaining hours, I am lost in my thoughts and when necessary, scribbling away the solution in a book or a diary (digital or analog). By the time I actually turn on my workstations, the solution is all ready (just like the lab exam) and all that needs to be done is to hammer out the code. This process of converting the thoughts in my brain to computer code is fairly mechanical, which is why, one of my three screens of my workstations is constantly playing some movie or television show or running Civilization. The exciting part (the problem solving part) is already done in my brain, and this mechanical part bores my brain out.

I don’t know how many folks are out there, who use a brain office. If you do, please, I beg you, reach out to me and let me reach out to you. We have a lot of notes to exchange man!

Follow me on twitter, facebook and instagram for more updates. Thanks!

Design Tools



[Ongoing series of blog posts to inform potential developers, users and (hopefully investors) about this new app ecosystem I am architecting, designing, developing and deploying. More details at this page]

The tools make or break anything that we are building. Even the best developer can build almost nothing without access to the right tools. Without tools, man = monkey.

Visual Studio

My most favorite tool of all, and hence the very first place. Visual Studio is literally (with Microsoft’s efforts to go cross platform over the last two years) the only IDE one needs to build almost anything. If you are crazy enough, you can even build iOS apps, with some caveats. If you have been a developer for a while, you either love it or you don’t.

In this project, I would be using this mostly for building the APIs and the Cloud portion of the app. I suspect that I will be building the web based admin interfaces also through this IDE.

I love it.

Visual Studio Code

While Visual Studio is awesome, it is also heavy. Like seriously heavy. Building simple stuff, and simply viewing code from a file that came online or from a colleague takes a while in Visual Studio. Most importantly, for web development, we need a simple editor that is superfast. That is what Visual Studio Code is. Fast, light and awesome!

I will probably use this for building and maintaining the user facing sites that will mostly be general information.

Android Studio

I started off by not really loving this (although it is a huge improvement over Eclipse based android development) but the new version is actually better even if it has some insane RAM requirements. Man, it’s not the most efficient IDE is it.

This will be used to build the android apps. However, I will explore the option of building the android app via Visual Studio and if that works, its hasta la vista Android Studio.

Filezilla

For all the FTP related action.

Snipping Tool

Bread and butter of basic documentation that involves screen grabs. Works best with Irfan View.

Microsoft Office

For all the documentation needs, writing and reviewing and generating all the documentation that keeps this project on track.

7 Zip

Yeah, compression and decompression is an everyday activity.

Git – Desktop and non-GUI Tools

For essential version control stuff. More details about version control can be found at these blog posts.

Slack, LAN Messenger and Skype

Yeah, these are the essential communication tools, for outsiders, teams and locally organized folks in a group environment.

[Last Updated February 10th 2017]

Follow me on twitter, facebook and instagram for more updates. Thanks!