Movie themes I love

I watched Iron Man yesterday. It was kinda cheesy, but it did satisfy the geek in me. As I was journaling today I realized I like movies for with mostly two themes(so far).

  1. I like movies where the protagonist does something ingeniously. Something he/she builds, or something original. Something new and creative.
  2. I like movies where the protagonist starts out to be an underdog and eventually wins it.

This itself is such a revelation to me. It speaks a lot about the inner me though. I love to create stuff ingeniously and I love to start off in anything as an underdog.

My Calling

I sleep very sound and have very rich and vivid dreams. Most of the time they don’t make sense, sometimes they make me cry and sometimes they just stay. Recently I had one such dream. I woke up and I could recall what the contents of the dream were. I think it was my calling. I am not sure what I else I could make out of it. It just said – make software for leftovers. In my dream I did this software which would keep track of all the leftovers in a restaurant and inform humanitarian groups about it so that they can pick it up and distribute it to homeless or people who are struggling to afford food.

I know I am such a food maniac. I dream of food too. But seriously I got up and started to wonder how feasible anything like that could be? Well, from where I stand it doesn’t make sense. I could just toss the idea away and forget about it. But being the person I am (a little crazy too!) I thought I would give it a mental try. I mean try to envision what and how of the software could be.

So, having been on the learning path of Flex – I think I would build the application in Flex. Here are some more details:

  1. It would be a Flex application
  2. It would have both a browser edition as well as AIR version.
  3. Leftover maintenance in itself is not a good enough functionality for restaurants – so I would have to build in the functionality for keep track of table assignments (visually would be cool), keep track of orders, A visual graph of wait times computed (to give an idea to the patrons), menus, billing if it’s possible etc
  4. Within this app – there would be a leftover tracker. It doesn’t have to describe what’s leftover but just say how much food or how many people’s food is left.
  5. Someone human needs to do a QC before food is given away
  6. Imagine this software running on College avenue and in one shot you can assess the leftover food and probably feed all the homeless that hangout there (let’s drop our judgments about the kind of people who hang out there for a moment please)

So, there. It doesn’t sound too hard for me. In fact it’s fun and hey I can always blame it on my dream if I screw it up. I am not sure whether it’s my calling or not but I usually don’t get dreams that end up with a message. So, I have 3 months for this pet project which I will work on and if any of you guys are reading this and want to be part of it somehow – shoot me an email(akbarpasha at gmail dot com).

On becoming a freelancer

You know there are sometimes in our lives that we have this inner voice telling us something but we ignore it for a long time and then go through all the ‘physical’ obstacles and then later realize that the inner voice was right in the first place. Something similar happened to me recently.

After I got back from India – I went on frantically looking for a job. I think I attended about 20-25 interviews. I got 3 offers which I didn’t take. While I was interviewing it was becoming very clear to me that the kind of work I am seeking – freelancing would do. But I was really too scared to do that. I was scared to become a freelancer because I was not sure what kind of life it would lead to. Sangita has already made her mind and she became one when she got here, but I was not sure whether it would work out if we both did freelancing.

One thing led to another and after 1 month of searching for a job I realized that the reason why I didn’t like most of the companies I interviewed is because I didn’t identify myself and my values with what the company is trying to accomplish. So, freelancing is one way where I can be very particular about my project selection and totally enjoy working on it.

Now I am a freelancer. How did it change my life? So, far it’s been very good. I am lucky to have some good friends who got me in touch with some really cool people. Slowly I am building up my network and I can totally see all my fears falling apart. Freelancing does made me realize a bunch of things:

  1. I need to be very self-disciplined. I cannot get up late and stay and work in my jammies all day. It kinda puts me in bad mood by the end of the day.
  2. I need to move for a change – I mean I cannot work from home every day. I need to go to nearby coffee shop or a park to work
  3. I need to be very organized with my time. Still working on this one. But my calendar has never been so busy
  4. I need to be very organized with money. As a process of basically trying to write off most of the work related stuff and in a world where your pay check is not a regular occurrence, I need to be very careful with how I manage money
  5. I need to enjoy the freedom which I have. No more stay till 5pm policy. If the work is done, I am out and I can utilize that time to go workout or just cook amazing dinner.

