contact us

Use the form on the right to contact us.

You can edit the text in this area, and change where the contact form on the right submits to, by entering edit mode using the modes on the bottom right.


123 Street Avenue, City Town, 99999

(123) 555-6789


You can set your address, phone number, email and site description in the settings tab.
Link to read me page with more information.


Australian student visa from Qatar

Shahriar Haque

When I was in the process of applying for an Australian student visa for my master's program, I was surprised at the absence of a comprehensive checklist of required documents. I had to piece together information collected from various emails, websites and blogs. Luckily, due to my pedantic nature of checking and re-checking every requirement I was able to breeze through the application process without any delays. I received my grant notification exactly 27 days after lodging my online application.

Here's how you can also make sure your application goes through smoothly.

Before you apply

Do not apply for the visa until you have done the following.

  1. Received a Certificate of Enrollment from your university.

  2. Received your Overseas Students Health Cover for all the applicants.

  3. Arranged your finances to meet the visa conditions.

Remember that a Certificate of Enrollment (CoE) is different from an offer of admission. You will typically receive your CoE once the university has received payment for your first semester, Overseas Health Cover and any other required fees.

As for the finances, here's what you will need

  1. Air Tickets (AUD 2000 per person) for you and your accompanying family members.

  2. 12 months of course fees.

  3. 12 months of living costs for you and your accompanying family members.

  4. School fees for school-age children who accompany you.

Make sure you check the home affairs website to get the latest living cost estimates.

Translating Documents

Once you have your finances figures out, you should start preparing your documents for certification. If you have any documents which are not in English, you need to have them translated into English. Although not strictly required, it is highly recommended that you have your documents translated by a someone accredited by the National Accreditation Authority for Translators and Interpreters (NAATI). You can find a list of these accredited translators on the NAATI website. Once you find a translator that specializes in the language of your original documents, you can get in touch with them by email. I had my Arabic marriage certificate translated into English by a lady based in Jordan. It cost me $50 for the translation and I got a NAATI stamped scan of the translation from her within a week.

Certifying Documents

Before you can upload your documents to your online application, you will need to have them certified from the Australian Consulate in Qatar. Make sure you book an appointment with them first as they do not accept walk-in visits. As of 2018, the Australian embassy is located inside the Tornado Tower in West Bay. The embassy charges a Certification Fee of 185 Qatari Riyals per page  and only accepts payments through debit/credit cards. Based on the number of documents that needs certification, don't be surprised if the the total bill reaches 1000+ Riyals.

Australian Embassy - Tornado Tower

Australian Embassy - Tornado Tower

Documents Checklist

Certification Required

  • Passport

  • Qatar Residence Permit

  • Birth Certificate

  • Marriage Certificate (Original)

  • University Degree

  • University Transcript

  • Police Clearance Certificate

Certification Not Required

  • University Certificate of Enrollment

  • Genuine Temporary Entrant Statement

  • Overseas Student Health Coverage

  • Marriage Certificate (Translated)

  • IELTS Test Report Form

  • 6 month bank statement

  • Bank balance statement

  • University Tuition Payment Receipt

  • Recent Payslip

  • Recent Work Contract

  • Up-to-date Resume

Please note that your university degree and transcript do not need to be attested for the certification process. Just bring the originals. Once you have collected and certified all the documents you can begin to lodge your application online through the ImmiAccount portal.

BIO-METRICS Collection

As soon as you submit your application, you will receive an auto-generated email asking you to submit bio-metrics for yourself and all accompanying family members. Bio-metrics is collected by a third-party called VFS Global and their office is located inside Jaidah Square on Airport road. Make sure you book an appointment before going there and remember to print out the PDF file that was attached with the email requesting bio-metrics. Unlike the Australian embassy VFS Global only accepts cash payments. I don’t remember the exact amount, but it is in the range of 250-300 Riyals per person.

VFS Global - Jaidah Square, Airport Road

VFS Global - Jaidah Square, Airport Road

Medical Examination

This next phase of the application nearly escaped my notice. You might not receive any emails about it, but you and all accompanying family members are required to do a medical examination as a part of the visa application. As soon as you submit your bio-metrics, log in to ImmiAccount and click the Health Assessment tab. From there you have to answer a few questions and download an auto-generated Medical Request form for each applicant. Make sure you print out these forms and take them with you go for the medicals. The examination is carried out by Gulf Laboratory and X-Ray. The laboratory is located on Al-Nasr street. Make sure you call them and book an appointment. You need to mention that you want to do a medical examination for Australian Immigration. Depending on the waiting list, you might get an appointment within 7-10 days of calling.

If any of the applicants is suffering from a chronic illness, you might need to submit a medical report from a specialist. If you are treated at a public hospital or health center, it might take weeks to get an appointment. If this is the case, you need to call your doctor for an appointment at least a month before filing your application.

