We have SIP working on android!

10 03 2008

 Update: April 2 2008: Source code of stack released here 

1.jpg

Update: Mar 17 2008

See here for a screencast :-)

Update: Mar 12 2008

Some other sites linking here seem to be reporting this news with their own verbiage. Lets be specific on what we are doing:

  • We have taken the GPL’d mjsip SIP stack and our objective is to make it work on android (this is mostly a porting activity). We are not writing our own stack.
  • We are not doing any optimizations, etc. The scope is exactly what I wrote – make mjsip work on android, so developers can use the mjsip APIs to build apps in android.
  • It is a very straighforward ‘take from community (GPL/mjsip), give back to community (post ported code back to GPL/mjsip)’ activity.
  • We are targetting to release the port in a week or so… (as-is – as I mentioned the objective is straighforward -a port of mjsip – if it has bugs when you do funky stuff , fix it yourself when we release it :-) )

We (my company) had started an internal project to get SIP working on Android and some smart folks belted out some nifty code to get SIP working on android. We hope to release the ported SIP stack on android pretty soon. We used the GPL’d mjSIP stack and will be releasing the modifications as per GPL, obviously – so other developers have a good SIP API to build apps. This should happen pretty soon. Some time ago, we did a rss-to-presence implementation stub (concept here) over Google Mashup editor. I look forward to seeing the “google-phone” talk SIP to the “google-server” and other cool stuff.

Stay tuned!



Preparing for your first customer meeting

27 11 2006

The first meeting with a customer often carries a long way in your being able to build a strong relationship. Here are some things I would do, in preparation for the first meeting with a customer:

  • Research the customer – If the customer has a website, read their product/service offerings. When you visit the customer, instead of saying “Tell us what you do” – rephrase it as, “Based on what I researched, your company is involved in X,Y and Z. I would be keen to hear your perspective on where the company is headed”. You would be surprised how many sales people I know who walk into a customer meeting with absolutely no idea what they do.
  • Treat Research as ‘input’ not ‘output’ – As an extension to the above, do not conclude on what a customer does, simply by research. It is important to ask the customer about their perspective, since it is often more detailed (and sometimes, rather different) than a web report. Doing research is showing respect to the customer – that you want to know their business. But don’t use it to put words in your customer’s mouth.
  • Research their competition- I remember walking into a meeting with a large service provider in Canada. The first question they shot across was “Before we engage with you, we want to know if you understand our space. Tell us, who you think our competition is”. Fortunately, we were well prepared for that question. Had we not been, we would have lost respect that very moment
  • If your customer is a public company, read their 10K reports – if you don’t have time for the entire report, read the summary, at the least. It gives you valuable information about their pain points, their competition and more
  • Keep an account map ready to fill in – One of the most important things in first level meetings is to assess who’s who across the table. You will have the ‘paper pushers’ – those who talk a lot, but have little standing in the decision process, the ‘gatekeepers’ – who by the designated folks to keep vendors at arm’s length so that the real decision makers are not harassed, the ‘trusted lieutenants’ who affect the decision process and ‘the decision makers’. In large organizations, it is critical for you to know who you are speaking with and how the organization is charted out. This will ensure you spend the right amount of energies opening the right channel
  • Keep a list of key questions to ask – Many people think asking customers about anything is a bad thing. Not so. If you need to know an organization chart, ask away. If you need to know some product details, ask away. At best your customer will avoid a direct response, but more often than not, it works.
  • Make sure you have updated business cards – avoid scratching out titles/details before handing over your card. I’ve seen people scratching out titles that say “Director” to “Sr. Director” and then pass on to the customer. Really, does it matter to the customer or are you stroking your ego ?
  • If possible, create a targetted presentation – research the customer space and modify your generic presentation to have information that you think the customer is interested in. If you are not sure about some solutions, create a 1 pager with a summary of such solutions – if the customer shows interest, get into it, otherwise, move on
  • Put your best foot forward – I cannot re-iterate how important it is to completely impress the customer at the first meeting. If you think there is someone in your team who can help with this, make sure s/he comes along. This is also why I believe that the best people in a company need to have a field responsibility. You will not believe how many times I have heard “Oh, yes, Joe is a great technical guy, but he should be involved only when the customer relationship blooms more” – while I understand that the best guys cannot be available for every first level meeting, for the important ones, make sure they are. You never know how a meeting turns, and having him there is better than saying “Oh yes, we have all the expertise, but let me get back to you on that”
  • Keep a list of the ‘pain points’ – any customer has things in his own product that he is proud about. At the same time, any customer has pain points that need to be addressed. As you talk to the customer, keep filling these in. You need to address how you will solve his pain-points.
  • Make sure you are 10 mins ahead of time but not 1 hour ! – Make sure you are there 10-15 mins ahead of time. But not a full hour ahead! If you are an hour ahead, unless you have an existing relationship, don’t call the customer or press him to start soon. If you do, more likely that the customer will need to re-arrange his current commitments or just curtly ask you to wait it out. In any case, an hour ahead is better than a minute late. I’ve seen senior executives turn cold during the meeting because they waited 5 mins in the conference room and you were not there.
  • Ask for business - many people I know shy away from asking for business. You are not there for a personal beer party. You are there for business. And always remember that a customer will give you business only if it solves a problem for them. So it is a two way street. Never shy from asking for business.
  • Make sure you create a minutes of meeting (MoM) with a clear action plan for followup. Also make sure that this MoM is distributed to the customer for validation with clear indication on what was discussed, what is the action result, who is the owner for an action and a due date by which it will be addressed.



