Topic: thoughtworks

Image011 The month of March was definitely a busy one. The month of April will be another busy one. Yesterday I started my first day at eCompliance. I left ThoughtWorks to pursue the world of the start-up. So far it's been a lot of fun. Day one on the job I was hitting things that most developers are sheltered from. Although, a bit scary at times... it's been a super fun ride so far.

I managed to knock off a few goals from my list, I finished the second exam to earn an MCTS designation, I finished reading xUnit Test Patterns, and my family and I booked tickets to fly down to Austin, Texas for a week.

Last year it was a huge dream for me to be able to attend the Nothin' But .NET boot camp, and this year I'm proud to say that I will have the opportunity to help TA at the upcoming boot camp in Austin. I'm super nervous, and humbled that this opportunity is available to me. The best part is when my wife and I sit down, and cross things off our list of goals, together!

Since my wife and I sat down and wrote out our list of goals, things started happening almost immediately. We slapped ours on the side of the fridge so that we can take a peek at it as we walk by. It's been invaluable to us, and has helped us with making tough decisions.

One of the things I've learned is that my lists tend to change, but our list is pretty much the same since it started. I would go full force trying to accomplish things off my list, even if they were no longer important to me. I've started to adjust my lists, and I don't feel as bad as I thought I would when I don't knock things off my old lists. Hopefully, it's a sign of adapting to changes rather then settling for less.

A wise man once suggested that I get listed, and now I suggest you do the same!

So this week I got to participate in 2 interviews for potential ThoughtWorks candidates. The first was a "cultural fit" interview. A group of ThoughtWorkers including myself took the candidate out for lunch where we just talked about things from our feelings and perceptions of what it means to be Agile to the different distinct accents within North America.

It was cool to do the interview as a group. I'm sure we all came away with different ideas and noticed different things about the candidate. But really it was just to see if we felt that the candidate would fit in within a team. Would I want to work with this person?

The second interview was a pairing interview. Eric and myself met with the prospect and locked ourselves up in the boardroom to work through a problem statement. Really it was whatever we could come up with as we were walking to the office. The way the interview is interpreted is based on the experience of the candidate coming in. In this case we wanted to see if the prospect was receptive to ideas, how familiar was he with OO, could he actually jock a keyboard. The interview went well, I thought!

After now having been on both sides of the TW interview process, I started to reflect on my own previous interview experiences...

