Thursday, September 24, 2009

The entrepreneurial spirit of Software Management

I'm excited to report that my CMU teammates and I completed the first course in the Software Management program, the "Elements of Software Management" (ESM).

If you are interested enough to be reading this post, you are probably already familiar with the general overview of the program and are rather looking for insider information. I will try to break down that information from the following perspectives:

1. What you will learn inside your ESM class
Summarized in two words, the ESM course is about "Business characterization". In your first course ever in this program, your goal is to analyze the vitality of a randomly-assigned, publicly-traded software company. You have all the publicly accessible information on the Internet as research material, 4 books and 1 course reader as the means of learning the mechanics of how to research, three other partners in crime to collaborate with (who each are assigned their individual companies), 45 minutes per week of your coach's time to share among your team for seeking guidance, and weekly lectures to discuss readings with the class.

Although you have a team, the work is team-ish. This is only a warm-up course in terms of collaboration, so you are responsible for your own individual research. The team is there to discuss the learning process on a high level, but you produce results individually about your own target companies. The two months for this course are divided across different aspects of business characterization: An executive overview of the company, market analysis and business strategy, financial analysis and business prognosis. Most of those concepts were foreign to me before I had to dive into them. I found myself reading an average of 1.5 hours a day, writing 1 hour a day (mostly deferred till the end of the week) and spending 3 hours a week on collaboration.

Every week, or sometimes every two weeks, an analysis paper is due. The very last assignment was an 8-minute oral presentation of the researched company to imaginary executives, that is, the class instructors.

2. How your roles outside school might cope with the new load
Let me begin this subject by mentioning that I started writing this post 15 days ago. Balancing your family role, your job or career and your role as a part time student are not easy feats. In the last two months I have at times had to switch to damage-control gear and concretely demonstrate to those both at work and at home that I am still fully committed to them. I've had to skim chapter summaries instead of reading them in detail. I've traded some of my sleep for a well-researched late analysis submission on a Sunday night, a four hour commute on Monday morning from my girlfriend's place and showing up to work at 8:30am to show my team at work that they can still count on me.

Despite those moments of pressure, and without incentives, I like to write. I write because, to recite an anonymous quote framed on my girlfriend's wall, "life is not about waiting for the storm to pass. It's about learning to dance in the rain." I signed up for this program not to trade jobs, but to trade confusion for leadership. For two years I've contemplated that there must be a more direct and powerful way to make a change along the path I have chosen. I chose management because it would give me a leverage from a higher level to effect that change. A part of my commitment is to lead, and I know that there are hundreds of people like me out there who feel confused about what to do with their engineering careers. I write despite the pressure for time, because I chose to follow the passion for freedom of personal and social expression. I'm seeking my passion through learning to direct software development; and I know there are leaders out there without their wings. My fourth role is one that I have assumed individually: to be the seductive call, in the ears of the undiscovered software leaders of tomorrow, to the fulfillment of their true purpose.

Those are big words two months into a program, but I have thought them for 10 years. You know how sometimes you look at your agenda and there isn't much there besides work, yet you feel a huge burden? That's the burden of not meeting your potential. I still have as much free time as before the program. How? I learned to cut loose some of the heavy weights holding me down in the middle of this course. Instead of trying to fulfill my dreams in solitude, I now include my family and coworkers in my progress. Pointy-haired bosses call this finding "synergy". I call it becoming whole again. I distinctly remember the similar pleasure I experienced as a child when I discovered that, when painting with water-color, the yellow rays of the sun and the blue horizon of your ocean form a green color when they finally meet. My set didn't come with the color green, so discovering how colors reacted to each other opened up my eyes to new possibilities of painting endless forests and leaves. When you mix up the few colors you have, you get a whole set to paint with. To read more about the mysterious way software engineers relate to paint in particular, read "Hackers and Painters" by Paul Graham.