Not sure how future will roll out, but in this moment I am really excited to be a freelancer and I totally enjoy the freedom it gives me.

Change in Perspective

I have been very very busy looking for a job from the moment I got back to US. Job search has kinda become my full time job now. Not that I have started to enjoy the process, but I do realize that it does saps out a lot of energy from me. Interviews are very tiring process. It’s not just he 1 hour that the interview happens but what happens before and after that. Before an interview, there is anxiety and stress of performing good. After the interview there is this usual stress of hearing back from them yada yada yada.

I have come to realize couple of things which I think have led to change my perspective on job search altogether.

  1. I am looking for a job after quitting my other job. Meaning I have all the time in this world to do interviews as well as fret about the outcome. Usually people interview or think of changing jobs while they are already on one job which means that they have already going on something while NOT interviewing.
  2. Most of the companies when they are trying to fill a position go theough a lot of candidates and take a minimum of 3-4 weeks before they give offers.

So this causes a deadly pattern in my daily life. I usually end up being very anxious and also stressful. Not only that, by just concentrating on this I have totally screwed up my daily schedule of journaling, meditating, blogging etc.

Last Saturday, I went out to a nearby Peet’s coffee and did some of my Ruby work. For 2 hours I was lost in my own world and it’s been such a long time I experienced that. I used to think that I derive joy out of learning. But I realized on that day that it’s not the learning, but the new thoughts, new ideas and new concept that learning brings into my life is what gives me joy. And after I started looking for a job, I basically stopped having new ideas, new thoughts and new concepts. I didn’t plan to be like that!

So, I have decided to get back with my schedule. This would include :

  1. Journaling
  2. Blogging
  3. Meditating
  4. Writing Ruby programs
  5. Getting back to my Algorithms book
  6. Picking up with my Erlang learning
  7. Picking up my Actionscript learning
  8. Thinking and blogging about scalability problems/ideas
  9. Listening to my music
  10. Learning everything about Salesforce platform and Apex code
  11. Not to get worried about my job search.

I have decided that my perfect job will come to me when the right time comes up. Till then, I am going to enjoy my life with all the things I want to do.

Why do I like to create Software?

I am looking for a job right now. I have had couple of discussions with some recruiters, companies in my first week here. A couple of people asked me a very interesting question – “Why do I like to create/write software?” or in other words, why do I like to do what I do? I knew the answer to the question to some extent, but I realized that I need to look deeper to get to more core reasons. So I did my bit – journaled, meditated etc and I think now I have good enough reasons to blog about it.

So, here we go – the list of reasons “Why do I like to create Software?“.

5. Creative Canvas: Like for a painter who plays within his canvas area, like for a sculptor who dabbles with his chisel and carve out the image from stone, Software environment gives me a creative play ground where I can test out my ideas. It’s the playground for my creative self to express itself. I write programs that crash and then I make them work and once they are working fine, I make them better. I talk to myself, I try to find inspiration, I read, I discuss, I think deep until I find a solution to my problem at hand within this area of canvas. It fulfills my creative needs and gives me a satisfaction of I created something new.

4. Problem Solving: Software is a very specific instance of problem solving. In this area I can apply my problem solving skills which are generic to the context of software. “Breaking it down”, “Problem re-statement”etc problem solving tools can equally be applied to Software and the outcome or result of those techniques is most of the time immediate. So, not only it’s sharpens my problem solving skills but it provides feedback and lets me improve my skills in that area.

3. Fun: Let’s me just admit, if it weren’t fun I would have never been in Software field at all. This process of taking up a problem or task, thinking about it, applying my creativity to it, trying out a solution, gathering feedback, re-trying the solution, learning, perfecting the solution – is an immensely gratifying as well as a fun filled process. I always imagine myself as a 5 year old kid with a paint brush, having fun with what I am doing. What I create may not solve world hunger, but it’s unique to me, it came from me, it’s an identity for me and it gives me a perspective of where I stand out in this world.

