Perspectives from the *other side* on Software, Management and Life

Monday, April 17, 2017

HEC Curriculum Revision experience

Education is something I've always had keen interest in, even taught the Advance Programming course at LUMS for a few years as adjunct faculty, which was a very fulfilling experience. What excites me about education is its ability to transform lives, enabling empowerment especially in developing nations. It is the future, with automation expected to kill most blue collar jobs in the near future, yet Pakistan's masses remain uneducated. The Middle East's reversal in importing large unskilled/semi-skilled resources is a big red flag.

If getting a university degree solved these issues, we'd be in a great place. Unfortunately a degree isn't worth the paper its printed on from most of the universities in Pakistan. Thats a broad statement, although I do have a large enough data set to base this on. I've interviewed in excess of 4000 candidates for different positions in the past 10 years. From Software Engineers, Project Managers, Content Writers, Product Managers, Support Managers, Ops Engineers, Digital Marketers, HR, Senior Executives etc.

HEC attempts to solve part of the problem of education quality at the university level by defining a set of minimum requirements for running a degree program. So I was extremely excited when I got invited to be part of the team reviewing the curriculum for BS and MS in Computer Science (actually Computer Science, Software Engineering and Information Technology). The official title being National Curriculum Revision Committee (NCRC).

I arrived at the HEC center in Islamabad to find a big hall filled with about 70 individuals. All but two others were from academics and were referred to using the title Dr. (in lieu of their PhD). This was a three day exercise and soon it was kicked off by three reps of HEC. After a quick round of introductions, two individuals were 'elected' to manage the outcome of the entire group - Mr Ayub Alvi and another, whose name escapes my mind. The election was an informal process with everyone nodding along to suggestions, and many seemed to know the individuals, although I was meeting them for the first time. They then managed the subsequent discussions with HEC representatives taking the back seat.

The first discussion was on recommending the merging of SE, CS and IT degrees into a CS degree with these others as streams/specializations. I was very much for this, but due to significant disagreements, this discussion ended with status quo. We then broke into different subgroups to review the BS curriculum ie Core, CS, IT and SE. The Core's subgroup responsibility being to review all subjects that are requirements for all the three degrees/specializations. I went into the Core subgroup, which had the subjects Programming Fundamentals, Object Oriented Programming, Data Structures and Algorithms, Discrete Structures, Digital Logic, Operating System, Database Systems, Software Engineering, Data Communication and Computer Networking, Human Computer Interaction and Final Project.

ACM has done a great job of providing guidance for universities on this, and our sub group took advantage of their work. We discussed how the world was moving towards interdisciplinary specializations and the focus needs to be on reducing required/core subjects and improving course outlines to cover essential emerging knowledge areas. For this, our subgroup recommended taking out Digital Logic and HCI from core requirements (and moving them to electives), so students can take additional subjects in specializations that interest them. (NOTE: The removal of Digital Logic from core was later reversed based on opposition from the other subgroups....)

For subject outlines, The Data Communication and Computer Networks was updated to be more specific to Networks with less emphasis on signal processing (signal processing being a separate elective as it has little bearing on communication protocols, which should be the focus of a core subject). Software Engineering (the class that I, as a student, vividly remember as the best day-dreaming experience) was significantly reworked. I reviewed UC Berkeley, UIUC, UT Austin and a few others to find that its no longer a 'theory' subject but a very hands on dev centered subject that takes students through the complete life cycle using theory with actual implementation. Unfortunately there are still universities that still teach it as a theory subject and we had significant discussion (Dr Imran, Dr Zahid and myself along with Dr Junaid and Dr Nayyer) around this. Due to significant variance in opinion, we toned it down from where I had originally proposed it to be inline with UC Berkeley's course, but still a much better improvement over what exists today. It was also recommended that graded assignments be required for giving students exposure to actual agile delivery methodologies using stories and code. There was also a number of revisions done in other subjects, bringing them inline with ACM recommendations on at least their Core1 requirements. 

We then all regrouped to go over findings of different subgroups. Some groups seemed to have had good discussions and even if no changes were recommended, they were able to highlight why and speak about the tradeoffs. Not all subgroups were alike, with one having done little, but perhaps they had better reasons and just didn't explain them. 
There was also a discussion on improving course outlines of Pakistan Studies and Islamic Studies by adding content to enable discussion and thinking on historical events and contrasting view points, but it was decided to seek academics from these specializations in the future to assist. The discussion on these subjects, while small, was very open although it was understood that any change recommendation will need to be very well thought out, even though they currently are not much of an undergrad subject with the same content being repeated in junior classes. 

I also got to learn about the active involvement of the Pakistan Engineering Council (PEC) in degree accreditation. Apparently anything with 'Engineering' in the degree must have approval from PEC, and yep, you guessed it, Software Engineering kind of falls into their preview. Although they're nice enough to recommend that if the accreditation happens from National Computing Education Accreditation Council (associated to HEC) they will not contest it. The PEC, being engineering specific, was pushing for the Washington Accord