The medical examination consists of a Chest X-Ray and a Urine Test and costs 700 Riyals per person. After these two procedures you will be asked to visit another clinic called Al Jameel Medical Center of Al-Waab Street to conduct a physical examination. This fees for this examination is already included in the amount you paid to Gulf Laboratory. The clinic accepts walk-in visits and are open until 11 PM at night. Once the examinations are over there isn’t anything to do from your side. Your results should be submitted online by the clinic within 5 working days.

Gulf Laboratory - Al Nasr Street

Gulf Laboratory - Al Nasr Street

Al Jameel Medical Center - Al Waab Street

Al Jameel Medical Center - Al Waab Street

Police Clearance

For this last step of the visa application process, you can either wait till you receive an email request or you could do it pro-actively. In order to obtain a police clearance certificate you need to visit the Criminal Evidence and Information Department (CEID) on Salwa Road. They are open from 7 AM till 6 PM. You can download, print and fill out the application forms in advance from the Ministry of Interior website. You will need to bring 2 passport sized photos, a copy of your Qatari ID and a copy of your birth certificate along with the application. When you are submitting your papers, you might be asked to submit fingerprints in the office next-door and come back.


And that’s it. If you have all your papers prepared and submit them on time, you should receive your grant notification within a matter of weeks.

Give me a place to call home

Shahriar Haque

In 2013, after more than 30 years of service in Qatar, my dad finally decided that it was time to go home. In his mind, he had a very clear idea of where home was. It was back in Bangladesh. It was the place where he was born, it was where my grandma, uncles and aunts lived and it was the only place where he had a house he actually owned.

For me it is an entirely different story. Up until my dad's retirement, I happily called Qatar my home. I was born here. My mom and dad were here. Almost everybody I grew up with lived here. Bangladesh is where we used to go on vacation. I liked it as a place to stay for a couple of weeks but I could never imagine myself living there. But make no mistake, Bangladeshi culture is something I am totally immersed in. Bengali is my first language, I like Bangladeshi food, clothes, songs, literature and everything else. In other words, I would happily identify myself as a Bangladeshi, but I am skeptical about calling Bangladesh my home.

If things were that simple, I would just call Qatar my home and that would be the end of this post. But who would've thought that a simple concept of "home" could become so complex. After my parents left I was truly living alone for the first time in my life. At that time I also happened to be traveling a lot for work. I spent months at a time in Italy and used to wonder, why would I ever go back to Qatar? I had no one I loved over there. I began visiting Bangladesh more often. Sometimes even up to four times a year. I got to spend more time with my family. But it still didn't feel like home. I had a vague idea of my surroundings. With the help of Google Maps I could easily move about in the country. But I never felt like I knew the place. I couldn't tell you which obscure street shop sold the best coffee. I didn't have that special place where I could go when I needed time away from the crowd. It was such an unfamiliar place.

After I got married, I got introduced to people whose idea of home and cultural identity was even more complex than mine. At my in-laws I met people who were Bangladeshi by origin, immersed in Indian food, music and culture, and adopted a subset of local Qatari culture. I now had a brother who had spoke fluent Arabic, dreamt of taming falcons, and obsessively perfected his way of wearing the Qatari national attire. I had another brother who spoke in an amusing language soup of Hindi and Bengali. Except for my father and mother in law, all of the children strongly identified Qatar as their home and had no intention of ever living in Bangladesh. On the other hand, getting married gave me back a reason to hang on to Qatar. I now have my wife and a loving family of in-laws.

So far I only thought about home in the context of family, cultural, and geographic familiarity. But as soon as my father-in-law approached his retirement age it became very clear that a home also had to be "permanent". As per local immigration law, you can only stay in Qatar if you are employed. That includes not just my father-in-law. But also my mother-in-law and all 3 of the children. So when my father-in-law finally boards that plane to Bangladesh, my brothers and sisters have to think very hard about where there next "home" will be. From my own experience, I saw this day coming from a distance. I managed to convince my wife that we need to move to Canada where we could live permanently. We were both sure that we did not want to move back to Bangladesh after I retire. Up until the day my father-in-law leaves the country, my wife and I still have ties left to this country. But when our family eventually leaves, we will be left wondering again, where is home? Will Canada become our new home? Perhaps not immediately but I hope it will eventually grow on us. If it doesn't work out, I hope our moving to Canada will make our future children not have their notion of home be in a continuous state of change.

The crippling sense of under-achievement

Shahriar Haque

Let's be honest. When I was applying for college I had never heard of Carnegie Mellon before. I wasn't exactly sure how to pronounce it either. It took me a semester to realize what I got myself into. With barely three months of programming experience I was asked to make a robot smart enough to explore the world on its own while solving a maze at the same time. That was the first time I felt truly previleged to be part of a world-class institution. I became convinced that I was destined to do great things in life. Four years later, I walked out with a Computer Science degree and immediately got a job here in Qatar. But that's when reality started to diverge from expectation.