3. Whether you need to reconcile your identity
My typical week right now is very different from what it was in the past few years. I used to work for 8 hours, then come home and work up to another 8 hours on a start-up prototype. Nowadays I work up to 9 hours a day, reserve 3 hours for school work, and spend the rest of the time with my girlfriend. The main difference is that at school I try to learn about what might help my work, at work I pay attention to what might be a good case study at school, and at home I share most of my experiences with my girlfriend. You don't realize how fractured your identity is until its incompatible parts start to compete with each other for time. One reason I left Seattle for the Bay Area was to leave behind a lifestyle built around a fractured sense of identity and start a new one as a whole person. So far I feel I've been successful at that.

As an engineer, nowadays I look at my company from a new perspective. I used to look at my sphere of influence from a short-sighted point of view. I used to either want to integrate against cool platforms, optimize things that were functioning terribly but were not broken, and generally make life better for engineers. Since understanding the concept of branding, market segmentation and market-driven development, I have completely revised my system of "importance" evaluation. In my career so far I have never seen someone on the engineering side of a software company reason based on the impact of a decision on the balance sheet, income statement or cash. I have never heard of a developer point out how a cool project doesn't fall within the current strategy of the company, or suggest that a new application is too generic to be branded as something purposeful.

I now understand why several of my boot-strapped startup attempts have ended in failure: The first one attempted to compete with a large company (Facebook) in their own turf without hiding in a niche spot; and the second idea had no customer, purpose or branding strategy in mind - it was just a very cool idea waiting to be recognized. I now understand what turns off a VC and whether to run away when I hear "we want to become the next API consolidating XYZ data and we're launching our first app in two weeks. We're just looking for a rock-star engineer to scale it." (read: nobody recognizes us, but we want to become the standard that the currently recognized companies should follow, and we want you to spend 4% of your life time on this idea.) I kindly declined one such flattering invitation thanks to my new learnings just from this course, and several weeks later I'm helping some of the founders find work.

If I sound like my entrepreneurial spirit is defecting to the managerial world of conservatism and pessimism, it isn't. On one end of the spectrum, I look at people such as Dr. Stuart Evans, my coach this semester. As part of his research area, he studies the behavior of software companies of various sizes in different environments. While he has been involved with several software start-ups, he has not focused on the actual writing of software. On the other end, there are people like Bill Gates, Steve Jobs, Peter Norton, Mark Zuckerberg, Jimmy Wales and Craig Newmark, who knew most things about writing software and very little about business when they ventured to change the world.

There is no knowledge or merit you can acquire that will make you a wise Wizard or an experienced King overnight. Most good engineers I know have a similar personality to Aragorn, the lone ranger of the Middle Earth: anonymous, wise enough to listen and potent enough to move the world. And yet, they wait for the day when a higher power restores their confidence, the broken Sword of Elendil. As long as there are dark forces in this world, there is a place for those who embrace ingenuity: those who are neither all-wise nor all-knowing, but both ambitious and sympathetic, to put meritocracy aside and become a leader. There are problems to be solved, while the status quo of the world are solving problems that don't need solving. I call doing the right thing, in its technological contexts such as in this one, the "entrepreneurial spirit of software management".

Sometimes the only evidence that you are is what you feel when you stand against the wind.

Friday, September 11, 2009

Pattie Maes and Pranav Mistry demo SixthSense

Currently I'm swamped by the pace of deadlines: release after release at work, and company business research submissions one after another for the SM program at CMU.

Meanwhile though, on TED.com I found the following video about an innovation called "SixthSense" which I found absolutely brilliant. This will be a trend setter and shows how we're all going to be convinced to not only become cyborgs in a not so distant future, but also supernodes in a mobile social network. I very highly encourage you to watch it.

Monday, August 31, 2009

Lose the baggage

It has been 36 hours since I submitted my first CMU assignment, a software business characterization paper on Compuware Corporation. I must say even though I wrote it, it doesn't look like my writing. Not that it's great, but in fact it doesn't look anything like what I can usually manage to put together in my spare time in a week.

Although I don't consider the experience nearly as intense as serial all-nighters in University of Waterloo to crank out a new compiler or an OS, one thing is surely different: Before the assignment I barely had any time, even for my other responsibilities. Once I undertook it, my performance in other areas somehow improved.