In high school my buddy Jeremy and I applied for a position at McDonalds in our neighborhood. (Banff Trail what's up!?) We both got a call back for an interview, one after another so we went to the interview together. The hiring manager at the location sat us down together since we knew each other and interviewed us as a pair. It was fun, maybe to much fun... neither of us got hired.

After that I applied at Domino's Pizza, (right on Crowchild Trail, right across from ... "Banff Trail, what's up?") I got a call back for interview, and I showed up straight from school with my back pack and my blue fitted LA Dodgers hat tilted and tossed to the back. I was less interested in impressing the person hiring, and more interested in finding a job that would be fun. I somehow got the job...

In June of 2004, I had just finished my college diploma and still working at Domino's Pizza. I was sleeping in one morning, after working a closing shift at Domino's when I got a phone call.

Person on the phone: "Hi this is... Alex Smith, an instructor at SAIT. I spoke with Gary Funk, and he suggested you to me as a candidate for a C programming position. Would you be interested?"

Mo: "ahhh... yeah of course!"

Person on the phone: "Would you mind emailing me your resume so I can pass it along?"

Mo: "ahhh... yeah of course!"

....

So I jumped out of bed, spruced up my resume (hmm... should I put Domino's Pizza on or not?) in about 20 minutes and fired it off to Mr. Alex, and went back to sleep.

Around noon I got a phone call from a Mr. Sergio...

Sergio: "Hey Mo, my name is Sergio. I just got your resume from Alex and would like to meet with you. Are you interested?"

Mo: "ahhh... yeah of course!"

Sergio: "Can you be down here in about an hour?"

Mo: "ahhh... yeah of course! Down where??"

...

IMG_0055_1 Lucky for me I was a delivery driver at the time, and my car was still operating (somewhat... I miss you Honda!) I slapped on some jeans, and collared shirt and got my butt down to his office. After about an hour, Sergio was showing me the point of sale terminals he was working on and the current code base. He was walking me through parts of the code base that he thought I would need to know about. It turned out that Sergio had a family emergency and had to leave the company... 

So I got my first job as a programmer... it was literally that fast!

I once interviewed at Cambrian House, by a friendly gentleman named JR. He took me to a room with a table in the middle and a couple of people working on laptops. He pulled up an exercise ball sat on it, and offered me a chair to sit on. I don't remember the questions he asked me or what the position was even for... I didn't pursue the job, because I was starting a family at the time and was afraid to take the risk. (no benefits, long hours... startup y'know). On a side note, I later found out one of the people working in the room was a man by the name of Richard Hurst, who's been described as "One of Western Canada's top software developers." Opportunity missed!

I had 2 interviews with IDC. First a phone screen, then an in office meeting with the <something> Manager. I was in awe of his intelligence that I was afraid to ask questions. I was hired then left after a few months. (It wasn't the right cultural, or technical fit for me! Boo... VB6!)

When I had my in office interview at MediaLogic, I showed up in a suit. Man did I feel silly afterwards... I figured everyone downtown wore suits... I didn't know! When I walked in to the office I saw a pool table, with a bar style kitchen, a big flat screen TV, a dart board, with colored walls that can be moved around to change the shape of "cubes". (we later created the super cube for some of the dev team... long live the super cube!)

My in office interview was awesome, it was with the dev manager, Mr. Luu, and the team lead, Mr. Adam. I remember getting fired up when Adam started to grill me on questions about OO, and design patterns. I realized that I had a lot to learn but was infected by his passion. I had a second interview where I was given a problem that tested my knowledge of ASP.NET and ADO.NET and I bombed. My saving grace was that I went and talked to Adam about what I was trying to do, and basically walked him through my thinking. I got the job!

I interviewed at ATCO iTek. It started off with a phone screen, then they emailed me a technical assignment to solve, then I had an in house interview. At my in house I asked if I could meet the team, and the answer was a No. I accepted and then later turned down the job.

I should have learned from my first interview at Domino's Pizza. The moral of the story is... don't just try to impress the person hiring you. Make sure they impress you! Know what you want, ask lots of questions to find out if the place is what you want. If you don't know what you want, it's worth taking the time to figure it out before firing off resumes. I don't mean to sound like I'm a pro at interviewing, I'm not. Based on my experience, this is just how I see it so far...

Today I read...

The Dream Giver
by Bruce Wilkinson

Read more about this book...

A friend recommended this book, and I'm glad I listened to him. I found that when I started reading, I had trouble putting it down so I read the whole thing. The book starts off...

"A Nobody named Ordinary who lived in the land of Familiar."

After that, I realized a lot of this book was speaking about me. It explained the different people in my life and why they behave the way they do. I'm having trouble explaining why I enjoyed this book so much, maybe it's because right now I feel "stuck".

I feel like I've got something in me that's screaming to get out, but I just can't figure out what it is. Some day's I think it's my inner creativity burning to get out, and if I don't feel like I'm able to think creatively and try different things then I'm a sleep or that I might lose that "potential".

I know you can't see it yet, but I will become what I am.

One of the things that keeps me pumped up throughout my day is the opportunity to solve problems creatively. When the opportunity isn't there I feel like I can barely stay awake. Lately I've been struggling to stay awake. My passion for software development is low right now. My motivation to learn new things, and code is still there... but starting to dwindle away.

I'm working on a good project right now. The architecture is laid out, and big changes are a no no. The client is happy, so any suggested changes are kind of looked at with raised eye brows. I feel like a spec developer who gets handed a 7 page document for a story card that I have to implement. It's mostly just creating new screens and updating stored proc's (so far). (I very much dislike having to spend my time in the land of SQL, I am an object bigot.) So for a new dev, it's a pretty cozy job. For me it's not quite my "sweet spot". (I should tell you that it's only been about a month so far.)

Zzzz... I'm finding it difficult to find new and interesting things to blog about, and it almost seems forced these days. It seems like if I want to keep any sort of artistic creativity alive, I've got to do it on my own time. Not on work time!

I'm not complaining about my job, I'm just yearning for the past. Last year was a tonne of fun, at my old job. There was no one to blame but ourselves when things didn't work out. There was no pointing fingers at the people in another department on another floor. We were the team and there was no other floor. We were a tiny team that got to work on some big problems and in the process we got to flex our creative muscles.

Like any muscle if you don't exercise it regularly, it becomes weak. Right now my creative muscles feel rather weak. Today I sat my butt down to write some code, I had plans on demonstrating some ideas I thought of while riding the bus. But once I got started I found myself getting upset, and frustrated with myself. I can't explain it, I was just mad that I wasn't moving as fast as i wanted to be. My ideas were a tangled mess, and I just couldn't sort it out. I was just annoyed and disappointed with myself. (mO, mO, mO... breathe buddy... breathe!)

One of the reasons I was drawn to software development was because...

I suck at drawing!

I've always enjoyed art, music, and literature. When I found something that allowed me to be creative, and something that I thought I was pretty good at, I held on to it. But lately everything seems so familiar, so comfortable, so boring... Zzzz...

I can only imagine what my team members might think if they read this post. I only wish they could see how we developed software during the last few months of my last job. I remember during my phone interview with ThoughtWorks saying that

"If it's not ThoughtWorks, then I'm not leaving my job. I like the guys I work with and I'm having a lot of fun."

If I liked the guys I worked with and I was having fun, then why did I leave? Let's face it... I tell myself it was for the opportunity to grow and face new challenges. Well, I was growing and facing challenges where I was. In the end I realize it was for the money. I was not in a comfortable place, and instead of pushing through, I returned to the land of familiar. So there's the decision... comfort and familiarity or the "dream".

I admit that there were times when I was discouraged about the progress of my old team, but after now job hopping for a few years I see that it had been one of the greatest and most accelerated learning experiences of my life. I couldn't wait to get out of the Waste Land, and not have to worry about money. Now that I'm out, I see how the time in the waste land was actually a season of preparation, but I don't think I stayed long enough to appreciate it.

I've always wondered how much other people make, financially. Not so much because I'm greedy, but more because I don't want to look foolish when I'm asked "What's your expecting salary range?"

Here it is... the big secret most people seem to hold on to.

DataShapers Inc

  • June. 15, 2004 - December. 15, 2006
  • Starting Salary: $30, 000.00 CAD/Year
  • Ending Salary: $45, 000.00 CAD/Year

Imaging Dynamics Corporation

  • December. 18, 2006 - February. 04, 2007
  • Starting Salary: $43, 000.00 CAD/Year
  • Ending Salary: $43, 000.00 CAD/Year

MediaLogic Inc.

  • February. 12, 2007 - January. 11, 2008
  • Starting Salary: $40, 000.00 CAD/Year
  • Ending Salary: $43, 000.00 CAD/Year

ThoughtWorks Inc.

January. 16, 2008 - Present

  • Starting Salary: $55, 000.00 CAD/Year

If anything this should satisfy the person who's been googling "How much money does a software developer make?"

So it's been a lonely 2 weeks at home with no wife and daughter. Allison and Adia went to go visit grandpa for a couple of week while I was supposed to be at ThoughtWorks immersion in India. Not only that but we still don't have internet/phone/cable hooked up at our place yet. I'm not missing the cable or phone as much. But life without internet is...

"No cable, no phone, no internet makes mo go <something, something>..."

So not only did I not go to immersion, but I also sat my butt at home alone reading poetry.

In the Depths of Solitude

I exist in the depths of solitude pondering my true goal.
Trying 2 find peace of mind and still preserve my soul.
Constantly yearning 2 be accepted and from all receive respect.
Never comprising but sometimes risky and that is my only regret.
A young love with an old soul.
How can there be peace?
How can I be in the depths of solitude when there are 2 inside of me.
This duo within me causes the perfect opportunity.
2 learn and live twice as fast as those who accept simplicity.

- Tupac Shakur

To read more check out....

Tupac Shakur Legacy
by Jamal Joseph

Read more about this title...

Poor mO!

So where the heck have I been? Well it's a brand new year and it's been busy. Right now Alli, Adia and I are living in a spare bedroom at Alli's mom's. It's been kind of hectic moving out of our old place and shoving everything we own into a garage but also fun at the same time. (define fun for us, mO!)

This is my final week of work at MediaLogic and it's a little sad to think that I wont be walking in to the ML studio next Monday morning, but it's been fun. I received a lot of kind feedback from my last post. Thank you to everyone who took the time to write and leave comments, it's nice to know that the universe cares and that there are kind people out there. I hope I didn't paint a grim picture of being underpaid and up against all odds. In fact I've had a pretty good life and really the financial pit falls from last year are from my own doing. In fairness to ML, I receive a decent entry level salary!

School and ambition can be expensive, warn your spouse!

In other news, I stopped by the Calgary ThoughtWorks office today to drop off 2 passport photos and a copy of my driver's license. I was all set to go to the 2 week immersion course in India, but I found out today that wont be happening. I'm a little disappointed, but at the same time flattered because they're tossing me on to a project ASAP. Which means the ThoughtWorkers who were part of my interview process have faith that I'm ready to leap on to a project. There's still lots of time for travel. *sigh*

I did find out which project that I'll be jumping onto and who I'll be working with. I'm so nervously, excited that I can't wait to jump in and meet the team, but I also feel like I could vomit all over myself at the same time. (hopefully it doesn't happen at the same time!)

I walked out of the office with a copy of "Pragmatic Version Control" by Mr. Mike Mason. My stack of books is increasing. I've now got "Extreme Programming Explained", "Hackers and Painters", "Introduction to Algorithms" and "Pragmatic Version Control using Subversion" waiting for me.

So I'm filled with many emotions these days. The transition between jobs is definitely a weird place to be in, especially when you're leaving a place you enjoy working at. It's definitely important to me to keep in touch with the guys at ML because I feel like I've done a lot of growing with them, and it also makes me want to reconnect with some of the people I used to work with.

I can imagine what it might feel like to be a young rookie entering the big leagues. If I get some ice time, I might even score a couple!

Some thoughts that go through my mind are?

"Did I over sell myself? I don't think I did. I tried to be honest about my skill sets. I guess if I did, they'll be exposed pretty quick. So I will have to ramp up quickly."

"I hope I don't disappoint the new team. I'm not sure what they're expectations of me are, but I better work my butt off to exceed them."

"Will I make it past the probationary period? Will the team even like me?" 

I know these are just thoughts and most of them I shouldn't even worry about. Just show up, work hard and be respectful. I still can't help but think the above thoughts.

I imagine I'll be the youngest on the team, I'm kind of used to it now. I was the youngest person to graduate from high school in my graduating class. I was always the youngest person in my class all through grade school. The benefit has always been that I got to hang out with the older kids. The disadvantage is that I got to hand out with the older kids. Sometimes it feels like I might have grown up to quickly, and sometimes it feels like I haven't grown up quick enough.

I suppose my age is my advantage, and that doesn't last for long. There's always going to be someone faster, younger, and smarter then me. Hopefully, that doesn't deter me from attempting to reach my potential but also doesn't allow me to grow an inflated ego.

So what does all this ranting really mean? I guess inside I'm still just a 23 year old kid.

It's been an amazing year of ups and downs. Our family is fortunate that we've had many more high's then lows and sometimes I lose sight of that. The new year is a great time to reflect on the past year and to look forward to the new year. I've been forming this post in my mind for a while now. Thinking back to everything our family was able to accomplish. And if you're interested I'd like to walk you down our journey of 2007.

In January I was working at a place that I didn't feel comfortable in. It was stressful because I just wasn't happy with where I was, and where I was going. I was a below average software dev and didn't know which direction I wanted to go or whether I wanted to seriously take on software as my craft. I eventually decided that I was unhappy because I didn't feel that my skill sets were up to par and that I really wanted to jump into this exciting world we call .NET development. The world of C and VB6 quickly lost it's charm and a dispute with a co-worker about use of racial slurs was the end for me. I developed the fire in my belly to get better.

I began the first of 5 courses at SAIT to work towards a C# programming certificate. I started heavily reading blogs, in particular JP's. I have to say that his passion for development was so contagious that I felt I truly could excel at software development and I was having fun while doing it. As I finished off course textbooks one after another I came across a post by Justice Gray where he planned to read several books in a span of several weeks. I looked up JP's book list and made it a goal to devour every book on that list. I haven't finished them all but I have read quite a few of them now.

In February I started work at MediaLogic as a full fledged C# developer. I'm fortunate that they saw potential in me and took me on as a junior to help me grow. The environment here at MediaLogic allowed me to flourish in ways that I never imagined possible. I also started to listen to more and more podcasts at this time. It became a ritual to either listen to pod casts or read books while riding the bus to and from downtown every day.

In April, I attended that Calgary Code Camp. I was looking through my notebook the other day and found a slip of paper that had a schedule for presentations that I wanted to attend at the Calgary Code Camp in April. The slip had presentations by Terry Thibodeau, James Kovacs, Jean-Paul S. Boodhoo, Steven Rockarts, and Donald Belcham. As I read over the slip I realized that at the time I wrote on the piece of paper and at the time I sat through they're presentations I never thought I would be able to actually get to know some of these people or even be able to fully understand some of the content they delivered. I've now had the privilege of shaking hands with many of the above mentioned names and I think (I think...) some of them may even know me by name.

In August, I stared at what I thought would be a record low bank balance. I remember feeling quite scared, feeling like I had no control and was quite worried about how I would be able to keep our family a float. I remember a lot of sleepless nights, which I now realized helped me excel even faster. Failure was not an option.

In September, I read a couple of books by Robin Sharma and attended a live presentation by him. I remember thinking that I thought he would be taller. But it seems some of the greatest minds make up in thought for what they lack in height.

I also remember staring that the ThoughtWorks web site for weeks reading through everything that I could, contemplating about whether I was ready or whether I would make the cut. I read about Martin Fowler and about a company who's values were inline with my own and offered opportunities that I could only dream of. I eventually decided to take the plunge and apply, I figured if I didn't have what it takes at least I want to find out what I need to focus on.

In October, I spent the month heavily studying towards my first MCTS exam. I travelled up to Edmonton and shook hands and had lunch with the legendary Justice Gray, where he introduced me to several other passionate developers up in the Edmonton community.

In November, we celebrated my daughters first birth day. I completed the first exam towards an MCTS designation, I attended the infamous week long Nothin' But .NET Boot Camp, had my in office interview at ThoughtWorks, began my fifth and final course at SAIT, and caught the very last presentation at the Alberta Tech Festival by Gerard Meszaros.

In December, we celebrated a wonderful Christmas filled with family and joy. We hit a new record low bank balance but realized that it might be the last for a while when I received an offer for full time employment at ThoughtWorks. The new year will no doubt be one of the most challenging ones so far. Bring it on 2008!

One of the main reasons I want to become a ThoughtWorker is to be able to work with a diverse range of people from all walks of life. Where there is no norm, only exceptional. I want to also be able to openly share my successes and failures with a team and not feel terribly good or bad about it. So as a team we fail, but also succeed, quickly.

In order to be successful, you must surround yourself with successful people. For me it's not only about becoming a world class developer, but also a world class father, a world class husband, and a world class person.

"When you were born, you cried while the world rejoiced. Live your life so that when you die, you rejoice while the world cries." - Robin Sharma

I've thrived on trying to be the type of person who breaks stereotypes. Although, I found that when I was younger I was molded in to the type of person that people expected me to be. Not the person I wanted to be. This was totally disadvantageous and did no good for myself or others like me. I was fitting the mold that others had shaped for me.

I soon found that I enjoyed defeating peoples expectations of me. When I felt that subtle feeling that my instructor didn't think I would last or that I fit in, I had to prove that not only could I last, but that I could do it better.

Here's another reason why I want to become a ThoughtWorker:

"I like to think of myself as without a prejudicial bone in my body, but when I do I remember this story. I was visiting a branch of a large multinational in South Carolina. A black man, somewhat shabbily dressed, slouched into the meeting room. My mind immediately classified him as a cleaner. Within a few seconds he introduced himself as the Vice President of technology. Although nobody knew of my pre-conscious blunder, I've often pondered since why I made it. Was it his way of walking - more of a slouch than a confident stride? Was it because I was aware of being in the South? I can't escape a sure feeling that wouldn't have made this classification if he was white. Now I could excuse myself by saying that this occurred ten years ago, but frankly I have little confidence that I wouldn't repeat this error today." - Martin Fowler, Chief Scientist ThoughtWorks

I really encourage you to read the rest of this post at Mr. Martin Fowler's bliki.

I think it takes a lot of confidence to admit to failure or lapses in judgement, but by doing so you allow yourself to learn from it. I've done a lot of silly things in my life, in fact writing this blog is probably one of them. But it's who I was, it's who I am and it's helping to shape who I become.