Some of my friends left for the United States and eventually got hired by tech giants like Google and Microsoft. One of them even went off to start his own company. Nowdays I see him regularly deliver talks in front of large audiences. I too work for a giant American conglomerate. But out here in Qatar, it certainly doesn't feel as impressive as working for Adobe, Tesla, Expedia, or Groupon. I find myself constantly asking the question, why did I settle for easy money? Why did I not push myself harder?

Qatar is a strange place for a Carnegie Mellon graduate. On one hand, my friends who have settled in the US are being challenged intellectually to build the next generation of products and services for the rest of the world. On the other hand, I don't have the courage, capital, or connections to go back to my home country, Bangladesh, and launch a startup of my own. I feel like I am stuck in this weird place with no way to contribute to society either intellectually or financially.

I spend my free time listening to podcasts and watching YouTube videos of my role models who are touching the lives of hundreds of thousands of people on a daily basis. I read about award-winning Bangladeshi Android developers who are delivering more than 50 apps a year to clients located all over the world. I feel proud and sad at the same time. Proud that people from my country are being recognized for their talent and hard-work. Sad that I don't know and I don't have the patience to learn how to write an app even with my fancy CMU degree. I'm also sad I don't have the kind of capital to feel confident to quit my job and invest in a startup in Bangladesh. I feel like I haven't done justice to my education. I feel terrible for settling for a cozy life with time and money to spare.

Do you want to sell t-shirts for the rest of your life?

Shahriar Haque

Steve Jobs once approached the president of Pepsi and asked, “Do you want to sell sugared water for the rest of your life? Or do you want to come with me and change the world?” John Sculley took the position and grew Apple into an 8-billion-dollar company over the course of 10 years. I am no Steve Jobs, but as a patriotic citizen, I would like to ask all Bangladeshis, “Do you want to sell t-shirts for the rest of your life? Or do you want to invest in the future?”

There are enough garment factories in our country. More than enough retail outlets. And definitely far too many real-estate projects. Don’t get me wrong. I am glad that we have these industries to keep our economy running. But 20 years from now, I don’t want the world to learn about Bangladesh only from a sticker on the back of their t-shirt. I understand that this is easy money. But if you don’t take this money and re-invest in technology and infrastructure, selling t-shirts is the only thing we will ever be good at!

It is important to take baby-steps. But in a world that is advancing at an exponential pace, baby-steps are not good enough. I want to see sweeping change, and I want to see it now. I don’t want more engineers and bankers graduating from college to work in telecom or retail. I want engineers to do engineering, I want scientists to do research, I want software developers to build apps. And in each one of these fields I want to see investors.

We all look at Silicon Valley with starry eyes. Facebook, Twitter, Instagram, Dropbox, and dozen other companies each valued at more than a billion dollars. Sure they have great software engineers and architects. But great code didn’t launch any of these companies, investment did. They had wealthy individuals who believed in the vision of the valley being the technology capital of the world. They poured their hard-earned cash into this dream. And the outcome? WhatsApp, a chat client started by 2 former employees of Yahoo with their personal savings, was sold for 19 billion dollars. That is more money than the cost of the Hubble Space Telescope!

Let’s shift our attention back to Bangladesh. Computing is my field of interest. This happens to be one of those fields with an extremely low barrier of entry. But still the progress in this field in our country has been glacially slow. A small fraction of people has taken up freelancing as a way earn money while pursuing their interests.  As a nation of people raised in poverty who are constantly reminded to keep their expectations low this might sound like progress. But to me this is not good enough. I don’t want our developers wasting their lives fixing crappy websites and doing pointless data-entry. I don’t want them exploited because some shady company can’t afford to pay minimum wage in their own country. I want our developers to build great products and services to serve the needs of Bangladesh. I want our own version of Uber every time I want a car-ride outside of Dhaka. I want our own OpenTable to book a table at my favorite restaurant in Dhanmondi. I am getting tired of seeing the same Drama Serials and Political Talk shows on TV. I want to see YouTube channels with Bangla tech reviews of the latest gadgets. I want to hear Bangla tech podcasts taking about the intricate details of Android and iOS. I want our own cloud-computing infrastructure to build models for predicting the trajectories of cyclones.

Blame it on my American degree, blame it on my foreign up-bringing, blame it on whatever you want. But I am deeply unsatisfied with the state of science and technology in Bangladesh. My urge to every single Bangladeshi with some amount of disposable income, please invest in our country. If you have a bright idea, let people hear about it, hire a freelancer or two. If you live abroad, a tiny fraction of your monthly salary can support multiple full-time employees back in Bangladesh. Do something. I don’t us to be a nation of garment workers and slave laborers any more!