An engineer turned star salesman

23 08 2006

Whoever said sales is done better by folks who wear versace suits ?
It’s all about passion. If you believe in it, you make others believe in it. If you try to hard-sell, you put off most people.

Enjoy this bit of passionate humor. Click on Play below (around 6 mins.)

 



Employee loaded costs

4 07 2006



One of the things that always amazes me is how ill-informed employees are of their ‘total cost to the company’, often referred to as ‘loaded costs’. Simply put, the pre-tax salary that is in your offer letter is only a part of what your employer pays for you. I find it pretty silly that an employee leaves one company for a 5% pay hike in his base salary without calcuating what other ‘hidden’ costs may not be paid by the new employer. To give you an idea, here is a sample break down of what constitues your ‘loaded cost’ to your employer, assuming your salary is $100,000 (easy number for computations). There are some approximations made, but for the most part, this will give you a good idea of the costs involved.

This also gives employers an idea of how much they are really spending per employee. Many senior employees who are involved in budgeting and planning are often clueless about their real costs and take only ‘paper salary’ as their total cost, which is way off the mark.

Assumptions:

  • # of employees = 40
  • 2 VPs, 4 Directors, 3 sales (typically this is more, but let us take this model to compute S&G costs)

Employee loaded costs:

  • Base – $100,000
  • Timeoff/leave – $5,555.56 (assuming 15 days PTO)
  • Company Mandatory contribution to benefits: $4,000
  • trainings costs per employee per yr: $4,000
  • HR Costs (including recruitment): $1,500
  • Employer taxes on behalf of employee: $6,813 (FUTA, FICA, Medicare etc.)
  • Office space and general expenses (rent apportioned, stationery, phone, employee travel ,etc.) – $13,020
  • Company Benefits contribution – $28,000 (insurance taxes, medicare, health premiums)
  • Payroll related expenses – $10,000
  • S&G per employee – $42,237.50 (cost of sales)

Summing all of the above, loaded cost = $215,126 (approx) for an employee who’s pre-taxable income is $100,000.



UN-Geekification (or the transition from hands-on to hands-off)

24 04 2006