I work 40 hours a week, spend 20 hours on the Software Management masters program and about 20 hours with my girlfriend Abby. I take all of those three commitments seriously. Figure in some sleep and commute times, and you're left with a negative balance of hours. In the one week since the orientation and leading up to the assignment, I was very stressed out. I've been watching my productivity fly in the low altitudes at work, and I've been feeling less energetic. When I met with my assignment team in the middle of the week, I was very anxious not to let them down. I was the proverbial cardio patient on a stress test treadmill, watching my own abnormal vitals.

Then I had a dream, right after sending out my paper for peer review and crashing on my bed at 3:30am on Thursday night. I dreamt in code: something that only happens to me after a whole day of prototyping, not a whole day of investigating the business model of a company. Almost in a state of trance, the best solution of a complex design problem at work was standing before my eyes so clearly that I thought I could take notes in my sleep. The anxious thoughts of "I'm not doing anything worthwhile with my spare time" had washed away. Because I was spending my spare time performing in other roles to the best of my ability, my subconscious was no longer competing for my attention on personal growth - I could focus on actual work.

Today I got more done than I have in one day in a long time.

According to First things First by Steven Covey, When you feel stressed out under a lot of responsibilities, most of the time a big part of the problem is that (1) you are not balancing your roles, and (2) you are focusing on the urgent and not the important. In the context of my career, the urgent has been to keep up with today's newest technologies, something that drains a lot of attention and energy. Additionally, I've often neglected my commitments as a friend, a partner, a focused employee and a person, to instead focus on the one role I have felt most passionate about: "entrepreneur". The image that comes to mind when I think about an entrepreneur is the Wright brothers' first functional flying airplane. And one thing stands out about the plane: It sure was flying light.

You can't fly to new heights with a lot of baggage. The roles you have not fulfilled are the baggage hanging from your shoulders. If you feel you need to be somewhere else, go there now. You will come back and do what you're doing a lot better, a lot faster and with a lot more satisfaction.

In my case, I have my 7pm-10pm planned out for me, everyday for the next two years. I'm lucky I'm going through it with 40 other people.

Sunday, August 23, 2009

Carnegie Mellon Silicon Valley orientation weekend

I spent most of this weekend, starting Friday morning, at NASA Research Park in Mountain View, California, meeting my new classmates, faculty and team in Carnegie Mellon. The collaborative experience of being a part of a team-building process was exciting beyond my expectations.

Abby, my girlfriend, wished me luck as I left home Friday morning for an early drive down to CMU. After a 40 minute drive from San Bruno to Mountain View, I was ready to show the NASA security my passport. They said I only needed a driver's license. Inside, I expected things to look a little more impressive. Besides a gigantic hangar bay, everything else as far as I could see looked like a suburban university campus.

I pulled up at the Building 23 and went inside. About 50 other students had already arrived, sipping on coffee and having breakfast. It felt like a new company info session. The agenda was funny: A few talks here and there, followed by playing with Legos and some catered lunches. I could already sense where some of the pricey tuition was being spent.

A few hours later, something magical had happened. After a few conversations encouraged among the students, there was a very positive air filling the room. We were still slowly discovering our purpose in that room, but we all knew we were going to leave with something more than we came with at the end of that weekend.

Overall, we spent about 24 hours together that weekend. About 30% of the students were remote and had to fly back to their homes and families on Sunday. CMU allows remote collaboration as a way of participating in the program. The Lego game had been a way of discovering our own weaknesses when acting as a part of a team: things slow down, but end well after a few tries.

The events of those 24 hours were way too many for me to talk about in this blog post. Bill Portelli, the CEO of CollabNet gave us a talk. Dr. Martin Griss of CMU had us playing with Legos. We went out to the Castro street of Mountain View for dinner with the faculty. I ended up having a few pints of beer with Dr. Stuart Evans, when our group went to the Tied House Brewery to celebrate the first night. He had just returned from England and I started chatting with him about my brief trip in London and Edinburgh. To my surprise, he was very knowledgeable about Persian culture, even compared to the average Iranian. Just when I was fascinated by his friendliness, charming English accent and exciting background with entrepreneurship and high-tech startups, he started talking about Hassanloo village, an archeologically significant site in Iran. He seemed to know a lot about the food and culture, and a few things about the language as well. I know that my family and most of my friends would describe running into someone that knowledgeable quite a rare experience. At the end of the night, I couldn't be any happier to be looking forward to my first course that he teaches: Elements of Software Management.