A Sinner's Lullaby

Shahriar Haque

How peaceful it must be for the faithful to fall asleep
Grateful for the privileges of the day gone by
Hopeful about what tomorrow has to offer.

How comforting it must feel to find His blessings everywhere
As the rest of us indulge in the delusion
Of perseverance and probabilities.

How does a mind achieve transcendence?
When every experience is woven into the fabric of logic.

Is there solace in being a faithful sinner?
Or shall I feel contempt as an indifferent mass of consciousness?





A decade of self-discovery

Shahriar Haque

As of last Friday, I've been alive for 27 years now. I've entered that phase of life where I've begun to realize that the years are just mercilessly racing by. It feels like just last night I was having the time of my life and then somehow I slipped into a coma and woke up years later. As much as I would like to mourn these lost years,  I can't deny the fact that this decade has been the defining period of my life. 

We start off this decade in high-school, then we move on to college and eventually get a job. Some of us also manage to tie the knot by the end. At every step of the way, our world view is challenged. I look back at myself from 5 years ago, and I can barely recognize the person and his thought process. I'm not sure whether any other decade of life will offer such a unique vantage point for self-reflection. By the time I reach 35 I will have forgotten how it felt like to be a teenager. So, before these memories fade away, I would like to document 2 important lessons I've learned over the years.

The first lesson I learned was empathy. This came quite late in life for me. You think you care about people when you are 18, but all you really care about is yourself. At least, that's how it was for me. I never really bothered to understand the point of view of people outside my age group. It took me a couple of years of working a 9-5 job with forty year olds to realize, maybe my parents weren't crazy after all. While I don't always agree with them, at least now I understand their thought process. I would even go as far as to say under similar circumstances, I, too, would've made some of the same life choices as my parents. Empathy is such a great tool. Once you master it, you begin to see people as a resource rather than a constraint.

The second life lesson is about how to love with your head, not only with our heart. Again, when you are 18, you are basically a chemical cocktail of dopamine and adrenaline. Your heart is driven by infatuations and irrational desires. A casual smile from the opposite sex is enough to trigger hours of obsessive day-dreams. The greater the barrier dividing you and your love interest, the more rush you get out of pursuing that relationship. Fast-forward to my mid-20s and love started to become more of a logical affair. I constantly find myself evaluating personality traits, career interests, family ties etc. Sure this makes it harder to find a partner than blindly following the dopamine trail. But it seems like the "grown-up" thing to do.

I'm sure there are lots of other things that have changed without me even noticing. So far, everything seems to have changed for the better. I guess that itself is a lesson worth remembering going forward.



The Perfect Coffee Shop

Shahriar Haque

Most of us dream of buying a house one day. We have been taught that this is the pinnacle of our individuality; a way to etch our names on to the soil; a way to leave behind a legacy for future generations. I never quite understood this sentiment. I don't even know what it feels like to have an attachment to a place of living. This got me thinking, what real world accomplishment would best capture my personality? What will I want to be remembered by? What will be my gift to the rest of the world? After hours of late night soul-searching I found the answer: The Perfect Coffee Shop.

The Perfect Coffee Shop, like every good coffee shop, tries to sell an experience rather than a product. In this case, that experience is called "perfection". Not perfection as in the perfect blend of coffee or the perfect atmosphere. Rather I want my coffee shop to sell "Perfect Moments". Think about it for a while, when going through your every day life, don't you wish you could freeze certain moments in time? Like the moment when you see a beautiful stranger walk in through the door. Or the moment when you realize they are playing your favorite song on the radio.

The Perfect Coffee Shop exists only in my mind. It's the most beautiful place I know. It's where I keep all of my fondest memories. When I'm having a bad day I go there, sit by window side table. The perfect song is playing on the speaker and the lyrics are resonating with my soul. I pick a perfect moment from the menu and instantly like the smell of freshly brewed coffee, I breathe in all the pleasure emanating from that memory. As I press my face against the glass, I catch a glimpse of my real life self making his way through the busy streets. Rather than being curious, I choose to ignore this paradox. I close my eyes and feel the warmth of the sunset of my cheeks. This too is a perfect moment.

The moment before the shutter opens

Shahriar Haque

Portrait photography was my first passion right after jumping on the DSLR bandwagon. There's something beautiful in the way a lens blurs out all the unnecessary details and captures the raw emotion of a person. For a long time I used to think that the background blur, or "bokeh", was what made portrait photography so alluring. But after spending countless hours taking photos of different subjects, I couldn't pin point what made the experience of taking portraits so satisfying. But finally I figured it out.