2. Interaction: It’s not any fun to write software inside an Igloo. It’s no fun to write software where I use the same solution again and again. Having other people who are also writing software around me and interacting with them makes it worthy. I realized (about myself) that my learning accelerates when I have a very quality technical interaction with other quality software people. Learning by reading, practicing comes next. Interacting, discussing, talking it loud about any software topic with others is such a creative process. It enhances my point of views and makes me a better software developer. I take back all those learning and try to adopt them in my daily programming.

1. Greater Good: This is a little tricky to explain. I would love to be a part of team which is solving world’s biggest problems – like poverty, global warming etc. But I also understand my position and purpose in life. So, I try to look at the work I do and think of what ‘need’, is my software fulfilling?. I am not big on bashing corporates for the sake of non-profits. It would be silly to do that. A lot of Open source zealots do like to bash anything Microsoft. I think it’s silly to do that too. When you look at the bigger picture, it’s the Ying and Yang.

I try to look at whether my software is meeting the required needs in the best possible way or not. That itself is inspiring to me. Yes, my software doesn’t help global leaders to take preventive actions on eradicating poverty (yet!), but I am happy that it solves a very tricky business process and make my client’s life as easy as clicking a button (so far!). I would love to solve big problems but I always try to see, irrespective of how big or small the issue at hand is, whether what I am doing is aligned to the needs of my client. That’s greater good for me.

As I was typing this, I got a great feeling of Deja Vu. I realized that almost all the above reasons I mentioned fall in the categories/bucket of what Maslow has proposed long time back. So, I checked Maslow’ hierarchy of needs and realized how most of the reasons why I create software fit into Maslow’ hierarchy beautifully.

maslow_hier.png

Top 5 things I will miss from India

I will be leaving for US in another 2 days. As I grapple with last minute things and battle the ebb of emotions within me, I realize that there are some things that I am going to miss. My stay in India was for almost 9 months and were filled with many memorable moments. As I look back, this stay here has caused some great changes within me which I welcome and adorn. So, here are my top 5 things that I am going to miss from India.

1. Family: I am going miss all the love, affection and care of my family. These 9 months passed away as a breeze only because I was loved so much here. My relatives love me, respect me and look up to me. It was exciting to be with them for a long stretch. One of the thing which was nice for me was – this time I didn’t get sucked up into any of the dramas. I am going to miss all the love, affection and care of my family.

2. Food: No where would I get food like I do at my home here. My mother is the best cook in the world. I love the food and my mom shows her love towards me through cooking amazing curries. It is also so easy to get some specialized food items outside easily and cheap in India. But I loved my home cooked food as it’s more healthier than outside and I would definitely miss the food.

3. Friends: I never thought I would put this under this list 3 months back. But now it’s a different scenario. I will miss the friends I made in the past 8 months. Some I kinda played mentor and I am looking forward to how their career unfolds. Some I had fun with, I am going to miss those Indian drink sessions. I am also going to miss some very quality tech discussions with Ratheesh. In the past few weeks, I realized that we both have some very close interests in some tech areas and I wish I came to know about this earlier. I am gonna miss having those tech conversations.

4. Color: It’s ironic that I am leaving a day after “Holi” (Festival of Colors). India is much more colorful than US. In US I find only shades of gray and the most stark color would be purple, that too if you live in Berkeley. Here color plays a major cultural role in people’s life. I am kinda used to see a lot of varied colors around me now. It’s going to take some time to get used to subtle and dull colors. I am going to miss the colors around me.

5 . Babies: Not mine! Even though I get so tired and sometimes very crazy tired by my nephews, but I loved spending time with them. Watching them learn to walk, watching them following me like little ducks, watching them learn to say words was an amazing experience. I realized that the first skill which babies learn is “On/Off”. It’s amazing to watch them grow and see how their minds develops. I had so much fun every day playing with them. I am going to miss them terribly.

Stage Actors Vs. Backstage Crew

The other day I was having a chat with one of the very bright colleagues of mine. He mentioned something that stuck with me and kind gave me a big picture of what I have been thinking of. He mentioned about how on a broader scale job skills are divided. I am currently looking for job and also trying to get into a career which not only would be challenging but also deeply meaningful to me. What he mentioned kinda gave me a picture of what I should be looking for in an Ideal Job. Ok, here is the scoop on the story.