The experiences of this weekend were too overwhelming for me to reflect on in just a few paragraphs. But the big observation I made when it comes to your personal growth is that no matter what the cost is in time and money, just do it. You live only once!

Friday, August 7, 2009

Company size matters

A quick thought occurred to me this morning as I was taking the elevator up to the second floor to my desk at Adify: I feel a part of the family.


Today it's been exactly one month since I started here. Already most faces look at least familiar, if not friendly. I've had the chance to interview a few new hires and have an impact on the future membership in this family. And I know exactly my role, that is, what part of the product I'm engineering.

I read half of the book "Leadership and self-deception: Getting out of the box" by The Arbinger Institute last night. So far it's a great book and I highly recommend it. It's written mostly in a dialogue format and illustrates how little we get to know the people around us in our quest to advance in our careers. It argues that ironically, the key to career advancement is in getting to know people around us and treating them as equals on a very personal level, rather than as parts of our self-elevation machine that just happen to be made of people.

I liked people I worked with at Microsoft equally well. I still remember their faces and their kindnesses. The exact charismatic facial expressions of a few of them come to my mind when I read case studies of leadership in this book. But there was a fundamental difference: At Microsoft, the sense of unity I feel now didn't exist.

I'm going to have to resort to analogies to explain this better. A team is like a tribe: with its own culture, role structure and survival goals. When a small tribe is unleashed into the wilderness, their primary evolutionary purpose becomes tribe-, not individual-, survival. The resources in the nature are infinite, and so are the survival risks. Performing your duties in the tribe is not a zero-sum game. If you perform in such a way that you increase the productivity of the tribe, you and everyone else will feast more often. If you don't know how to handle your tools, it's in everyone's best interest to teach you voluntarily, knowing that when the roles are reversed, you will do the same for the common good.

As the tribe grows into a gigantic size, it faces new natural constraints. The resources, once virtually infinite, are now only as vast as the size of the tribe itself. While ingenuity will always lead to more production despite limited resources, the natural and physical constraints on resources put more pressure on individuals to be creative. Any lapse in the stream of visions for new ways of maintaining and increasing production will put more demand on exploiting the existing resources. The culture of co-operation, facing scarcity of resources, turns into the culture of zero-sum games. Gains are finite, and therefore scheduled. The tribe cannot grow faster than the nature will allow it to, similar to how the company cannot grow larger than the market itself. The scope of success is therefore reduced from the good of the collective to the good of the smaller groups inside the collective who compete with each other for scarce resources.

This is what breaks apart empires. This is why powerful kingdoms and unions have to deal with separatist revolutionary groups. When scarcity for all becomes the norm, minorities will spontaneously try to tip the balance of survival.

Let's get back into reality. When a company dominates the market, you see people hiding away in their offices, trying their best to outperform each other. It looks competitive and brilliant. It looks impressive, until you lift up your head and realize you have become one of them. You get to work a certain time of the day and you leave work exhausted after 10 or 12 hours to manage the other broken roles you have to play at home, as a friend, a spouse, a parent or otherwise as a balanced human being. You give it all, compete, get stacked, ranked, allowed to survive just to do it all over again next year. The culture of doing important things for the common good is replaced with the culture of doing unimportant but urgent things while hitting yourself against the walls of nature and waiting for something good to happen out of the blue.

One thing I really enjoyed about my life in Washington before I moved to Silicon Valley was the huge, tall and lush trees. I often felt lost in nature driving down Bellevue or up the Cascades. It's an amazing feeling, as if one is lost in the Fangorn forest of a Tolkien epic story. And in the end, I observe that as a human-being, I feel healthier when I'm a small part of an infinite nature. It's the chase we're all in love with, not the domination. In our evolution, we have always faced infinite resources. Our minds have developed into machines that cooperate with each other to build new tools to survive.