The beauty was never in the photograph to begin with. Neither was it in the lens.  It was in the viewfinder just a fraction of a second before I pressed the shutter button. For a fleeting moment, all other distractions of the world gets blacked out leaving just you and your subject. It's an intimate moment where you have the person's complete and undivided attention. That smile, that anticipation in the eyes, is for no one except you. It's a sensation so intense that it feels like the first moment you fell in love with someone.

On weddings and childhood memories

Shahriar Haque

You know that age when everybody around you starts to get married. Well, I am going through that right now. This has brought upon a flood of old memories from the deep recesses of my mind. And the aftermath has been nothing but heartache and sense of undeserved desolation.

Dear friends who are getting married, I know you all have moved on with your lives. You have formed new social circles in your colleges and workplaces. Maybe you’ve even held on to a core group of friends from high school. But how hard can it be to send a message to your old pals on your wedding? It’s not like we are out of touch. When you post pictures of your wedding on Facebook, I can see them! Don’t get me wrong, I am genuinely happy for you. But my heart breaks in to a thousand pieces wondering what I did wrong to not even deserve a message. Note that I am not even asking for a wedding invitation because you might have fixed seating arrangements and I understand that. Just drop a line on Facebook, or send an SMS saying that you are getting married and we’ll catch up later when things are less hectic.

Growing up in Qatar, most of us never had the chance to attend our own family weddings. For many of us, school friends are even closer than our own flesh and blood. I’m not talking just about classmates. I have very fond memories of my junior mates too. I’ve known some of you for a decade now and over the years the age boundaries have become blurred. We’ve laughed together, bunked classes together, went through the ups and downs of life together. At least, that’s how I would like to imagine those awesome moments of my childhood. But clearly your mind doesn’t go back that far.

Call me a sentimental fool, but if I don’t even get a moment’s thought on one your biggest life events, I feel an emptiness devour my soul. It feels as if all my memories were fabricated and I’m just living my life like clockwork.

Have pity on this fool. Drop me a line, the least I could do is to wish you well.



A tribute to awesome women

Shahriar Haque

I know I’m a bit late but I wanted to remember International Women’s Day by paying tribute to the most awesome women I’ve had the privilege of knowing…

Marjorie… Looking back at my college days, you were one of the few people who have truly influenced my way of looking at the world. Just being around you is intellectually stimulating. I don’t know any other person with whom I can have a conversation on any topic, be it literature, philosophy, religion, or science. You and Justin together make the world’s most awesome couple. The world needs more of you before it can become a better place.

Tessa… Having known you as a very close friend, I am overwhelmed every time I think about how much you’ve struggled in your personal life to pursue your dreams. You are the most fiercely independent woman I have ever known and your track record as a computer scientist is impeccable. I sincerely hope that life rewards you with all the happiness that you thoroughly deserve.

Urmila… I’ve always regarded you as my superhero because you are the one I personally aspire to become. Most of the people I know who have achieved success have done so at the expense of their health. But you are living proof, that one can master health and career at the same time. You truly are a role model for men and women alike.

Samreen… To me you are an embodiment of the idea of “Women in Computer Science”. The way you have shattered the notion of male dominance in this field through your hard work is simply awe inspiring. You are a role model for the entire “Desi” community. I hope more young women follow in your footsteps to success.

Ren… You are the most creative person I’ve ever had the good fortune of knowing. You are teeming with potential and I hope your first job is just the beginning of a wonderful and exciting career. You are the person every IS major should aspire to become.

Humaira… You are the smartest and most successful individual in our Bangladeshi community here in Qatar. Having been taught in the same high school as you, I cannot help but be amazed at the tremendous odds you have surpassed to become who you are today. Your success will continue to inspire our community for many years to come.

Waltz with a neutron star

Shahriar Haque

I am a lonely atom
I travel through space and time
Someday I hope to meet a neutron star
And ionize myself in her radiating beauty
Together we shall dance for eons
Until gravity takes its toll and turns us to dust

No Regrets

Shahriar Haque

A good decision is often associated with making the most of an opportunity. Be it choosing your major, proposing to the girl you love, or pursuing the right career. But sometimes good decisions involve knowing when to let go. Life has its ups and downs. Decisions that made perfect sense years ago, may not be good for you any more. Life is too short to cling on to old decisions for nostalgia’s sake. If you can honestly convince yourself that you have failed at everything you could do to make your life better, it is time to choose a different path. Just make sure when you embark on your new journey, you bring along all of the good experiences and none of the regrets. Don’t let hindsight fool you into thinking that you are a failure. If you took the path that was the best for you under the circumstances, walked it for several years, and outlived its usefulness, you have nothing to regret. Holding a grudge is the worst possible way to repay God for his infinite blessings.

As I write this, I am concluding a 7 year long chapter of my life. I am humbled for being rewarded with so much happiness at such a young age. It would be terribly ungrateful of me, towards God, and towards the people I love to consider these 7 beautiful years to be the outcome of a bad decision. I would like to thank everybody who supported me from the beginning. I couldn’t ask for better friends, and more importantly, I couldn’t ask for better parents who remained patient with me even when I doubted them.

