Sky on Fire

skyonfireThe sky was on fire today evening. Taken on my way back from work. It was around 6:30PM. Location: Marathahalli bridge. Camera: Nokia 7210 mobile camera (2MP). No post processing done except for the border.

Update: When I typed “No post processing in the previous paragraph”, my mind wandered, and I wondered – “What if …”. I did only one post processing step. “Auto-level” in Was I surprised with the result ? Wow. See for yourself.

skyonfire_autolevelIt does look very professional doesnt it ? Especially the greys on the clouds.

Be a better engineering manager

For the sake of this article, I refer to an engineering manager as an R&D manager in the hi-tech software engineering industry. But I am sure, these are applicable to engineering managers everywhere. My experiences has been with respect to the highly challenging EDA industry, and so, the information below may potentially be biased towards this industry.

An engineering manager will need to have a few qualities and need to do some things which are absolutely essential to manage a productive high energy team.

  1. Lead technically: This leads the pack. The leadership has to be technical. An ideal engineering manager is one, who has grown up the ranks from software engineer, to tech lead, and now to engineering manager. He should know the specialization technically. When his developer explains a complex idea and is reasoning out why it would take a month for him to develop — the least he should be capable of, is to understand the idea, and realize its complexity.
  2. Be able to code: When there is crunch time, the manager should roll up his sleeves, and get to brasstacks. He should be able to fire his gvim/emacs/editor-of-choice, and be able to debug.
  3. Review code: He should be able to review code, atleast at a high level. There is no way, an engineering manager can ‘own’ his team, is, if he is atleast partially accountable to the teams deliverables. I am not saying, he should review line by line. He should be able to skim the bug-fix, or a feature algorithm, and be able to determine, if it is deviating or conforming with any pre-determined spec/discussion. Speaking of code reviews, there are two good side-effects. Firstly, the manager knows exactly what each of his team is working on, and can guage the productivity of the team, at any given point in time, first hand. Secondly, he is continually sharpening his saw (in Covey language). He keeps in touch with programming, and with the algorithms in his niche.
  4. Be an excellent communicator: He needs to be able to talk two languages. He should be as conversant to the developer/engineer, as he should be with management. This is crucial. Developers should build their trust in their manager. The manager is the conduit of communication between the engineer and management. The manager should also be able to distill the communication going downwards, and pass only information that is useful the developer downwards. Engineers almost always feel there is too much of management communication that flows down. A good manager distills this information and feeds only relevant information to the engineer.
  5. Be a good listener: As I said earlier, the developer builds trust in the manager. He expresses his anger, sorrow, angst, happiness – everything to his manager. A good manager listens and empathizes. There is reinforcement of trust here. A good manager listens carefully and remembers. Have you ever seen the pleasantly surprised look on an engineers face, when you ask him/her, how his/her mother is doing, after her surgery. How do you know ? He was ranting a couple of weeks ago, about how hospitals in Bangalore suck. You rememebered. You asked. There is nothing more rewarding than seeing that pleasant surprise on his/her face.
  6. Be good in planning: You should be able translate developer deadlines to project level estimates and vice versa.
  7. Be a good negiotiator: You will have plenty of situations when you have to bargain with your developers and quite a few situations when you would have to bargain with the management as well. Most likely, the latter.
  8. Be a good influencer: This is a big one. It is related to the previous point, but a little more subtler. When you win your negotiation, you win one, lose another. But, with being influential, you win both ways. You convince. You make sure, the other side takes a decision – the decision you want them to take.
  9. Have good meeting organizing skills: Two skills are needed for this. Have meetings only when required. Start the meeting on time, and finish it on time.
  10. Be flexible: You would need to be flexible. You cannot expect a developer to turn up for a meeting at 10AM (very early morning !). You should be ok to shuffle around meetings so that it is convenient to most people. Be flexible in cancelling meetings, if one is not needed at that time.
  11. Work with the team: Last but not the least – work with your team. Do not sit in your room and let the team do their work. Work with them. Debug with them. Discuss with them. Plan with them. This is not just good for the team. It is good for you as well. You are abreast of what the team is doing technically. It will help you plan your schedules more accurately. And you are continously sharpening your saw – broadening your knowledge.

These are some of the techniques, that could make you the star engineering manager. These are but the tip of the iceberg. The main thing is, you stand for the team. You are their conduit to management. And you are the face of the team to management.

Note1: The above list is in no particular order of importance.

Note2: The usual disclaimer: The opinions expressed in this article are solely mine, and are not of my employer, in any way.

Tutorial: Add drop shadow to your pictures

As I had promised some time back in my ‘adding borders’ tutorial, I am now giving step by step instructions to add a drop shadow to your pictures.

The original picture – I name this picture milk train. This was shot in Dadri, a small station just outside of Noida, on the Delhi-Aligarh line. This is total milk country (Uttar pradesh). This is the first train, that is heading towards Delhi. Notice the number of aluminium milk containers slung on the side of the train.