When our tribe population dominates the forest, when the cottages become town-houses and the duplexes become skyscrapers, we may need to move out to less explored lands; just to find a neighbor who wants to invite us in for a cup of coffee instead of going over the maintenance schedule. Our ultimate goal is to be happy, and our happiness is tied to a sense of being fit for survival, together as a group. Maybe it's time to jump back into the wilderness.

Friday, July 31, 2009

Technical Interview Questions

One of my roles in my new position at Adify is to interview computer scientists and software engineers who wish to join our team and company. When I look at nervous candidates, I remember being in their position. Not only I get excited for them, I also feel a huge sense of responsibility to be objective and fair.

One way I do this is by posing difficult technical questions that exclusively involve coding, while watching the candidate. I've been there; I don't expect you to be perfect. I just look at how your mind works when you're making design decisions, and what your first reactions are when you run into problems. For example, when I tell you "you have a bug, can you find it?" some candidates panic, and some fruitlessly keep rereading their code. The skilled ones just enter some input into their methods, as if unit testing manually, and that helps them discover the bug immediately.

I really wish I could simply guide the candidate towards the answer as if we were already part of a team; as if I was there to support them. But if I did that, we would never be able to differentiate and hire highly skilled people.

Another important aspect of my interviewing style is that I try to design my own questions. Most interview questions, meant to test fundamental computer science skills, are asked to death by now, and are enshrined in lists all over the Internet. I tend to collect the difficult questions I've been asked throughout my career, modify a well-known question to make it interesting, or design a new problem that abstracts away a challenge I've faced during a design phase. I am even willing to share my interview questions with you.

When you are watched over your shoulders while you are coding on the white-board, use the opportunity to verbalize your solution. Describe your thoughts in real-time, and tell me your design while you're working on it. It's a sign of a good engineer and it builds confidence. I have received passes by some great senior engineers in Microsoft, Google, Amazon and elsewhere before, by simply describing how I would solve the problem concisely, even though I didn't manage to complete coding it in time. When I see a smart design and a good effort, I show the same courtesy.

Monday, July 20, 2009

A start in Silicon Valley: Mastering progress and pleateau, with some book recommendations

"To love the plateau is to love the eternal now, to enjoy the inevitable spurts of progress and the fruits of accomplishment, then serenely to accept the new plateau that waits just beyond them. To love the plateau is to love what is most essential and enduring in your life."

From the book "Mastery: The Keys to Success and Long-Term Fulfillment" by George Leonard, author and Aikido instructor

I'm starting a new life. As I mentioned earlier, July tends to be the month in which I make major life-changing decisions. 12 years ago in July I immigrated from Iran to Canada. Five years ago in July I visited United States for the first time when I went to Manhattan, New York on the Independence Day. Two years ago I moved from Toronto, Canada to Seattle, Washington to work at Microsoft. Last year I was on a plane to Europe in July, to backpack 22 countries in 80 days. This year, it's July again.

So I decided to seek the waves of the sea of change. I packed my life, rented a one way U-Haul truck from Seattle to California, said goodbye to Microsoft, found a job in the San Francisco Bay area and got an admission offer to Carnegie Mellon University in Silicon Valley. The campus is located in NASA Research Park. If I was looking for an exciting change, I couldn't be more excited right now.

I'm writing this as of two weeks after the move. I drove the entire way within 24 hours. Everything I have is in storage and I'm hopping between hotels while working during the day and spending quality time with my girlfriend Abby in the evenings. The lifestyle reminds me of Europe: Not having a permanent place, but knowing that I'm treasuring life's passing moments more than I ever had during the routine periods. This is what George Leonard describes as "the inevitable spurts of progress and the fruits of accomplishment" and I'm sure to expect and accept that the next plateau beyond now offers less excitement and more hard work.