I ask God to provide me with courage to deal with this new phase of life, and I ask all of you to keep me in your prayers.

When man becomes less important than machine

Shahriar Haque

Last Friday a colleague of mine had a heart-attack. He is in early forties and had no pre-existing conditions. Luckily for him, he survived the incident after a quick surgery. I’ve had relatives back in my home country who passed away in an untimely manner. But never before have I been in a situation where I was close enough to the victim to notice his absence.

Today as I stared at his empty cubicle, a sense of irony grasped me. My colleague used work on Turbine Monitoring and Diagnostics. What that means in plain English is that he analyzes data gathered from hundreds of sensors on a turbine and uses it to predict failures ahead of time and allow engineers to carry out preventive maintenance.  Day in, day out he kept working, pulling out fancy algorithms out of a hat to keep a machine chugging along in some remote Arabian desert. All of this work, just so that some billion dollar oil company won’t have to see a dent in their obscene profits.

We spend our whole lives perfecting machines while our arteries get clogged and bones become brittle. We manage to find 8 hours in a day to serve our metal overlords, but not 30 minutes to take care of our own health. What sense is there to trade human life to give immortality to a machine?

Pen Friends

Shahriar Haque

Feelings are best left in the hazy existence of the mind. That’s the motto I have always lived by. That’s why I rarely write about personal topics. But today is going to be different. Reminiscing is nice, but I feel I need to write in order to do justice to the memories of some wonderful people I have met.

I don’t know how many of you can relate to this. Back in the day, before Facebook and Hi5 existed, people could meet new friends on e-pal sites. I don’t even think such a concept exists anymore. We rarely interact online with people outside our circles. Even among those who do, most of them are only interested in people with provocative profile pictures. There was a time when people didn’t care how their friends looked. It was a time before short-conversations over twitter and chat. People used to take time out of their lives to actually write you an email, or even post a letter.

Although with time we have grown apart, I feel extremely lucky to have had a couple of amazing pen-friends. So here’s to you YanDream and Jhum, hope this post brings back good memories and smiles on your faces.

Yandream, I always knew that wasn’t your real name. But I remember you explaining to me that “dream” is what your name means in Chinese. 29 emails from way back in 2005 is all that I have to remind me of you. You were the first person to actually write me a letter. That was awesome of you. In this era, nothing spells friendship more than a hand-written letter. From what I gathered from Facebook and Google, you have made true all the things you used to talk about. Really makes me proud seeing all your fantastic photography and design. Keep up the great work Meng !

Jhum, Jhum, Jhum, I have many things to say about you. You are my oldest and longest running e-pal. Reading through my emails I realized how much of my life I have shared with you. I claim to lead a robotic existence and not share anything with any one. But with you I shared everything from my love life to career-aspirations. In a way, you were my first personal blog. You were the first (and only) e-pal I have talked over phone. You are always one click away on Facebook. I pray I can get off my lazy butt once in a while and write a good long mail to me.

That’s it. I feel much better already. I don’t know if I will hear from any of you. But just know that you are part of what made my childhood awesome.

Best Wishes


Paradox of a CS major

Shahriar Haque

  • We know how to write a History essay or an English research paper, but don’t have any clue when it comes to writing a functional specification document or a technical design document.
  • We can accurately measure the run time complexity of an algorithm but cannot reliably say how long we will need to write a piece of code.
  • We can make sense of an assembly dump, but cannot parse a piece of code written by someone else and proceed to rewrite it.
  • We learn how how to code the hard way with Vim and Emacs, but never bother to learn to use all the features of Eclipse.
  • We can do miracles while coding alone, but have no clue how to commit, checkout, branch, tag, and merge using a revision control software for a team project.
  • We excel at writing thousands of lines of code, but have difficulty compiling, linking, and creating executables.
  • We enjoy the challenge of a good debugging session, but hate to write unit tests and regression tests.

Pitfalls of Programming at Work

Shahriar Haque

As I slowly approach to the end of my second year of work at GE, I can sense how much I have changed as a programmer since I left CMU. In this article I want to put down my “lessons learnt” on paper. Chances are that in a few years I won’t even remember what it felt like to go to college. So before I forget I want to pass on the experience that no text book could ever teach me. Rather than a write a wordy reflective essay, I will just list some of the common pitfalls that you should avoid as a newly hired programmer.

Resist the urge to rewrite code