HEC was also pushing for PLO (Program Learning Objectives) and CLO (Course Learning Objectives) to be part of the curriculum document. For the PLO, the discussion was significant and it was concluded that they should be left for the university and not enforced by the HEC. We also had some individuals who raised the point that universities should be free to define their courses (and CLOs), with HEC being minimalist in terms of requirements. This view has its merits as it enables creativity as well as specializations to take place at the university level ie a certain university focusing on Network/Computer Security as an example. However the counter to this point was that most universities operating in Pakistan need a bigger stick and not a smaller one. How unfortunate, the bottom ones get to be a drag on the top ones. 

We then ventured into discussing the admission criteria for the three undergrad degrees. Apparently someone can graduate from FSc (High School equivalent) with a minimum of 33% marks. However just-passing is frowned upon to such an extent that regulatory bodies enforce restriction on admissions for the undergrad. Medical and Engineering programs are mandated to keep the merit above 60%. With the CS program, the minimum requirement is 50%, while for Software Engineering its 60%. So while the discussion started off with trying to increase the minimum requirement of CS to 60%, I had issue with a regulatory body enforcing a minimum requirement, which I feel should be the university's job. We had an intense discussion on this, and I voiced concerns that unless the decision is data driven, its best not to add any more restrictions. It was joked by a few that even candidates with 90% marks have extremely poor fundamentals and so perhaps a good FSc grade means little. 

On the last day, we had subgroups made for the MS program, I went into the Computer Science subgroup. The first discussion was to make the research project a requirement, this was a fairly intense discussion with strong opinions on both side. I was of the opinion to keep this optional. Alas, a vote was put and making it mandatory were in the majority. I objected that a normal majority cannot be taken as the subgroups recommendation, and for that a near absolute majority is needed. Turns out that government jobs give significant incentives for research based MS and making it mandatory would help those candidates. Then someone made a great point that in the industry, no one cares about research project. While for academics it might be important but with most candidates going into the industry after their MS, a restriction doesn't make sense. It was finally decided to recommend that MPhil degrees be issued instead of MS for project based Post Grad degrees.

The other subgroups worked on proposing additional streams in the MS program, eg Data Sciences etc.

The final steps are for the consolidation of the curriculum revision, they will then be sent to universities for feedback. We will then meet again in a few months to review the feedback and at that point, I was told, this would become the new curriculum. 

In summary, I am extremely impressed with HEC. They managed to get a good number of individuals from across the country, for only the cost of airfare (no one was paid for being here for three full days). And most of the individuals played a very active role, provided great feedback and had healthy discussions. It also enabled everyone to understand diverse issues, from challenges faced by students of remote universities to matters of survivals for tier 3 private universities. 