Step 1: Add a nice black border to the picture. We know how to do that. If not, go here. (quick recap – set bgcolor and fgcolor to black. Then image->canvas size ; change by % and set to 98 ; and then do the same thing with 102.


Step 2: Change bgcolor back to white. Image canvas size ; change by percentage ; 110%.


Step 3: Now choose the magicwand tool (see above picture. I have chosen it). Click on the newly added white area. It will not become chosen. Click the del key. You should not have that area transparent.


Step 4: Add a new layer. Layers -> New Layer. I hope you have the layers window showing up. Else go to windows and choose layers window. You should see something like this.


Step 5: Click on the background layer in the above window. Select All (ctrl -a). Copy (ctrl -c).

Step 6: Click on the new layer in the layers window. Paste (ctrl-v).

Step 7: Now you should see the picture in both layers in the layers window.


Step 8: Now make the new layer invisible – by deselecting that layer in the layer viewer. Now you are seeing only the background.

Step 9: Make the image black and white. (adjustments -> black and white)

Step 10: Then Effects->Blur->Gaussian Blur and set the radius to 10.


Step 11: Now select both layers. And click on the new layer, so it is active.  Select All (ctrl-a). Choose the move pixel tool.


Step 12: Now, click on the image and move it slightly to the left and top. You will see the image move, but the blurred image (background) stays, You will see a nice blurred shadow stay, while your image moves. Move it to the extent you like.


Step 13: Now click on merge layers.


Step 14: And voila you have your image with a very nice drop shadow. For best effects ofcourse, use on a white background.


Michael ‘Jacko’ Jackson dead


Despite all the bad publicity he got, the failed plastic surgery, the child molestation case (of which he was acquitted from), and the adoption of a child, and allegedly not taking care of it properly, and the wierdness of it all —- his music was still iconic. His albums ‘thriller’ and ‘bad’ filled my school days. It is sad.


Just call my name – and Ill be there. – Very  heart-breaking. Apparently a commerical. via BoingBoing. via AnilDash


The original “I’ll be there” song – Jackson 5 – 1972 show.

Misty Blues


Misty blues. The first one is the Nilgiri Mountains (Masinagudi) – true to its name –  shot early in the morning. The second one is from the Pamban bridge and the mighty Bay of Bengal, on the way to Rameswaram, shot in the late evening. Beautifully soft hues.

Photos are copyrighted to me. Permission is granted to use them on the condition that due acknowledgement is made.

Old US Train Stations gone …

Pic courtesy:

As many of you have probably figured out by now, I have a thing for trains. And if I have a thing for trains, obviously it extends to train stations. Given that, it was heart-wrenching to read this post in the Infrasturist, about how beautiful old railway stations have been razed to the ground, and ugly commercial structures have been built on them. Shame on those who did it. I am not blaming the US for this. There are so many beautiful old colonial style buildings in Chennai (on the Mount Road), which are giving away to ugly shiny glass framed ‘modern’ buildings. Shame on these guys too.

Read the full article here. (11 such beautiful structures gone …)

What not to do in an interview …

After having conducted numerous interviews in my previous organization and conducting few in my current role, I have seen a fair share (I think!) of things that one should never do, when attending an interview. All that I am going to say here, is over and above, your technical preparation for the interview. That is a given, and is taken as a done exercise.

Once you are fully prepared technically, here are some tips, that can get you through the face-to-face interview day.  Quite a few technically sound people have faltered the last mile, because of these reasons. And trust me, companies, unless they are desperate, do not hire someone who is socially challenged, even if they are the best in class with respect to knowledge. Organizations run as a group of like-minded professionals. If you are neither like-minded, nor professional, there is a good chance, you may get bumped off.

So here goes, my little list of things that you should not do in an interview:

  1. Never be late for an interview. No. Never. Unless you have a really genuine reason, in which case, you should have called me and let me know the emergency. Dont smile, shrug, and say – “You know Bangalore traffic.” Yes, I know Bangalore traffic, and that is why I started from home an hour early, because I had to take this interview. And I expected you to have done so too. If due to a genuine reason, you were late, and you had called in to let me know you are late, do apologize when you meet me. Gives me a good impression and makes me believe you are genuine.
  2. Never come dressed in a jeans and t-shirt. Sometimes (rarely), a well pressed denim is ok, as long as you have a well pressed dress shirt on. It shows to me, that you are a do-er. But a t-shirt, um, no. It does not quite cut it. Remember the ‘professional’ part I mentioned earlier. This goes against that. Once you are hired, ask around for the dress code, and if it is ok (and in most software companies, it is OK), dress the way you want. Wear your metalica or Hell-freezes-Over tshirt. Not for your interview, na uh.
  3. Do not talk so much that you do not let the interviewer talk. This happens a lot. The candidate has either prepared so hard, that he wants to impress me, by talking way more than me ; or he does not know much, that he talks a lot about all that he knows, so that I do not ask questions he does not know. This does not give a good impression. Answer questions to the point. Listen to the interviewer. It is very important. If you go overboard, with the above former reason, you may be thought of as textbookish.
  4. Do not appear/behave over-confident. Humility goes a long way in projecting attitude. I do not say, appear meek and timid. Neither should you appear dumb. Behave confident of what you know. Give respect to the interviewer. Do not talk as though, it is my company’s duty and life-purpose to give you a job. And as though, we would lose our life-savings, if we do not hire you. (Trust me, I have seen a couple of these cases as well.)
  5. Do not shower admiration and adulation for my company. Yes I know, it is a good company, and that is why I still work here. If you really want to work here, and are keen about it. Let me know towards the end of the interview, in maybe a sentence or two, that you would love to work here. There, thats it. Just that. And I get that point. You are not writing a letter to the government – “I would respectfully like to inform you and your superior officers, that I wish to give my utmost best to this esteemed organization“. Nope. None of that.
  6. Do not assume the interviewer knows all. He is human as well. If he is a manager, maybe his breadth of knowledge is wide ; but still he is not someone who will know all. When you are describing your previous job function, do not assume that I know all about that company and their products, and their source code. I was not your manager there. Do not start your sentences with “As you know …”, or, “As you are well aware that …”. As for clarifications, if you need to explain more in detail. I am sure, if I dont understand, I will ask for more details.
  7. Proprietary knowledge. If I ask a question related to your previous work, and your answer requires that you reveal something which is proprietary knowledge, politely refuse to go into detail, because it is proprietary intellectual property. That will impress me for sure. It shows your integrity. If you are describing every data structure and algorithm in detail, I begin to doubt, whether, you would be doing the same about my algorithms, the next you interview elsewhere.
  8. Never lie about your current salary. My HR knows your HR, and probably participate in some common Hewitt salary-level-setting exercises etc, and we all know each other well, thank you. And I will get to know your exact salary, if I needed to find out.
  9. Try, Try, Try … If you are asked a question, that you do not know fully, but you would like to try. Tell me, that you do not know the answer to the question, but you would like to try. And if you still do not get it, eventually (after a lot of trying), politely ask me for the answer. I will give you some marks for trying. If you give up early, you lose points. If you fake trying (you already know the answer), you lose points – yes, I can find that out too. I have a favourite puzzle, which many know the answer for, and fake trying and working out the problem. I can easily spot the fakers. I have had a few, who have told me, that they know the answer to the puzzle. Hey, that saved some time for me, trying to spot a faker. You get some points this way. Atleast you are honest.
  10. Never fluff your work-experience. If there is something in your resume, which you did not do hands-on, but oversaw/supervised. Say so. There is nothing wrong in that. Your previous employer paid you money for that. Explain your contribution to each project in detail, and honestly. Do not fluff by claiming to have done things, that your team did.
  11. etc etc etc … No I am not saying that. I am saying, please dont use words like “etc etc”, and “so on”, “something like that”, “stuff”. These are things which tell me that you do not know fully, what you are talking about.
  12. Speak slowly and clearly. Finish every sentence fully. It shows your confidence. If you do not finish your sentences, it shows your impatience.
  13. 🙁 Lastly, but probably most important, do not be sullent, or morose, or tense. Be cheerful and pleasant. I should get a feeling that, having you in my team, would bring in energy to the team. My team should be happy that, I brought you in.

This is a small list of 13 (gasp, unlucky?) things, that came to my mind, when I sat down writing this list. By no means, is this list, the most complete – “How to win over your interviewer” guide. But these should defenitely get your browny points. I would again emphasize that, if it is a technical company that you are applying to, the underlying assumption is, that you know your technical competencies right. The above list is over and above that. This has been mostly written in a tech company perspective.

Hope this list helps some good technical person land his perfect dream job. Good luck.

The opinions expressed in this article are solely mine, and are not of my employer, in any way.

Wearable sixth sense device

You have to watch this TED video of a wearable sixth sense device. It consists of a portable projector, which projects on natural surfaces, and a webcam, both slung on your neck. These are pretty small, and do not seem to be very clunky. (They are off the shelf components). The demo shows some cool things like (a) the webcam identifying a plane ticket, and then projecting on the ticket, if the flight is delayed or if the gate has changed ; (b) the wearer making gestures to take photographs, and the cam taking photographs ; and then later on, the user projects these on the wall, and does cool things like resizing, organizing etc.


Embed vimeo and youtube on

A very quick how-to on how to embed vimeo videos and youtube videos on – mainly for my own sakes and sanity. I keep doing this, and, each time, I forget how to do it, and I go google !. So here goes. It is a two step process for each though, but my grey cells have become greyer. What to do !

1. Make sure you are on visual mode

step1_1For youtube:

2a. Grab the URL from the youtube page (example:

2b. Just type youtube= within [ ]


For vimeo

2a. Grab the URL from vimeo (example:

2b. Just type vimeo within [ ]


3. You are done. When you publish, you will see the youtube video embedded in your post. Add text before and after the video for garnishing.