This is probably the hardest one. So it deserves some special attention. You will come across a lot of crappy code in your work life. There’s seldom any documentation. So your only option will be to read through code. And the more you read, the more you will feel the code has no structure, things are not done in a proper way, there’s a lot of repetition etc.. Well guess what? It might be crappy code, but it’s well tested crappy code. A lot of the obscure code-blocks are undocumented patches to bugs people found after months of testing. If you are new to the company, you will have absolutely no clue about all the bizarre edge cases of a program. Chances are when you rewrite a piece of code, you will produce a clean but buggy application. If you are unsure whether to rewrite or not, ask yourself these questions:

  1. Will cleaning up the code reduce development time in the future?
  2. Will it make testing easier?
  3. Will it make deployment less time consuming?
  4. Does #1, #2, #3 take more time the time it will take you to rewrite the code?

If the answer to all four of these questions are “yes”, try to see if your coworkers think the same too.

Not being satisfied by anything other than your work

This is also a hard one. If you are a hard-working and productive programmer, you will get a lot of responsibility on your shoulder. There’s nothing wrong with that. But don’t go overboard. Typically there will be others in your company who can also code. You may not think that they are as skillful as you. But practically speaking, given enough time they can also get the job done. So don’t lose your sleep trying to be a one man army. Be a team player. Learn to delegate. Document your code, so that others can fill in when you go on a well deserved vacation.

Get over the need for speed

Yes, changing that data structure to a tree will make lookups O(logn). But it will only reduce runtime from 10 minutes to 9.5. It’s usually very hard to give a find out the big O complexity of real life programs. So don’t jump at the first chance you get to apply your algorithm skills. Profile your code thoroughly. Get an understanding of what the real bottlenecks are and whether they are under your control. And even then, you should only optimize if your users are complaining about it.

Reluctance to test your code

Admit it. We all hate testing. We hated in college. We got mad at professors who graded your test cases. And we still hate it at work. The only difference is, now the code may affect the lives of hundreds or even thousands of people. So get over it. If you feel testing is a waste of time. Write test scripts. Write modular code. Write unit tests as you code. Get your co-workers to test your code. The more testing you pile up till the end, the more repulsive it will get. And then procrastination will take over and you will end up shipping buggy code.

Those were the main pitfalls I could think of. Maybe someday I will write a part 2 for this post with all the small tips and tricks I picked up over the years. Anyhow, if you manage to start your career avoiding these pitfalls, you should have a bright future ahead.

CS Reality Check: Attitude

Shahriar Haque

I see CS kids bragging about their major everyday. Quite often bragging turns into insulting other people’s intellect. I used to be okay with this when I was a student. But after joining the workforce I see it as a mental disease spread by the CMUQ CS culture.

If you want a CS job worthy of your CMU education, a job that does not require you to be a code monkey, you will need to learn how to be respectful towards other people. Cracking a joke that makes a BA student look dumb doesn’t make you smarter, it only shows how arrogant you are. In real life, you’ll have to work with these people at some level, and if you can’t make them appreciate your work, you will find yourself replaced with more capable people.

As for IS students, don’t treat them as a lesser version of yourselves. Remember, the CS degree is focused more on the theoretical aspect of computing. In the workplace, IS students will have a competitive edge with their practical knowledge and communication skills.

Even if you get a technical job, you will be surrounded by people who are much older and experienced than you. If you are lucky, people will ask what major you were in, but never which college you went to. You have nothing to be proud of. So, from the next time on, watch that attitude !

CS Reality Check: Courses

Shahriar Haque

Freshmen often ask me what CS courses do we take in CMU. Sophomores and Juniors want to know which CS electives would help them in their senior thesis. Seniors want to know which courses are useful to get a job. To answer everybody’s questions I have a prepared a list of CS courses I have taken in CMU, a short description of each, and a rating indicating it’s real life value. Note that some of these courses may not be offered any more and the content of some might have changed.

Introduction to Programming (10/10)

Taught me object-oriented programming. Taught me Java, the language I use at work the most.

Intermediate Programming (10/10)

More Java, and lots and lots of data-structures: Trees, Hashes, Linked Lists. Once you get a grasp of programming this course will give you a toolbox to solve real world problems.

Concepts of Mathematics (4/10)

This course gives you a gentle introduction to the world of discrete mathematics and proofs. For some, this is the first real challenging course in CS. It’s not at all useful in real life, however, it does prepare you for upcoming disasters in discrete maths.

Data Structures & Algorithms (7/10)

Even more Java. At this point, it starts to get repetitive. Her you learn about exotic data structures which you will most likely never use in real life. The only reason this course gets a 6 is because of the various graph algorithms you will prove to be a useful addition to your toolbox.

Great Theoretical Ideas of Computer Science (10/10)

Rating this course is tricky. It doesn’t teach you something that you can directly use in real life. But GTI helps build character. It separates the curious CS enthusiast from the ones who are worthy of a CS degree. This course helps you build the stamina to solve difficult mathematical problems and write formal proofs to justify your solution.

Programming in C in Unix (10/10)