There are 2 kinds of job skills – to make it more analogous, let’s consider Theater performances. You have people who perform various roles on the stage and then there is a whole crew which makes the show happen behind the scenes. Now if we generalize we can cast them in basically 2 groups(very broad).

  1. Stage actors
  2. Backstage crew

So, in the area of job skills – Stage actors are the ones that deal basically with one idea – ‘CRUDding on the client data‘(TM). All these guys do is to take the content which gets created or exists and show it to client in various ways so that it’s easy for the client to modify and maintain the data. Irrespective of job descriptions and technology used almost all of the people in this bucket(Stage Actors) do this perennial task. Your American Idol in this area would be DHH

Backstage crew are the ones who deal with ‘In-Memory computation‘. These are the people who pull the strings (or threads, or processes). These are the experts of code optimizations and innovative algorithm designers. These people make the machine do all the grunt work using automation and make it work the way they want it to be. Your American Idol in this area would be ZSFA

A simple example would be of Facebook. When it started, Facebook is nothing but a bunch of PHP files and MySQL database. The stage actors did a great job of making it popular, but then when it started to have millions of page hits – this actually made the expert backstage crew to step in and write those smart programs that can deal with those millions of hits. In the early stage the backstage crew was present too but their role was not that prominent, in the later stage the stage actors are still there but their role has become one of the important role, not just the only important role.

Serendipity again I guess, it so happened the day we talked about this – Steve Yegge came out with his stunning post of ‘Get that job at Google‘. If you carefully analyze what he says or the skill set he is looking for, he is actually referring to the back stage crew guys.

So what can I do to advance my career of 7+ years which I spent in ‘CRUDding with client data’? I took the clue from Steve and got myself 2 books.

  1. Introduction to Algorithms
  2. Algorithm Design Manual

As I go through these books, I realize they have a deep learning curve and probably it’s a good thing. You just don’t get to become a stage director (part of backstage crew) over night. I am going to invest my time and energy and see where it goes. I already enjoyed couple of cool moments when I try to implement some of the ideas in those books in Ruby code.

Also I have decided to learn Erlang. I think that learning a functional language actually twists my brain cells in such a way that I would end up being more creative and start to think about computation in very different terms. In addition to that I am going ahead with Flex learning too. The reason why I love Flex is that it gives super wings to my programming imagination. I can actually write Actionscript code and generate a visual way of saying things.

My immediate idea would be take for example – take binary search, implement it in Ruby or Erlang and then write a program in Flex which would visually follow, in slow motion how binary search works and shows it in the browser for the user! Now that’s what I call complete learning.

Note: The credit goes to Ratheesh for discussing with me the pattern he saw. I added in more of my flavor to it.

Muslim Tomb & Hindu Priest

Last weekend we all went to my Grand parent’s place for 4 days. As a part of the ritual, I was supposed to don a hat of a barber (or hold a scissor) and cut my nephew’s hair for the first time. It’s a well known thing in India that a maternal uncle should cut his nephew’s/niece’s hair for the first time. Thank God it’s only one time! It is not as simple as it sounds. This act is usually associated with a holy place. Meaning someone in the family would make a deal with God(TM) that they will visit so and so holy place to offer the hair.

So, in this case it was my nephew’s Grand mother (father’s side) who cut the deal. It was in a “Darga” (Tomb of a holy person) in a very remote village called “Bodapadu”. Yes, we don’t have any qualms about visiting tombs and offering hairs – they could also be used incidentally for tourism purpose for ya all white people.

Anyhow, as we are Muslims – there is a strict code in Muslim law (I haven’t studied it but heard about this taboo a lot many times) that we are not supposed to visit any tombs as Islam is all against with Idolization of our pithy worldly objects. So, we broke that rule. But usually in India all these tombs (the holy ones of course) are all an offshoot of “Sufism” sect. They do belong to Islamic saints but come from a sect where it’s ok to have a tombs built and adorned for you. But a lot of Muslims don’t understand that. There is actually no reference made to Sufism, except that it’s just called plain old wrong. If you think we freak out with Tombs wait till we see the whirling dervishes!

So we broke the rule eh and we traveled to this remote place with hair full of nephews. What shocked me once I got there was – how this place is maintained. It’s all maintained by Hindus! Shocking. It’s gets more shocking – the priests’ of this tomb are actually women! Did you get jaw dropped yet? If not there is one more shocker – all those women are widowed. Oh my.