Some of the academics were extremely talented, and seeing that they worked in remote universities was even more encouraging. The revised curriculum is also a good step forward, but there is no substitute for dedicated teachers and good university administration (which isn't the preview of HEC). The Massive Online Open Courses from the likes of EdX, Coursera and Udacity are also a game changer, and hopefully we'll see some students taking advantage of these, especially those in low ranked universities. Seeing HEC work, makes me think that it would be great to have something similar for primary and secondary education, as a lot of students come unprepared to universities because of extremely poor basics.

Monday, February 20, 2017

Time to Think!

"Time is money" - said someone

In today's world, being busy is considered a good thing, which is better than slacking off. And is definitely needed to carve out our strengths in the early years of the career. The harder we work, the more we understand our limits, the more we improve our skills and the better suited we are for our long term aspirations.

However, I've come to realize through personal experience, that working hard all the time in mid-career is not such a good thing. I learnt this lesson the hard way when after many years of long work hours and no vacation, I realized one day that I was grinding through life. There was little foresight as to what 'big' thing I needed to work on, just that work had to be done. I felt I had buried myself into something taking me away from my long term goals.

It then took a difficult decision to break out and start a new venture. But now, with the new venture, I have learnt my lesson. Taking time off to assess and then recalibrate both my own compass's North as well as that of the Venture is now a thing. And I look forward to it every year now.

Each time I take time off, I come back with an additional zeal and a sense of purpose. And the work that I missed out, well, it just forces me to delegate. And that makes my day less tactical and more strategic. Another benefit is that it enables the organization to grow, it enables the team to pick up more responsibility and we all become better.

Still have a long way to go before I get it just right, but now the footings are right, or so I think, at least until my next vacation! So my lesson learnt here is: sandwich idle time into the craziness of daily work!

“Those who are wise won't be busy, and those who are too busy can't be wise.” ― Lin Yutang

Tuesday, October 06, 2015

Graduating from a B-Grade School and Want a Job?

"I wish I had graduated from a Tier 1 university so I could land a job.....", if you've had such thoughts after not hearing back from employers for your first job, its time to stop, reflect and come up with an action plan.

As an employer and advisor to individuals who've just graduated, my advise is simple. Stand out and be prepared to roll up your sleeves. Since I work in the Software Development industry, I am confident this advise holds up for this vertical and perhaps others too, where its an 'employees market' (employers are desperate to hire and generally are unable to find individuals with the needed skill-sets). Easier said than done, so I've put an action plan for those interested:

  1. (Re)Take all basic courses from Udacity, Coursera etc. You want your basics to be rock solid. Tier 2 universities generally don't have good faculty, and its your basics that really give you away in an interview. So be solid
  2. Participate in programming competitions. Doesnt matter if you're the last ...just go all out. Note these participations and place them prominently on your CV.
  3. Create a github profile and start following open source projects of interest. Try to subscribe to projects where there is already a large following and then keep up with pull requests. If you're able to send a pull request, give yourself a big pat. If it gets merged, High Five. If not, no worries. Add a reference to it in your CV
  4. Follow a few tech blogs. NOT the ones that talk about iPhones and Android phones, the ones that talk about technology as an industry. Techcrunch, hacker news, read write web etc. Understand whats shaping the world
  5. Be passionate and confident. It shows in the interview and helps form a positive impression about you even if you're not able to answer all the questions.

Good Luck!

Saturday, September 20, 2014

For the love of the customer

Our product, EZOfficeInventory is a leading equipment tracking solution and we've been busy disrupting this space for a few years now. When we started, our goal was to help office employees manage and keep track of assets assigned to them. But if we had stayed there, there might not have been much of a product for me to blog about today.

As customers started signing up on the product, we started getting feedback and requests for updates. My initial fear was of us listening to the wrong customers or moving away from a product thats useful for a large majority to something only a select few customers can use. Two books that guided us through this decision making are:

Innovators Dilemma by Clayton M. Christensen
Cross the Chasm by Geoffrey A. Moore

But fear aside, when I look back today, I am comforted by a decision we made fairly early on, which was to be customer centric. Our goal is to make products for businesses that help them be successful. That meant being a high impact company. Money and revenue being a secondary goal. And there were more than a few times when we had to make long term decisions and this rule came in handy.

As an example, one of our customers wanted us to customize the solution and have it deeply integrated with their backend system. They were willing to pay some serious dough but we decided not to proceed as it was less about enabling the majority of our customers in being successful and more about taking the money and doing what one customer wants.

Another good outcome of having a focus of customer-first is that everyone in the organization understands that we cannot leave our customers to hang out to dry. If there is ever a data consistency issue, or a system availability issue, its our number one priority. It doesn't matter if the customer facing the issue is on a free package or a paid one, we never let a customer hang out to dry. Because of this, we've seen good retention and decent referral business. But most importantly for me, its helped comfort me in knowing that we've come a long way in achieving our goal of providing a valuable product to our customers.

And every now and then, speaking to a customer who raves about how our product has helped their business in being more efficient or successful always makes my day!

Wednesday, June 19, 2013

Tips for Interviews

I've been taking interviews for technical jobs for over 10 years now. I still have a long way to go in terms of coming close to perfection, but here are a few tips if you're looking to land a job

  1. Come prepared. Its not a weekend barbecue party. If you cant bother to spend a few days to brush up on basic technical concepts, then dont waste my time!
  2. Exercise basic hygiene. That means cutting your nails and brushing your teeth. While looks and physique help in getting a good first impression, if you have bad hygiene then I dont want to punish others by having you forced on them. You'd have to be Einstein for me to look the other way and hire. 
  3. Be confident. I know of someone who tool anti-stress medication before interviews to help with keeping calm. Dont recommend it, but as an FYI he's been pretty successful, and he happens to be a doctor! You may want to exercise, rest, yoga or whatever to help put your nerves at ease before the interview.
  4. Research the company. In the end if you ask interesting questions and get ideas rolling in my head, I'll like you. And that can be a determining factor if you're a borderline.
  5. Know what and how you'd like your career to pan out. Dont be over ambitious but have some ambitions. Dont be naive either. If you act like you know what you're doing, people will think you know what you're doing - even if you dont.
  6. Dont give up easily on tough questions. You should ask if you have time every few minutes if you're stuck, but dont give up too easily. Nobody likes quitters.
  7. Dont BS. If you dont know the answer, say you'd like to attempt a guess before throwing  baloney my way. 

Sunday, November 25, 2012

Careless, cross that, criminal negligence in Pakistan's Doctor fraternity

The events and characters covered in this article are real. No synonyms or pseudo names are used, its the real deal. If you believe I'm being unfair, I don't care. In Pakistan we're blessed with more than a decent share of black sheep, and what I'm about to narrate is something that will render most individuals speechless.


My wife has had two Caesareans at the National Hospital in DHA, Lahore. The first Caesarean was unnecessary as the labor was artificially induced even when the term hadn't been completed; we'll classify this as incompetence on the Doctors part. Now incompetence beats criminal neglect, since incompetence mixed with dedication yields successful, although non-optimal outcomes. Having your first kid and some painfull stitches isn't the kind of experience that does justice to parenthood.

Moving on - we were on our third child pregnancy and my wife insisted she wanted a normal birth. We read a lot on the internet, by that I mean my wife become the encyclopedia on medical practices in pregnancy and in that process she had me pick up a few pointers on how pregnancy is dealt with in the developed world. So now we needed an expert gynecologist. This was going to be no normal pregnancy, we needed the best. 

Chapter 1 - unlucky

The process of finding a good doctor in Pakistan is that you talk to a few friends and relatives to come up with a list of potentials. We attempted this and in Lahore we couldn't find anyone other than the old generation of gynecologist, and since they were like really old, we couldn't go with them. So we decided to go with the head of Gynecology in a hospital that came highly recommended. Like I stated earlier, I'm not going to hold back any names. Fatimah Memorial is the hospital and our ill picked Doctor was Fozia Manoo Khan. She's specialized from somewhere in the US. I wish I had digged deeper into her degree, I fear she might have specialized from Harlem (a low ranked Hospital in NY) although doctors even there have some humanity in them.

On our first visit we laid it out to her i.e. we're not the standard case she's handled. We're going for a normal delivery after 2 C's even when its fairly rare in Pakistan. And we needed her to help us. She responded with the expected lecture, i.e. very rare in Pakistan and that she would give us a trial if we so demanded. 

Chapter 2 - the journey

The pregnancy progressed with a hiccup. After all, Pakistan didn't become a nation of 190 million magically, the nation has seen so many babies that we might as well make the baby our mascot! I digress! 
Dr Fozia M. Khan isn't the cheap doctor, she charges Rs 1,500 per visit, and we probably had over 10 visits easy. Each visit had us wait around 40 mins for a 10 min session. On most visits we'd bring up the following subjects:

1. I, the husband, want to be in the delivery room. She would typically respond that there in an LDR room that we can avail. Something of a rarity in Lahore, I guess most men think its honorably to be dead farts siting in the waiting room for the mother to do the 'womanly thing'. But in the late 8th month of the pregnancy she said the room had been broken down to make way for some renovations since it wasn't being used. Crap!

2. We want this to be a normal delivery. She would generally respond to this by saying that its high risk but would let us try it. 
So all was going well, until we hit the last week…..

Chapter X-1 week. Storm before the storm

On the last visit to her clinic, we ended up waiting 30 minutes for Dr Fozia or her nurse to arrive. Her nurse took some basic tests and then asked my wife to wait further for Fozia to arrive. I felt bored out of my wits in the waiting room and made the mistake of asking my wife if it was ok for me to check up on office stuff for a bit since my office was close by. I received a call 30 minutes later that I should come back from office to pick her up. My wife was extremely emotional when I arrived. On her last visit before the big day, Fozia M. Khan decided to SCARE by wife. She used every scare tactic she could, from describing how her uterus could shear and her organs splatter, to her taking 'NO RESPONSIBILITY' for her safety. Holy #$@$. On the only solo visit by my wife and the last before term completion, she decided to put on the witch costume! 

We were vested in her too much to change gynaes now. We prayed, we browsed the internet for more similar cases, and we prayed some more. My wife decided the next day that she's not changing her mind, she's going for the normal. Everyone who knew what was happening had their guts sticking in their throats but we all acted with confidence, and with confidence in her. What kind of a crazy doctor decides to scare a patient at the worst possible time when confidence can mean the difference between life and …. 

Chapter X! 

Somewhere up above, a decision was made to send a new life to this world. My wife had read enough to know that being in the hospital too early is bad for deliveries. She had us walking in a park during the labor pains and having me time them. I was scared. When is it too early and when is it too late to start the trip to the hospital. Why can't things be more simpler! In the evening my wife finally said, lets go, but on the condition that we would come back if the labor wasn't in its final stages. The drive took 40 minutes to the hospital. They checked, stated labor had begun but my wife said it wasn't in the final stages and we went home after discussing it with the nurse. Then at midnight, we went again. This time she was admitted. I was asked to wait outside in the waiting room. My mother in law accompanied my wife, thank God she had come by when she did. 
The next part of the story has two angles to it, one that I experienced and the other of my wife. Fozia M. Khan was busy with her dreams if you're wondering about her experience.

Me: I was in touch with my wife every 30-60 minutes via cell phone. 4:30 am was expected to be the moment by my wife's calculations.
Wife: Took no epidural or spinal. Doing so could complicate an already complicated labor. Duty Doctor who was suppose to check regularly was sleeping. The Duty Doctor needed to be woken up after every hour just so she can do her job, which she felt was a favor.

Me:  Time stops in moments such as these, and when 4:30am came …. it stopped for longer than I'd wanted. Than at 5am, my mother in law called, asked me to pray and from her voice I could tell something was off. At 6:15am I got another call from my mother in law, she said they were taking my wife to the delivery room
Wife: At 6am, ready to push. No Fozia M. Khan. Even the Duty Doctor is now ignoring me. Telling me to lay on the side and not to push until Fozia comes. Babies don't wait on Doctors! The pain was off the charts, and it wasn't the pain thats associated to prepare for the delivery, its the kind of pain thats telling you to push. I go ballistic, throw away the baby monitor. They finally move me to the delivery room. 
But instead of guiding me to push my child out, now I'm alone. No one is with me. Not even the Doctor. I wait for what is eternity. A rude nurse is now my sole guardian. The pain of not pushing is extreme. I beg the Duty Doctor, who was clearly avoiding me, to guide me in pushing so I can deliver. She says ONLY Dr Fozia can do it, to which I respond that I don't want her. I can feel my Caesarean stitches being stretched and the baby has come down. Another Doctor inspects and says the baby's crown is visible. BUT DO NOT PUSH - MUST WAIT ON FOZIA

Me: At 6:45 am, I'm worried. Something is not right. Why haven't I heard the 'good news'. I call my mother in law and she says the Doctor hasn't come! I call her assistant (the doctor never gave her own number), and she says that Fozia is on her way. I'm in a state of numbness …. my brain is sending too many signals at this point, some of anger, others of frustration and the rest of fear. I just say in a calm voice, what happens if there is a complication right now? Why is she not here. Little do I know that things have already unfolded that required Fozia to be there 30 minutes ago (6 am) at the minimum. A Doctor with some conscience would have been at my wife's side by 4:30am. 

At 7:15 am Fozia arrives. Delivers and then leaves not to be seen until 32 hours later. Some dedication by a Doctor for a case that even she, i.e. Dr Fozia, described as being extremely complicated and rarely carried out in Pakistan. 

Chapter - The End

I had a few choice words with Fozia when she finally came to check up. Her parting thoughts to me, "Take your wife to a foreign country for your next delivery then". 
I then complained to the MD of the hospital, who seemed frustrated at the state of affairs as well. His every attempt to try to figure why Fozia wasnt in the labor room were dead ends. In the end his opinion was, you cannot find replacements for doctors - better to have something than nothing. 

Charges for a delivery, one where the Doctor was MIA, Rs 60,000. 
Of which Rs 36,000 as direct fees going to Fozia. 


Dr. Fozia Manoo Khan was late by 3 hours per any decent standard, and criminally late by an hour in which two lives were put in danger. Incase you're wondering if its possible that Fozia was unaware as to how things were unfolding, let me clarify. Fozia was called by the staff at midnight and she was the one who had asked the staff to call her at 4:30am to update the status. Rather than rush to hospital given the level of dilation at 4:30, Fozia just waited until 6am for the dilation to complete, and only THEN have the hospital ambulance sent to her home in DHA. Did I mention, I live in DHA as well and even under no-traffic conditions you're looking at 30 minutes one way! So an ambulance leaving the hospital at 6 can only bring her back by 7! 
Ok - maybe there is still some wiggle room, possibly that she had some urgent matter at home. In my confrontation with her, her classy words were "my sleep was ruined and you're still ungrateful for having a healthy baby!"


Both mother and child are doing fine. The purpose of this post is not to count my lucky stars, but to ensure that I do my part in highlighting criminal negligence. And if you're thinking of having Dr Fozia as your gynae than at least I've done my little part in trying to highlight her record.

So if you've been thinking I sound cynical these days on how bad things are in Pakistan, you're right.

Thursday, September 29, 2011

In favor of recession

Recession, contrary to common opinion, is a needed part of the economy cycle and more importantly for sustaining our civilization.
Booms while great, do have downsides. No need for me to write on the upsides of a boom since they're well known and even fantasized! So to the upsides of a recession:

1. Helps the 'humanity' aspect. During extended booms, its easy for individuals to became part of a rat race ie who has the biggest car, the exotic summer vacation etc etc. Recessions enable individuals to be grateful for what they took for granted. It helps reset the human clock on being content.

2. Improves professionalism. This is my favorite - during booms the dumbest of the lot start to believe an imaginary worth of themselves. During booms, the human resource shortage creates an impression in the heads of the 'not so above average' that they have abilities that need to be coveted by employers. Well, the wake up call during recessions, when the low performers are typically first to be let go helps them get out of their slumber. I've seen engineers being hired in booms who I would hesitate to hire as blue-collar workers, and that puts a dent in any organizations minimum bar of professionalism.

3. Sets up an environment for the next boom. Recessions help people realign such that the bad typically get weeded out and the great get some breathing space to kick around. This sets up the infrastructure for the next boom since exceptional talent is able to focus without being distracted by the not-so-talented.

So next time you hear that we're in a recession, stop and think if you're one of those who needs to realign and/or push harder to be the best that you can be.

Monday, March 28, 2011

Rails Developers

I've recently started noticing the same trend in Ruby on Rails development as Java development was 10 years ago. Everyone who is anyone is jumping into it. From engineers to musicians. While its nice to have a lot of developers, the end quality remains elusive. So if you're thinking about picking up Rails, ask yourself this:

Are you in it for the money or are you in it for the passion?

If you're for the former, all the best to you, I really dont have much to say after that.

If you're the latter, then I suggest you strategize before becoming a code monkey, a list I'd recommend is:

1. Read the basics - ie know what Ruby is first and then pick up on the basics of Ruby on Rails
2. Write a simple application - but dont leave the 'magic' work under the hood without understanding it. Rip it apart, figure out why something works and why it doesnt work. Scaffold's and ActiveRecord in Rails make web development look like a walk in the park. But only those developers who understand what happens under the hood make it past the standard websites and onto the more interesting and challenging tasks of scalability and security.
3. Keep returning back to the basics. A sky scrapper would fall if its foundations were to be eroded. Dont let that happen to you.
4. Be active on GitHub. Nothing beats being the person who writes code that hundreds or thousands of other developers get to use. And you'll learn meta-programming in the process too!
5. Take on energetic developers as your proteges. Every now and then you'll get a question that'll make you think even when your current projects doesnt.
6. Avoid the 'I am god' syndrome. No matter how good you are, there will always be someone better. And nobody likes a snob anyway!

Friday, March 11, 2011

The light at the end of the tunnel for Off-Shore Web Development

If you're in the offshore web development business and think there's a train coming head on - you're probably right!

I've been pondering over this for a few months now and the conclusion I come up with is that offshore web development companies are like tiny fishing boats rushing into the ocean not realizing its the calm before the prefect storm. Most such businesses today are only concerned with one thing, recruitment. Gone is the thought that there can be a storm lurking just beyond the horizon and the more they recruit the bigger the downsizing they'll need to do.

If you're a developer, work hard to be the best. Since the best define their own destiny and even during tough times can find work.

Why do I believe this is a bubble thats going to burst:

1. Recent adoption of consumer devices eg iPhone, iPad, Android, BlackBerry pad etc are sending most brands and companies into a panic attack, the same way the dot com boom of 2000 did. Most of the mobile apps being launched today are plain crappy - they add little value other than being installed on the device and allowing the user to enjoy a customized experience. But WAIT, didnt the web promise us the same? Oh right ...html just isnt ready to do the work these apps can, or is it. It doesnt matter which side of the argument you're on, we can all agree that html5 will become mainstream and these apps will be gone the same way desktop apps have.

2. It takes 3 (three) developers to do the work of one. One developer is doing the website, another the iOS and another the android (lets assume no body wants to develop for BB, WebOS and Symbian). Question: How many browsers are there? How many developers does it take to write an app for all of them? ONE! So we likely have a 3x Artificial/Temporary demand in resources going on right now.

3. Labor Intensive. All labor intensive industries have gone the way of disruption through productivity tools and automation. Software is no different, and we're already seeing the emergence of a new breed of RAD tools as well as technologies that enable porting to all devices by writing code once. Ahh - Java Applets, you were born prematurely! Flash - you suck. Microsoft SilverLight - you belong to the 'dark side'! HTML5, you'll do just fine.

So the million dollar question is, When is the bubble going to burst. Thats anyone's guess, but a market correction will come. Have you hedged your bets in terms of growth initiatives?

Labels: , ,

Friday, February 25, 2011

StartUp! Why NOW?

I've been doing extreme forms of mental tightrope walking over the past few months. And the end result is me going my separate way. Each time I state to someone that I've left my X-Company to form a startup, I get asked "WHY" ??
So here it is, and for those that dont know me, I hope it helps you think about your own aspirations and next steps.


I've resigned as a CTO & partner of a mid size software services/products company specializing in web and social media applications.


My career path (you can check the details at started with a step into a 20-30 engineers company and then went on to working for a 50,000 engineers company. Then the downward slope of joining a 5000 man company and then to a dozen or so engineers based one. The latter being the place I'm just exiting from and now being over 80 and likely to be the next big software house in Pakistan.
Reading the above, it almost makes me want to pinch myself on leaving a technology company when I'm confident in its growth, and by and large being a great place to be. Even my exit speech left most confused if I had changed my mind to stay or if I was indeed leaving :)

However, my biggest fear was an image of myself that I saw 2 to 5 years in the future - an EX-engineer who's stuck doing management crap primarily troubled with recruitment and employee training. Growth for a software services company will always be about the ability to recruit the smartest engineers, thats because engineers create value and not the business managers. And constant growth pains isnt the kind of problem that gets an engineer-at-heart excited. And lets face it, services industry is not for the faint of heart. Its a shop thats open for business, and you dont get to choose your customers. The customers choose you. Read the story of the mac store employee to see how even top brands have to entertain jerks at times

***Disclaimer: Most customers are professional, but every now and then the few jerks can hit the raw nerve, or at times the firms own jerk engineers can cause perfectly professional customers to match them.

And then the light at the end of the tunnel, the product idea for mid to large businesses. I remember having to waste my weekends just to file paperwork while working at the fortune 500, and its still the same for my peers working in mid to large enterprises! Keeping the actual product ideas under the lid until its ready for the curtain raising!
The idea(s) came about during the usual client calls and even recruitment interviews with fairly experienced software development managers working in/for large enterprises. And it hit me that most mid/large sized companies are still stuck in the early 2000's ... a decade of catching up still needs to be done in how most companies run their internal software development units. Having worked in a fortune 500 while interacting with a couple dozen other fortune 100's, it was like a huge 10,000 Watt bulb switching on! The ROI and the pain each employee of a mid to large size firm goes through to get their job done is considered part of the job.

No more pain for employees of mid to large size firms is the value proposition of the fledgling startup!


I'm betting on 2011 being a great boom year, and that a professor of mine once explained to me the greek concept of opportunity or Kairos. MIDDLE EAST: Get your act together quickly, high oil prices are NOT good for the global economy!
And like any business that needs to be successful, the passion to excel and deliver must exist. And for me, its now! I believe in the mid to large businesses product space and more importantly the ability to execute on it. The rest of the matters will be tackled as they come (the "what if questions")

Lastly and probably more importantly, if you want to be part of a journey that is sure to be exciting and nothing short of a crash course in creating a great products based startup targeting the North America market AND you're great exceptional in UI design or Rails development, then get in touch with me! jobs (spammers - stay away!)

Saturday, December 25, 2010

To Write or to Rewrite

Anyone who has ever managed engineers would know how most love a clean slate. Its natural to want and yearn for a clean canvas where the engineer can let loose their 'creativity' and 'architecture' sense.

That stated, most real world problems require adding to an existing structure. For software engineers, that means working with an existing and typically significant codebase that may crumble if not handled correctly when adding functionality.

I've seen software engineers attempt whole re-writes just to avoid reviewing existing codebase and its associated delicate handling. The question being when is a rewrite justified, and my rule of thumb is:

Do Rewrite: Existing code is in a technology that is outdated, or is written in spagetti code, or has Systemic issues (security, scalability, performance etc). All of these stated classifications must also meet the criteria that any enhancement or fix done on top of the existing code will require more time than the rewrite. The enhancement can be the specific task or group of tasks in the roadmap.

Dont Rewrite: Existing code is more or less feature complete with possibly a few glitches.

The reason to avoid a rewrite as much as possible is that code generally evolves from its original specifications, and while attempting a rewrite a lot of unwritten specifications are overlooked thereby arriving at a rewrite that is functionally less mature as well as possibly suffering the same issues that exist in the older code.

An interesting experience I had recently around this subject was with my ATS (Auto Transfer Switch). The picture of which is above. The Magnetic Connector got worn down and I asked a electrician to replace the specific component. He stared at the circuit for 15 minutes and then prescribed that he needed to completely rewire everything (and will obviously charge me for it!). On my insistance that only one component is broken, and he just needs to make sure the replaced component is installed correctly, he refused to take on the project since he had no idea of the circuit. It was obvious to me the electrician was more a creature of habit and preferred to work on circuits created by him so as to avoid having to use diagnostic tools to determine where the '0's and '1's are. I knew he'd create a similar layout and then I'd have the same problem if I ever called in a different electrician with similar traits. So I stared at the circuit for about 60 minutes after he left and it finally made enough sense for me to do the replacement (which was a 10 minute task!)

Wednesday, October 06, 2010

Empowering Employees

Great companies have empowered employees, and they're trusted to make the right decisions. However often we come across cases where really smart employees make the dumbest of mistakes. It shakes up the whole notion of delegation and if indeed micromanagement is the way to go (not!).

I recently came across a three letter acronym that tied up a lot of loose ends of such thoughts. The magic acronym being FAE (Fundamental Attribution Error). In summary this means that when we observe the behavior of an individual, we overly attribute it to his/her personality traits rather than the environment or context.

As an example, software engineers might be writing extremely poor code not because they're bad engineers but because:
1. Timelines - the team manager might overly emphasize timelines and not enough on quality. This will cause many good engineers to unlearn their good practices for ones that get the job done in the eyes of their manager, and at least in the short term keeps things running.
2. Precedence - if a new engineer is added to a team where best practices are not implemented, but rather the only form of measurement is getting the task checked off in the project plan, then they'll do as 'When in Rome, do as the Romans!'
3. Extreme Pressure - too much pressure (such as regularly being threatened on loosing pay/job if ...) makes things worse then good. Under extreme pressure, the 'thinking' part of the brain for most individual stops working and the primitive one takes over. The goal is to just make it to the next day without concern for making the best decision, which relates to something that lasts, scales and all the other goodies!
4. Context - Logical decisions require understanding the context. If a developer does not understand the bigger picture, he/she is likely to make mistakes since the context does not exist for evaluation of the trade offs for the design decision. So each and everyone in the team should understand what the end goal for the team is.

So next time round, when dealing with a generally smart employee having made a poor judgement call, do think if it relates to the context/environment. And if it does, how to go about changing the environment to ensure it doesnt happen again to other employees.


Monday, September 13, 2010

Operation Flood Relief - Swat, Pakistan

Picture 1: Thumb prints along with names and id card numbers of those who were identified by a survey team and then received the rations
Picture 2: This river flowed on the far left corner, while a road and houses existed where the river is now. All points beyond where we were standing were now cut off with no access to food supplies. The river was originally 50 m across, now its 230 m!

Picture 3: This is a blurry picture of a US army helicopter participating in the relief effort.
Picture 4: Just one of the many bridges washed away by the floods.

A few weeks ago I got the opportunity to participate in a flood relief effort that a friend of mine had organized. Knowing my friend to be a good planner and executioner, I took it on to accompany him during one of the many trips he'd carried out for the relief effort. Here is a narrative on my experience.

Purpose: The specific relief effort that I was part of consisted of approx USD 16-20K of food items (with due thanks to a lot of individuals that my friend had been able to reach out to). Each assigned person was to receive 2 bags of food. Which was:
a. 20 KG of Wheat
b. 20 KG of misc items including: Rice, Cooking Oil, Sugar, Tea, Onion, Potatoes and Pulses

Scale: 500 families were targeted ie 500 x 2 bags = 1000 bags = 40,000 KG's of food.

Strategy: A local NGO was picked to provide administrative support. The benefit of local on-ground NGO's with active presence during the pre-flood days being they have good awareness of the ground situation as well as crowd management, a major issue which I'll refer to later. The particular NGO picked during my trip was MuslimAid, a UK based charity organization.
Our original goal was to target Mianwali, a city in Punjab submerged by water, but thanks to the feedback from the NGO, it was made clear that this particular town had now started receiving flood relief and aid. Swat, an area in the north western area of Pakistan (now known as Khyber Pakhtoon Khwa) however was not receiving much aid and the situation there was quickly becoming catastrophic. So Swat became our target area. Specifically Bahrain, Kalam and Uther town residents (there is no road link to any of these towns at the moment)

Execution: Three trucks loaded with relief goods were prepared with the help of MuslimAid, and directed to move towards Swat. In parallel, an on ground team started the survey of affected families and handed them coupons for collecting the ration items at a pre-stated distribution point and time. Most of the families sent an adult member or two to hike to the collection point to bring back the ration.

The trucks reached the point of distribution in the morning while we (NGO rep, my friend and I) headed off to the area separately. At the pre-determined time of distribution, the NGO rep first gave a run down of the distribution strategy to those who had gathered. Only those who were in the list were to receive it, so others need not wait. And being orderly was a requirement since everyone on the list would receive the rations, and it may take some time but at least no one would be hurt in the process.

Most of the folks had come after a day or ever 2 days of trek. Swat is unique in the type of flood devastation since it was not devastated by the water coming into the towns as its a mountainous area, but because of massive landslides. The landslides had cut off major towns of the area that were known to be dependent on the lower areas since vegetation and food items were not grown in abundance at high altitudes.
Most of the rivers had carved out 2x areas for themselves. An analogy would be to assume the grand canyon was populated by thousands of people and the road network to be around the cliffs of the Colorado river. And the river suddenly swelling up and eating away all the bridges and most of the road network by carving out double or even triple area for itself leaving people stranded on cliffs and mountains (those who were not washed away) with no food.

As the folks came by one by one on their name being called, they lifted two bags weighing 40 KG on their backs; an immense sense of sympathy struck me on what still remained for them to return back to their families. A trek of a day or two with two bags weighing 40 KG must be back breaking. I do hope all of them reached their loved ones and they were able to have a decent meal to eat for a few weeks (our estimation was the ration would last a family of 5 around a month).

Conclusion: Relief effort is not for the faint of heart, although I believe we should all make an effort to participate with on site presence, since it helps ensure minimization of wastage since food is not dumped in the wrong areas or distributing of wrong items is fixed by enabling quick feedback to the stakeholders.
And by using on ground NGO's or other individuals well versed with the locals, who have done their homework in terms of identification of needy families and individuals, the distribution can be extremely gratifying knowing its going to the needy who may not be strong enough to stand random food throws from the sky or fast moving trucks. The planned effort also ensures:

a. Fairness - Relief goods that get thrown from trucks or helicopters in crowds typically lead to the toughest men receiving it. It truly is the law of the jungle since every man and women are up for themselves in trying the snatch whatever they can grab for sustenance. The worst affected individuals suffer since they're typically too weak or hurt to be in the crowd.
b. Civilness - Random distribution leads to reinforcement of unruly behavior during relief distributions. We observed a distribution of water bottles during our trip (claimed by someone to be from Jazz/Mobilink), where two individuals were throwing away bottles and two were using sticks to fend off the crowd from climbing into the truck. Once they left, it could be seen that a few folks had a few packs of bottles while most had nothing. The sad part was that this area had ample clean water since Swat is an area of natural water springs! It was food that was scarce.
c. Measurable benefit - All individuals who collected the relief items were checked against their national ID card number to be residents of the affected area in addition to having the coupon and listed in the survey list. The ID card numbers were then to be submitted to the local administration to ensure they know which families have received rations to facilitate other ongoing reliefs. Of course, I think its obvious the lists would not be used by local administration since they're not known for their competence, however that shouldnt be a reason for not following through on this practice.

Miscellaneous: A number of helicopters could be seen flying, both Pakistan and US army. It was heartening to see US army active in the humanitarian relief effort since the only way to get food to the worst affected areas is to ask the folks to do the 1-2 day trek (like we did), or use helicopters.