That brings me to the reason I'm writing today. The book "Mastery" by George Leonard, although written in a very simple literature form void of any fancy language -- kind of like my blog -- has changed my life. Since I read it 4 years ago, upon graduation and while hunting for my first career gig, it has transformed my way of thinking about life. It has made me realize truly what it means to pursue challenges instead of goals and rewards. It has inspired me to think of boredom, what he calls the plateau, as a time for pushing oneself and learning, so that the next "spurt of progress" is larger and more significant. Ambitious individuals sometimes wait around, like Neo in The Matrix, to suddenly be discovered and be told what their life mission is. I have learned that the knowledge is out there, but you are your only mentor and self-discipline is your only weapon. When the sea is calm, you should be preparing to master the next storm.

One of the key factors in my quest for sustained personal growth is keeping track of the best books recommended to me, using a spreadsheet. Doing so assures me that one day I will gain, in a short and contextually relevant period of time, what the author and thousands of readers have come to discover and treasure by consensus. Recommendations and reviews, such as those found on Amazon, are the best ways to find these books. I have found a better source though: University faculty recommendations, as well as high reviews and peer recommendations.

I'm going to read the following books sometime this year while working and going to graduate school. See if you are also interested:

  1. First things first (Stephen R. Covey)
    How to look at and organize your time totally differently.
    Carnegie Mellon University recommendation

  2. Leadership and self-deception: getting out of the box (Arbinger Institute)
    A novel-style life-changing book on how we view others, from inside our self-deceiving box, and how that impacts our ability to lead them
    Carnegie Mellon University recommendation

  3. Here comes everybody: the power of organizing without organizations (Clay Shirkey)
    According to the Publisher Weekly, the author contextualizes the digital networking age with philosophical, sociological, economical and statistical theories, and points to its major successes and failures. According to Ray Ozzie (Microsoft Chief Software Architect), the author's pattern-matching skills are second-to-none.
    Carnegie Mellon University recommendation

  4. The Master and Margarita (Mikhail Bulgakov)
    A banned Soviet-era book about protesting for freedom in the face of interrogation, fear, and terror. I'm interested in this book now, because the current affairs of my homeland, Iran, is a repetition of this history.
    Recommended a few years ago by my friend, Natasha

  5. One hundred years of solitude (Gabriel Garcia Marquez)
    A brilliant Latin American literature of love and loss that presents some contemporary history of that part of the world in the form of a mysterious fantasy. I enjoy history, both in real and fantasy form. I've also always held recommendations from this friend highly. Those are my motivations for wanting to read this book.
    Recommended a few years ago by my friend, Zavosh

Friday, July 17, 2009

C# technical interview algorithm question: Print 32-bit Integers with only 7 bits on

In a recent interview, the engineer at the other side of the table asked me to write C# code that would print out all 32-bit Integers that have only 7 bits turned on. I don't consider this a great interview question, because it doesn't measure most things, yet it strongly measures your ability to write recursive method signatures. How many times have you ever had to write complex recursive methods in your last job? When I interview people, I ask them algorithm questions they're very likely to use.

In case you're wondering, I did pass, but my whiteboard code wasn't as clean as the following.

Nevertheless, here's the source-code just in case it helps anyone prepare for an interview. Do your own validation. It spits out the answer but it might not have certain memory optimizations that someone with a C++ background might look for. For one thing, I'm passing a lot of arguments by copying. If they do insist on optimizations and they only give you half an hour, you probably don't wanna work for them anyway:


using System;

namespace PracticeApps.PracticeConsoleApps
{
class IntegerWithSevenBitsOn
{
static void Main(string[] args)
{
PrintIntegersWithSevenBitsOn();
}

// Prints all Integers that have only 7 bits on
static public void PrintIntegersWithSevenBitsOn()
{
PrintIntegersWithSevenBitsOn(0, 32, 1, 7);
}

// Helper to Print all ints with given # bits on
// number: The number that is modified recursively
// remainingSpots: Unassigned bit count in number
// mask: Helps flip a certain bit on the number
// unusedOnBits: ON-bit count yet to be placed
static private void PrintIntegersWithSevenBitsOn(
uint number,
int remainingSpots,
uint mask,
int unusedOnBits)
{
// Base case: No spots left to fill
if (0 == remainingSpots)
{
Console.Out.WriteLine(
Convert.ToString(number, 2));
}
// Recursive case
else
{
// As many remaining spots as ON-bits?
// Then place all of them recursively.
if (remainingSpots == unusedOnBits)
{
PrintIntegersWithSevenBitsOn(
number | mask,
remainingSpots - 1,
mask << 1,
unusedOnBits - 1);
}
// More spots than available ON-bits
else
{
// Use a Zero for the current spot
PrintIntegersWithSevenBitsOn(
number,
remainingSpots - 1,
mask << 1,
unusedOnBits);

// If available, use an ON-bit
if (unusedOnBits > 0)
{
PrintIntegersWithSevenBitsOn(
number | mask,
remainingSpots - 1,
mask << 1,
unusedOnBits - 1);
}
}
}
}
}
}