To put things in perspective for people who are not familiar with India. Here are the steps.

  1. Imagine you go to Vatican to see Pope
  2. You are one of those million people waiting to see ‘him’
  3. Now you are shocked because the pope is actually a woman
  4. As you try to wiggle out from your shock, you also realize that pope is actually a ‘African-American’ woman.
  5. Oooh you say, then you are told that she is actually Gay!

So what are you thinking now? I am sure you must be saying, someone wake me out of this dream. It was something similar to me when I saw a bunch of hindu, widowed, women are playing the act of priests for a Muslim holy saint. Now this is not so un-usual in India. Shirdi Sai Baba a holy saint from Shirdi is actually revered and prayed not only by Muslims, Hindus but also from various religion people.

I was quite amused by the surprise I got. I think Indians in general has some high tolerance capacity for other religions than theirs.

As to my nephew’s hair cut. It went great. His dad fed him chocolates and I cut his hair. So, here is the cutie:

dsc_0009.jpg

Here is me in action:

100_5070.jpg

And after 5 snickers, a lot of cajoling, a barber, a holy place, 15 relatives and some crying here is the outcome – 1 clean tonsured head with some Sandal wood paste on it. Priceless.

100_5120.jpg

Bricks and Sheep

I find two aspects of Indian system that are very disturbing to me. I try to tell about it to everyone I come across here in India, but not everyone understands it or sees it the way I see it. Hear me out.

1. Bricks – The Educational system: Whenever I think of the Educational system and the IT training system in India, it reminds me of that song “another brick in the wall“. The system just churns out bricks after bricks. Same studies, curriculum and no creativity. I am more close to IT training system here, so I want to pick out an example from there.

Recently I happen to go to the IT training capital of Hyderabad – Ameerpet. I was there to checkout Adobe’s Flex training. I was shocked to see what has happened to the place. The place is filled with posters and banners – everywhere about all the technology training they are offering. The place is filled with pamphlets. Oh, let me correct myself – the place is ‘littered’ with pamphlets. All the time I was there, I was actually walking on them. People just randomly give out details of IT training in those pamphlets. When some guy offered me one, I said no thanks and you should look at his face. He was shocked to see some new response from people. No one there says no to the junk that gets handed over. They just take it and drop it right there on the street!

So, anyhow my point is not about the junk yard IT training. It’s about how all these million training institutes are giving the same training and churning out same damn bricks. A typical Indian guy comes out of college and heads straight to one of these institutes. This is the place where his American dreams are crafted and sharpened (Another blog post on American dreams later) He learns some course which is in hype and everyone else is learning. Putting in no love in what he does. Later enters the market where everyone else and their mom has the same skill set he has.

There is no differentiation. There is no creativity. The training institutes makes a lot of money. The trainers actually mint money. If the trainer is somewhat good, then there is a queue for his classes. I used to attend a class where there were 1000+ students in one class. We used to watch the trainer in a TV sitting in some 50th row. The trainer also can get weird with their hubris – once I attended a very popular class on EJB (don’t bother if you don’t know what it is – the world doesn’t care) where the trainer came to class drunk! He did a great job of lecturing though.

So, my point is – almost all the training institutes do the same old training and make a lot of money. The end result is we have a lot of Indian techie population who are trained in same things. There is a reason for these bricks and that’s my second point.

2. Sheep – The herd mentality of Indians: At my job I tend to mingle with everyone. I talk to almost everyone and check what they do and how they are doing whatever they are doing. I try to talk to young people who joined the company recently and ask them questions as to what they want to become. I don’t blame them for not knowing what they want, but I do feel uncomfortable by the way they are thinking.

These guys, most of them are in IT field because:

  1. Someone told them that there is more money in it.
  2. Their cousin did it.
  3. It’s cool to sit in front of a computer all day (You can browse!)
  4. Most frequent and important reason – Everyone else is doing it.