A good friend of mine made this hilarous statement: (he was referring to his corporate climb, where he recently (8 months ago) progressed from being a key architect to a ‘upper strata persona’.

….I mean, I am wearing blue shirts and black pants to work for the past !@#$ing 8 months and all that people talk to me about is c++ !!

I guess it is time to get Un-geekified !

When is your un-geekification process complete ?

  • When you can spend an entire day at office doing nothing but hitting ‘refresh’ in your inbox every 5 minutes
  • When you can successfully attend every meeting and summarize your key action as “As I understand it, I will ensure that my people will talk to your people”
  • When instead of saying “No, my product does not do this feature”, your natural reaction leads you to say “Based on my current understanding, which I will run by my core team, I believe this feature is part of an enhacement package for which we can positively work with you for a mutually exciting roadmap as part of our professional services initiative, assuming that this feature introduction is benefitial to both parties in a win-win environment”
  • When, in response to a direct question from an engineer “What do you exactly do?”, the only answer you have is a deep sigh and a shake of the head saying “Too much…. Young urchin ! too much ! I hope you are never in my shoes….” As you race off somewhere else.
  • When, if someone asks you a remotely technical question, your eyes glaze right through him, like he never existed.
  • And finally, when you call your ‘IT’ department, complaining that your mouse and keyboard no longer work, and the support rep. comes in and plugs them back into the usb ports, because a while ago, you yanked it out with your pot-belly as you tried to get out of your chair.

    Welcome to the world of Un-geeks.



Striving to be the best

20 04 2006

One of our blog readers asked an interesting question the other day:

“How to be the best” in what you do ?

I guess a cliched answer would be “there is no silver bullet as an answer”. But really, this question interested me, because in work life, so many people approach us saying “they are so busy to do anything else” and that their work life is killing their personal life.

These are what I consider to be the basic tenets of “striving to be the best”. Just like the United Airlines ad. puts it “Where you go in life is upto you. There is one airline that can take you there”, these thoughts can help take you to your goals:

  • Listen – The more you listen, the more you’d learn how little you know. In my field of technology, there are so many smart people doing great things that you are always learning (and I bet that is true for any field). Talk to people, ask for their opinions, let them feel good that they are being asked for advice. They may say twenty things out of which you may not have known one
  • Talk – Any person who has taught before knows this well. If you really want to make sure you understand something, try explaining it to someone else. Put yourself on the block, describe the concept, the thought and open yourself for cross examination.
  • Share – The best way to continuously improve is to share your knowledge, and ask others to share in return. Whatever be the forum – blogs, meetings, informal get-togethers and similar. Sometimes, it amazes me how little people want to share vs. how much they want to talk about what they know.
  • Read – You have to keep reading – read journals, articles, magazines and whatever else you can find related to your line of work. And read a little beyond your line of work too (I can this a lateral activity – you will be amazed how often you can link two domains into a brand new concept)
  • Eat Humble Pie – I have repeated this several times before in previous articles. If there is one thing that is the worst enemy in your quest for being the best, it is your ego. If someone tells you that you are wrong, listen to it with an open mind and analyze the response before you decide to respond.
  • Dive in and look up – As you dive into details and get to understand the guts of what you really need to know, don’t forget to breathe and look up at the bigger picture. Here is something I always do – every once in a while, I draw and end-end network diagram of how what I am reading about could be used end-end. You must keep the overall objective in mind as you dive in and keep asking yourself “How does this work” and “How is is applied ?” and “at the end of the day, who does this benefit?”
  • Passion – The most important tenet. You’ve got to love what you do. If you think what you are doing is a chore, you are already second-best.

Let me open the floor to the readers – what do you think are the basic steps in being the best ?



The importance of Process

28 03 2006


A good process is really like a well designed resilient network. No one really appreciates it when everything is working as it should. But when something does not work and suddenly ‘well designed individual elements’ fail miserably as a complete network while interacting with each other, all hell breaks loose.

I noticed an interesting email the other day where a poster mentioned that he was running a ‘Session Border Controller’ (those ugly things that act as security gateways in a network). Obviously the maker of the SBC convinced the user that at most, he should not see more than 100 transactions per second in the network, even if the network had a total of 10,000 phones. And the vendor was correct, under normal conditions. Unfortunately, for the user, his network had a power failure and his backup power failed too – and all of a sudden, all the 10,000 phones rebooted and tried to contact the SBC at the same time to ‘re-register’. *BOOOM* the SBC crashed. Will the user ever go back to an SBC from a vendor who did not guard for exceptions (even if it is 20% cheaper) ? Once bitten, twice shy.

A well defined process is very similar to the experience above. As long as an ‘activity’ is going well, every body complains why they should spend 10% extra time with check points and defect logging. Till the time something goes wrong, you just don’t see the value of a good process. A live example: I bought a home where I chose not to go with the mortage department of my builder. The market was offering far better interest rates than the incumbent builder mortgate department. I went with a well known mortgage lender and they selected a settlement agent in turn. Individually, the bank, the settlement agency and the builders were all superb people. It was a pleasure interacting with them. However, a day before settling I just thought of chatting up with my settlement lawyers, and to my distress, realized:

  • The exact loan amount was not communicated between my builder, my bank and my settlement company
  • ­My builder thought I was settling at their office and my settlement agent thought I was settling in theirs.
  • My understanding of what ‘Good Faith Estimate’ meant was different from what the settlement agent called ‘Good Faith Estimate’ (here in the US one needs to get a banker’s cheque for the ‘GFE’ – so the exact amount is important)

I spent a good part of that day double checking with each one and ensuring that the information flow was correct and complete and things got in place so that I could get the keys the next day. The good news is that as I mentioned, the individual components (builder, bank, settlement agents) were all wonderful and they fixed it, but one wonders,

if everyone was so fantastic, how did everything almost crash and burn ?

The answer: Lack of process.

Points to Ponder:

  • Efficient people does not mean efficient communication : a process ensures that the output is on time and per quality expectations
  • The fact that it works once does not mean it will work again: a process ensures repeatability and predictability
  • Humans need ‘checkpoints’ and ‘cross checks’ – we often take things for granted or obvious. Think back, when you leave for a long vacation, even if you are sure you switched off your gas and turned off your heater, you still go back and double check before you lock the house don’t you ? When you travel internationally, you check that you have your passport and tickets more than once, don’t you ? : A process does exactly that – it is an external source of verification, repeat-verification and cross-verification that what you say you really have, you really have !
  • Saying the same thing does not imply meaning the same thing. Remember my example of ‘Good Faith Estimate’ above ? A process takes care of meaning the same thing.



What is Job Satisfaction ?

8 03 2006

There is a saying that goes like this ‘Knowledge is a function of your intelligence, while Wisdom is a function of your experience, which itself is a function of time’

As we all grow older, our priorities morph, we get a bigger picture of what matters in life and we also get to reflect on our past. As we continue with the cycle of time, we also realize that the only way to understand these changes in priority is to experience it ourselves. After all, it is most likely that a few years ago, we ourselves would have shunned something a as ‘Whoa ! We will never give this more importance’ till we actually face it.

There comes a time in life, when you stop thinking that you are the most intelligent being on the planet and learn to respect the thoughts and experiences shared by others.

So, back to the topic of this post. What really is job satisfaction ? I guess it really is a factor of the stage in life that you are in.

(click on thumbnail for a larger version)

1-2yrs: You start as a fresh young engineer, wanting to make big money. Your loyalty belongs to any company that offers a 20% hike over what you are payed today.

2-4yrs: With a couple of years experience under your belt, you realize that respect at your job strokes your ego well. You will, ofcourse, still leave if it’s a 30% salary hike.

5-9yrs:You have matured a bit. You likely get married, start a family. Your wife demands more attention, you demand more respect and would prefer to be in a company that values your time and respects you.

10-15yrs: the deadly period of middle management. You have a pot belly to show for these years. You are torn between family, money and respect. You want it all, and don’t want to wait. You wonder if you will ever get out of this rut. Infact, you really don’t know how you landed yourself here in the first place.

15-20yrs:When you start getting bald, it is time to get into the big league. All of a sudden, money becomes more important (because you are in senior or exec management role and are fighting for a fraction of a percentage of ownership of millions of stock options). Ofcourse, money becomes important also for family reasons – maybe you need to replenish your child’s college fund. Interestingly, around that time, family commitments are better manageable, because you now have a new fire in your belly – make the company more successful and become very rich with your options. Your family is not ‘new’ anymore, so they settle down.

20+ yrs: You now have a look of a wise man. You have been there, done that. You have made your money, made a difference and now need to play with your grandchildren and give back all the time to your wife and child that you dedicated to your work in the previous phase.

So really, job satisfaction is completely a function of your stage in life.



Outsourcing With Obligation

1 03 2006

Most of us in the Software field would have read ‘The World is Flat’ by Thomas Friedman. If you have not already, do pick up a copy.

While re-reading it today, a paragraph by David Schelesinger, an employee of Reuters rang a bell in me (again). I thought his thoughts were especially succint in prompting people to stop asking “What will I tell my kids” and instead ask “What can I do to keep in the value chain“. The entire justification for outsourcing is often very personal and subjective, but I found this paragraph to focus on the real issue on ‘Where is your value in the value chain’.

This paragraph is straight out of the book, due credit goes to David Schelesinger, Reuters and my source for this information, Thomas Friedman of ‘The World is Flat’ for reproducing it.

Please click on the image to see the full text.



Effective Presentations

22 02 2006


Sorry for the lack of posting the past few weeks – I was/am busy designing an IMS network for an agressive carrier (yeesh !)

Some tips I wrote up a long time ago for making effective presentations.

  • Always have an Agenda slide – and at the beginning ask if the customer would like to change the flow
  • Before you start, ask the customer for a time-check so you can best fit your presentation according to the time slot
  • Americans in general are very open conversationalists – an (appropriate) joke here and there or a side conversation to make a presentation more interesting is taken well
  • Avoid ‘speaking loud’ – many people tend to switch on their internal boom-boxes when presenting. It really sounds like those looney Americal Idol participants who think screaming while singing shows tone control.
  • Always keep your presentation interactive – if you see no one asking you questions, more likely than not, you are boring those who are listening
  • Try and keep your presentation short at the first level (5-7 pages for corporate, 10-15 for technical). Remember that customers always look at your page count to see how much is left, especially if it’s a boring presentation. It is very hard to retain interest after 20 pages. At the end of the shorter presentation, ask the customer if they want to deep dive and then take them through more details.
  • Always try to assess who is interested in which part of your presentation. Be flexible in modifying your flow. Being flexible in presentation flow is probably one of the most important aspects of an effective presentation. What works with one customer may backfire with another and you must switch gears to save the day
  • Know when to shut up – if you are presenting to a customer in a group, with more than one person presenting, do your job and then don’t interrupt the other person with your own perspective. This lack of judgement is often shown by senior people when more junior people in their organization are presenting – they butt in with ‘let me put what he said in perspective’ – a bit of perspective helps, but instead of acting ‘one up’ in front of the customer, rehearse the presentation before with your colleagues

    ­