Thursday, July 16, 2009

The journey of a lifetime

On July 15th, 2008, exactly one year ago, I was sitting in a plane headed for Amsterdam. I bought the ticket overnight and made the decision to go to Europe.

Santorini Island, Greece
I had been working on a start-up idea for about 6 months. I had resigned from my job half way into it. The product wasn't coming together and I was running solo. I looked at my runway: My savings were quickly running out, and the hopes and dreams with them. I knew failure was imminent, but I decided to turn it into a different kind of victory. I decided to let go of everyone and everything: People filling me with negative emotions, fear of having to start over, and the terror of not living within identity constraints.

I took the remaining of my savings, filled a backpack and bought the cheapest one way ticket to Europe that I could find. I was ready to see the world before I was too old to explore. I wanted to live today without knowing my destination tomorrow.

I backpacked 22 countries.

My only companion from home was a used Lonely Planet book. I found new companions along the way. A handwritten journal remains from that trip that I may compile into this blog one day.

I travelled from Seattle, WA to Toronto, Canada where I caught my flight to Amsterdam, Netherlands. Then I travelled by train to Bruges, Belgium, followed by Brussels. From there I went to Berlin, Germany and Prague, Czech Republic. I went again by train to Vienna, Austria and by bus to Bratislava, Slovakia. Next, I stopped in Ljubljana, Slovenia, and then Zagreb, Croatia. I went to the beautiful coast of Split. I reached the beloved Mostar, Bosnia and Hercegovina by bus and also spent time in Sarajevo. Another bus took me to Belgrade, Serbia. I headed for Bucuresti, Brasov and Transylvania in Romania after that.

I slept in the train to Budapest, Hungary and took another train to Krakow, Poland. I visited Auschwitz and Birkenau.

Amin standing in front of a tank in Kiev, Ukraine on its independence day
A long train trip to Lvov and Kiev in Ukraine was followed by another trip back to Bucuresti, where I connected to another train to Sofia, Bulgaria. Athens, Greece was next, and then the islands of Santorini and Crete by ferry. When I returned to Athens, I headed for the port of Patras where I took a ship to Bari, Italy. I crossed the country to Napoli (Naples), and visited Pompeii, Sorrento and Amalfi Coast. My stay in Rome was followed by a visit to the Vatican City, then Firenze (Florence) and Milan. The scenic train ride to Interlaken, Switzerland and a short stop in Iseltwald helped me find my peace. A night ride from Geneva to Paris, France and a long stop in Barcelona, Spain were followed by a flight to London, England. Dream cities.

Edinburgh
To escape the expensive stay, I took a bus to Edinburgh, Scotland where I said my last goodbye to Europe. I went back to London where I got on my final plane to Toronto, Canada before starting a completely new life.

You will not be surprised if I tell you that 12 years ago this day, I had just gotten off a plane from Amsterdam to Toronto, having travelled across the Atlantic to start a new life away from my birthplace.

A simple itinerary will not tell you what it feels like to backpack for 80 days, say goodbye to your homeland permanently, or start anew. But after all these experiences, I am a changed man. I rewrote every aspect of my life when I returned: personal and career, short- and long-term.

New beginnings are easier on those who have experienced many endings. You find your place in the world. You realize that as long as you're alive you cannot possibly fail, unless you quit.