I feel so sorry for them. All these sheep that are coming in to IT world are just going to be some tech slaves to someone in some corner of the world. Not many of them are in Tech field because they actually love it. Very few and very rare to find a non-sheep in there. These guys just blindly follow what others are doing. They have some ideas about how they do “follow the often followed path”. Everyone thinks that they are doing it different, but frigging no. They just think that they do, but they are just following someone in the tech field.

When they ask me questions about my career and my life, I always tell them that I always tried to differentiate. That’s how I got so far. I always wanted to stand out in my field. So, I end up learning different language other than Java (gasp!). I try to read people, software management books even though I am not doing management actively (gasp!). I try to draw up my thoughts, ideas etc on white paper rather than typing the code first (gasp!, you should look at my school exam papers – they are filled with my creative art. Hehe)

I believe we are all unique. If God intended or made us same then we all would be carpenters – Hint: Jesus. But nope. He made us unique. It means that we as human beings, every one of us,has something in us which is so unique that there exists nothing else like that in this universe. It’s our job to find that out and just enhance it. Viola. The world would love you for just doing that. To follow some dumb, rotten well followed path means to ignore the uniqueness within us and disrespect the uniqueness that Universe has bestowed upon us.

My unique interests are Technology, Software, Economics, Spirituality, Cognitive Science – all mixed up together. I add a little of all of the above when I write code or pick out a language to learn.

So, coming back to sheep. This herd mentality actually hurts companies, teams, even our country. These sheep produce crappy software, crappy team management etc., because they are not in the business because they love it but someone else has led them there. I know a lot of guys, who actually, literally cried in front of me because they couldn’t work on Java! They were frigging working on far more advanced projects and technolgy than Java. But they were whining about not being able to work on Java. Why? Because their friends we able to go to US of A because they knew Java. Phew! It’s like their hands are in India and heads are in US.

So, I conclude:

Sheep Mentality + Brick Training == One nation of followers

If you think seriously, so far India hasn’t done anything pioneering in Software/Technology even after having so many tech aware people. We are all good followers, but never make good leaders. I think it has something to do with those 400 years British ruled us. The imperialistic mind tend to follow instructions a lot than making it’s own rules. We lost it so much that now we have to learn Ayurveda from Westerners. We are a very good nation for BPO work. And if you come across any great leader in India, just look back and see where the person did his/her education or work in the past – I bet it’s some western country. Don’t believe me? Checkout Gandhi’s history!

So I end this with one last thing, if we ever do a evolution chart for Indian Tech people it would be something like this:

Brick -> Sheep Evolution

Stupid Internet Blocking

Recently our company woke up to a revelation that Internet browsing is affecting the productivity of the developers. Fair enough. They have every right to decide on that. But I really get annoyed how it has been handled. I go to work one day and can’t access Internet. I think may be it’s down so I send out a nice email asking if the Internet is down. The IT people confirm it is. So I do some local work and pass away my time. But later I see people accessing Internet and then I start to get emails from my team basically asking me to enable Internet for them. I am a little confused as I am under the impression that the Internet is down.

Upon checking the IT people change the tune now. The guy just comes to my computer and configures it to a proxy server. So, I had to figure it out myself that they are curtailing Internet access.  There is no frigging policy on it. There is no email sent to everyone about it. It’s just on a need a to know basis. God forbid we let everyone know that we are using a proxy to use Internet. OOH.

It’s so typical of an organization. To totally mis-trust the employees and treat them as stock animals. No one complains. They just go along with IT person’s proxy setup. But everyone is secretly trying to figure out to over come it. The company is dealing with Tech people – we are not dumb nuts. Everyone has a way to circumvent it. A lot of rebel heroes are born out of no where who guide everyone else to by pass the blocks on Internet.

If you want anything to be get done, the best and surest way to do is to make the person want to do it. If you impose it secretly and then have no policy or no intimation it then it’s just going to waste more time of the employees. I personally think that if the Management had just sent an email to everyone telling them why we are having a block on Internet and why the company takes productivity seriously – then it would have been in such a positive spirit. Now it’s all about breaking the wall in front of us. Totally opposite attitude of what Management expects.

And you would think that the guys who configured proxy and blocks are bright enough. They say we have only some allowable timings for browsing. Guess what it doesn’t work! It’s a block on browsing all day and all night.

They still wonder how I get my gmail?