I am one of the lucky few who doesn’t work in a Microsoft dominated company. Our entire software architecture is Unix-based. Whatever Perl and shell scripting I learned in this class, I use it every day. On the other hand, programming in C made me a better man and prepared me to face Fortran which I often face at work.

Fundamental Principles of Programming (5/10)

Better known to CS students as “ML”, this course attempts to bend your mind by teaching you functional programming. It’s really fun, if you get it, otherwise you’ll feel that ML is just a twisted language. Not much real world application today. However, functional languages are coming back in fashion. So doesn’t hurt to have a taste of it in college.

Web Application Development (7/10)

This is one of those light-weight courses that doesn’t add to your workload, but gives you a lot to learn. You are introduced to the wonderful world of Ruby on Rails, the bread and butter of IS students. Regardless of whether you like developing web apps or not, writing code in Ruby will be a breeze of fresh air after Java, C and ML.

Introduction to Computer Systems (9/10)

This is the first serious CS course in CMU where you really get your hands dirty. You get down to the assembly level and learn the basics of compilers, computer architecture and memory management. For sure, you won’t need much of this directly in real life. But the realization that “there is no magic inside the box” will help you understand performance bottlenecks of even the most complex systems.

Algorithm Design & Analysis (6/10)

This is the grand-daddy of all discrete math courses. While it’s not as mind-bending as its pre-requisite GTI, it’s still teaches you some useful stuff. Understanding how to determine the time and memory complexity of algorithms will help you design better applications. In a company where a lot of applications build on your work, demonstrating a sound knowledge of algorithm design will raise a lot of eyebrows

Algebraic Structures (0/10)

Really abstract mathematics. Simply pointless.

Formal Languages & Automata (3/10)

This is a course I really enjoyed, even though there is a lot of talk about abstract computational devices. Here you get to learn about regular languages, context free grammars, Turing machines etc. Nothing terribly practical, but very insightful nonetheless.

Foundation of Programming Languages (0/10)

More ML, but this time with a focus on formal analysis of programming languages. You get to write your own toy programming language every week. Sounds fun but terribly dry and useless.

Technical Communication for Computer Scientists (0/10)

This course has the potential to be a useful course. There is a variety of technical documents that a CS professional need to author on a regular basis, (e.g. Technical Design Document, Functional Specifications, Technical Requirements Document, Programmer’s Guide etc.) This course teaches none of them. I will write more about this point in a future article. CMU really needs to improve the content and instructors of this course.

Software Engineering (2/10)

Another course that had the potential to be very useful. But I guess there is no way to make students without industry experience appreciate the impact of good architecture and design. If I could go back to CMU and take any course, it would be this one. Any how, software engineering skills is what helps you climb up the corporate ladder and takes you from a code monkey to a software architect.

Computer Networks (8/10)

Another heavy duty programming course in C. A lot of new material. You learn networking from its dirty low levels of sending individual bits, error correction, collision detection & avoidance, routing, queuing, Ipv4, Ipv6, TCP/IP, and even some application level network protocols. The programming assignments are pretty demanding. You get to read the technical specification of the IRC protocol and build your own IRC server. You even get to write your bit-torrent client in the last assignment. The networking stuff isn’t that useful to me as a programmer. However, as a distributed systems programmer, the code from the assignments are a useful reference for me.

CS Reality Check : Deadlines

Shahriar Haque

University professors want you to believe that if you are failing to meet your deadlines you are “not managing your time properly”. This is not true for a number of reasons.

In real life people hardly shove deadlines down your throat. The way it usually works is the project manager first lists all the activities that needs to be done. Then all the “owners” of each activity gives an estimate on how long each activity will take. And then, based on the program’s priorities, the PM assigns deadlines for every activity trying to respect the estimated durations as much as possible.

In a way, professors are actually doing more harm to you by giving you deadlines in the first place. The most important skill for a developer working in the real world, is the ability to reliably estimate the duration of work. Deadlines are okay during the freshmen and sophomore years. There isn’t any significant amount of coding in the first two years. But from your third year and onwards, you are faced with 4-6 week long programming assignments. This is something that requires a bit of planning. Depending on the courses you take in your Junior year, the deadlines for your 4-6 week long assignment may not be compatible with your workload from other courses. In real life, you would first look at all your assignments from all your courses, set priorities to them, and then *plan* for a 4-6 week long slot at some point during the semester. This kind of project management skill is vital for a developer to succeed in real life. A pre-determined schedule is not guaranteed to work for every student.

Uplifting Demise

Shahriar Haque

I died as mineral and became a plant,
I died as plant and rose to animal.
I died as animal and I was human.
Why should I fear?  When was I less by dying?
Yet once more I shall die human,
To soar with angels blessed above.
And when I sacrifice my angel soul
I shall become what no mind ever conceived.