Posted by Skrud at Friday, November 23rd 2007 at 8:00pm
This past summer was undoubtedly the most intriguing, influential and fun period of my life I’ve ever had. Looking through my archive of pictures in iPhoto include trips to the Biodome, the Imagine Cup experience, no less than two trips to New York City, and dozens if not hundreds parties. At the centre of it all is the internship I held for four months at IBM. I had a blast working there, I got to meet some incredibly smart and interesting people, and I learned more about opportunities out there than I thought. I could write pages upon pages about my experience as an Extreme Blue technical intern – but I’d rather talk about it person. Instead, I’ll tell you how this summer changed me completely.
I’m moving to Ottawa
The biggest surprise of the summer came to me during my first week of school. I got a call from IBM offering me a full time job, starting July 2008, in the Garbage Collection team for their Java Virtual Machine. I remember showing up to my interview, barely having had time to read through a research paper on “Uniprocessor Garbage Collection Techniques” and wearing jeans and a t-shirt that read “I’m in it for the π”. They asked me tons of questions on C programming – which I live, eat, sleep and breathe. It was a long interview, about two and a half hours! But I got the job, and as of July 2008, I’ll be moving away from my beloved Montreal.

I can’t even begin to describe how intimidating it is for me to be leaving, and it’s something that’s been consuming my thoughts since September. Naturally, I should be nervous… and I still have quite a few months to psyche myself up for it. But it’s going to be a huge change. On the one hand, I’m relieved that I don’t have to spend the next 8+ months looking for a job. I understand that I’m extremely lucky – but I feel like I replaced one burden with another: the anxiety of leaving!
I know I shouldn’t be too worried about moving to Ottawa. First of all, it’s not at all that far from Montreal. It’s relatively cheap and easy to get back here for the weekends and see all my friends. I already have some great friends in Ottawa, so I won’t be starting completely from scratch at building a new social network. Ottawa also has a great collection of pubs, despite its small size. And I also know that I won’t lose my current friends, or my team. I know that I have the best set of friends and that a mere two-hour drive isn’t going to get between them and me. So why, then, am I still so anxious?
At the heart of the matter, I suspect, is the fact that I’ll be leaving school. Concordia has been a wonderful place for me. I’ve learned so much, and made such close connections with so many people. I’ve gotten involved with a number of student associations, like ECA, and I’ve given up countless hours volunteering for all kinds of events. The student community in Engineering at Concordia is a fabulous one, and it pains me to have to say goodbye to it and I know that when the time comes, it won’t be easy.
I’m worried that I’ll be forgotten. These days, I can walk through the Hall building and run into tons of people whom I know, that say “Hi!” and smile as I walk past, and it makes me feel good to be recognized. I suppose that’s what happens after spending close to five years meandering through the same corridors. I know that once I’m gone, life at Concordia is going to continue to move along and move forward, and that it’ll do so without me – and that’s what bothers me. I’ve been personally involved in so many things here, I’ve had a hand in organizing so many conferences, trips, activities, and parties that it will feel weird to me to see those same things happening without me. Maybe I’m just being selfish.
Everything that’s going on now is the current stage of a chain of events that started way back during the CUSEC 2007 conference. The catalyst was Dominique, and the impact that she has had on my life in the past year is profound. She convinced me (and she actually did have to twist my arm a bit) to apply to the Extreme Blue program in the first place. At the time I thought it was just going to be a summer job, but look at what came out of it! When I was working at IBM this summer, Dominique was the supervisor for both Extreme Blue teams in Montreal (and she was great to work with!). And when she found out that OOPSLA was coming to Montreal, it was Dominique who told me about it and mentioned the Student Volunteer program, without which I never would have gone. I’ve really got to find a way to thank her properly. I don’t think a mention on my blog counts for nearly enough!
Tags: 2007, anxiety, events, extremeblue, ibm, work | 4 comments
Posted by Skrud at Sunday, June 10th 2007 at 10:28am
Here are some of the things I’ve been up to recently:
- Moved out for the summer, and am now living downtown, in the McGill ghetto, with Harley. What’s so awesome about the ghetto? I’m within easy walking distance to all the Crescent bars and all the St-Denis bars. I can get to the Plateau as easily as I can get to Concordia. And I’m only two blocks away from Benelux.
- I started working at IBM in the Extreme Blue program, and it’s been incredible so far.
- I was elected VP Academic of the ECA and already started working on getting stuff done for the new year with an awesome team of execs.
- As I write this, I’m waiting for a taxi to come take me to the airport. I’m off to Seattle for a full week to participate in the Imagine Cup North American Finals.
I’ve got so much more stuff planned for this summer I just hope I’ll have time to do all of it!
Tags: events, metablogging, school, summer, travel, work | no comments
Posted by Skrud at Wednesday, September 27th 2006 at 10:52am
I’ve wanted to work at Google for a long time, but after reading Stevey’s latest post about working at Google, I’m that much more determined.
I’ve basically narrowed down my future options to the following, in order of preference:
- Google
- Microsoft
- Amazon
- Yahoo
- Apple
- Work at a start-up
- Graduate School
Tags: future, life, work | 12 comments
Posted by Skrud at Wednesday, September 20th 2006 at 10:24am
Okay, this is the second to last time I blog about my job. I swear. The next time will be after it’s over.
In The Beginning…
When I started working here I roared through the training programs in one week instead of two. During the second week, I familiarized myself with Java’s Swing GUI library. I’ve never done any GUI programming before. By the end of the second week I was placed on a project that required me to focus a lot of energy and brainpower on designing a solution to a pretty complicated problem. The problem of course was compounded by the fact that my only window into the requirements was my supervisor, whom I had to interrogate in order to extract a precious few tiny nuggets of useful information.
Designing the architecture and framework were a very stimulating set of tasks. I was forced to call upon all the knowledge I learned in school and continously consult references on design patterns, methodology, best practices and anything else. I learned a ton of information and gained a lot of experience and I’m extremely proud of what I came up with. I think my superiors were pretty impressed, too.
The warning signs should have gone off in my head when I realized that, having been hired as a Java programmer, I didn’t have Java installed on my workstation. It took a week to get the form approved to download and install Java. And if I didn’t have Java, I certainly didn’t have any conceivable means of source control. It was even more of a hassle to get CVS set up. However they explained this to me by saying that I’m the only person that’s developing in our particular office. All the rest of the development is done – well, it’s classified. Apparently they have version control and Java over there.
I implemented my framework in Java, and in the process became extremely familiar with the Java standard library, which I had never really explored in depth. I’ve discovered some things that I really like about Java, namely the existence and organization of much of the library – and some things that I really hate. The implementation didn’t take long, but the bulk of my internship so far has been a cycle of designing -> implementing -> reviewing -> refactoring -> documenting. By now it’s a pretty robust and relatively well-designed piece of software.
For some reason, though, I’m the only person that works full time on this project. I think they expected me to finish this closer to the end of my contract, which is in December. If that’s the case, then I was a good four months ahead of schedule.
Lather, Rinse, Repeat.
That was three weeks ago. Since then it seems like they’ve been scrambling to try and find things for me to do, most of which involved simple, menial, quick little tweaks to the framework. I learned how to use Aspect Oriented Programming with AspectJ for a particular library, which was interesting and fun but didn’t even take me an entire work day. Granted, I still need more experience and practice with it, but in order to do that they need to give me more things to do that require me to apply it.
On the one hand I appreciate that they’re willing to listen to me and let me experiment with things like AspectJ, and leave it to me to provide a case for using it and show that it has benefits to programmers and productivity.
But now I’m out of things to do again. These past few weeks have basically consisted of me tracking down my supervisor (not necessarily an easy task) and demanding that he give me something to do. Invariably I’m awarded some easy, mind-numbing task – or a set of them – that won’t take me more than a couple of hours, after which I return to the hunt for my supervisor and demand more work. Repeat ad nauseum.
Generation Gap
Worst of all is that fact that I don’t feel like I belong here. That’s not to say I don’t like the people – there are a friendly bunch of relatively new employees that I enjoy hanging out with, and in general the people are friendly and nice – but that there’s no one that shares a common interest with me or even a passion for programming.
Most people, it seems, have decided that once they’ve graduated from university, they no longer need to learn anything. These are day-coders, people who know how to program only because it’s part of their jobs, not because it’s something they love to do. As a result, if someone started working here say, 8 years ago, then the last 8 years of improvements in software methodologies, processes and techniques are completely over their heads.
The biggest result of this problem is communication. Case in point: Design Patterns. Design Patterns alone aren’t necessarily anything new, fascinating or unique. They’re a set of idioms that people have been using in their software in order to solve certain common issues and problems. Design Patterns were around for a long, long time before they were called “Design Patterns”. But the biggest benefit of design patterns is precisely the fact that they give a name to the common design techniques that are used everywhere. Design Patterns are a vocabulary. In theory, one developer should be able to say to another “that’s just a Facade,” and the other developer will instantly understand the layout of the source code. You could name your classes something like “ReadyThingyState” and “BrokenThingyState” and a developer who knows the design patterns vocabular will instantly understand that you’re using the State Pattern.
Unfortunately, that’s not the case. There’s only one other developer here that I’ve found who’s aware of anything that’s been used after the 1970’s – but he’s not working on my project.
Future Employment?
Needless to say, this entire experience has made me seriously reconsider the prospect of graduate studies. I’m beginning to worry that the entire software industry is littered with monotony and day coders. For my own sanity, I need to find a niche where I can retain my passion for software engineering and design, and be around people with similar passions.
My naïveté tells me that I might be able to find such a niche at Google. Joel Spolsky would have us believe that his company, Fog Creek, is a place like that. In fact, he’s scolded and railed against the way most companies conduct internships, describing more or less a utopia for passionate software engineers. (Unfortunately one needs “permanent legal right to work in the U.S.” before even applying for an internship there). Microsoft also has a reputation for treating its developers well, however there are mixed reports about that.
Maybe I’ll be happy at a small start up, with a concentrated group of passionate people.
Or maybe academia is the way to go for me.
Tags: internship, rants, school, work | 4 comments
Posted by Skrud at Monday, September 4th 2006 at 4:08pm
Today is Labour Day, meaning that tomorrow is the first day of classes for just about everybody, summer is over, and it’s back to the grind for another 4 months until winter break comes along.
I spent the majority of the summer – no, the entire summer – sitting at a grey desk, surrounded by grey cubicle walls in an office with a grey carpet, grey walls, and an off-white ceiling (with grey highlights). Can you say “stifling”? My life has become some kind of analogue to Office Space (minus Lumbergh).
My work term started off alright, since I was pretty much designing a system from scratch. That’s challenging, interesting, fun work. Unfortunately after a few months I realized that my only source of eliciting requirements was interrogating a co-worker and trying to figure out what exactly I was supposed to be doing. found that the only way to get any sort of useful answer out of him was to ask the same question 3 or more times, like Mustafa in Austin Powers. Somehow I managed to get something working that my superiors seem to think is working great, yet I’m running out of things to do and they’re running out of stuff to give me. The challenge quickly left the project once I had learned just about all there was to learn. Now it’s little more than mundane code-monkeying around and updating documents.
My Ego
My ego is massive. I need a good kick in the ass, and I know it. I was hoping my internship would provide it, and that I’d feel dumb and worthless and that it would push me to learn and try harder. I was hoping they’d make me realize that I really don’t know anything and that I’ve still got a long way to go if I want to be a successful Software Engineer. At the best case I was hoping to be mentored into a better designer, and at the worst case been left feeling utterly useless.
Instead, the internship provided my big head with a can of helium. The work is mostly incredibly easy and I can do it with my eyes closed and one hand tied behind my back. On the one hand I like that people listen to what I have to say, but I don’t like the fact that they don’t challenge me. I’m the only person that works full time on my particular project, which means that I have no one else to really talk to about it and it gets pretty lonely sitting in my cubicle in relative isolation. My boss told me that I was making so much progress with the project that they’ll just keep me on it even longer. Great. I’d rather hear “Okay, let’s find you something more challenging.”
Mind you, last week I finally got my first glimpse of how everything is supposed to fit together, that and they did reveal to me that I’m actually working on the most interesting project in the entire department. While that did make me feel much better (and I know that what I’m working on is actually pretty fucking cool), if this is the extent of interesting things that goes on at this company, I’m going to be looking somewhere else for a career.
View of Software
One of the biggest problems I have at work is the fact that there are barely any geeks. It seems to me like most people have little if any formal training in computer programming or design techniques and are actually specialists in hardware who have ended up learning programming on the job. The end result is that few people are actually passionate about programming or software design and that leaves me with few people that I can relate to. There’s maybe one person who’s actually enthusiastic and interested in topics related to software engineering and I can talk to about design patterns, differences between programming languages and methodologies and ideas like aspect-oriented programming.
I think the reason behind this attitude is mostly that Lockheed is not, technically speaking, a software company. They’re an engineering firm, and I think the company itself views software as a kind of “glue” that links together their various forms of hardware instead of an actual product in and of itself. I think software is horribly underestimated here, and when considering a long-term career I’d like to be in a place where software is the primary focus, not a second-class citizen.
Corporate Policy
Being a ridiculously huge company, there are a lot of coporate policy related problems that drive me up the wall. This goes above and beyond installing software on my workstation. The first thing that got to me was the fact that I can’t check my GMail at work. At first I thought “I can live with this, it’s only an eight-month internship,” but now that I’m halfway through I’ve realized that it’s a much bigger annoyance than I originally thought. I’m not an idiot, I know I wouldn’t abuse the privilege of checking my personal e-mail at work, but not being able to is an incredibly frustrating feeling. The same thing goes for instant messaging, but to a lesser extent.
I find myself spending the majority of my workday wondering what e-mails I received and what’s written in them. I get completely distracted by the fact that I feel completely and utterly disconnected from the rest of the globe, and I feel like the world is spinning ahead and leaving me behind. A software company, Microsoft, for example, would tend to have much more enlightened views on this topic. In fact, in a recent interview with Microsoft Lead Design Anthropoligist, Anne Kirah, she says:
The conflict arises because the employers’ benchmarks of productivity are based on something that doesn’t exist anymore. In the old world we measured productivity by just sitting your butt down 9 to 5. We were coming to work 9 to 5, what else would you do at work except work? And I’m still of that mindset myself because I am of the older generation. I find it very difficult when I’m bombarded by instant messages, I find that I just fracture, but that’s just me. But what often happens is that we translate our own experiences and say ‘well, I can’t do it so nobody else can do it. If they’re doing it, it must mean they’re not focused.
What we actually find is that these kids have grown up with it; they have grown up learning how to be social and work at the same time, that’s what they did when they did their school homework before they got their first job. When, in tests, mobile phones have been taken from them or instant messages blocked - when their brains are supposed to be studying - they can’t focus. These kids can’t focus! Now I think that’s absurd, but I have witnessed it over and over.
Now I could always set up a proxy on my home computer or somewhere else and use that, but there’s something inherently dishonest in that kind of action that prevents me from doing it. Besides, I’d probably get into some serious trouble if they found out about it.
I’m hoping someone makes The Programmer’s Bill of Rights into law one day.
Redeeming Qualities
The internship isn’t all bad though. I did learn one thing for sure, which is that I don’t think I can work at such a large company where everything is governed by hundreds of thousands of coporate guidelines and policy and politics and bureaucracy. I’d like to work for a company that understands how to treat its geeks, like Microsoft or Google, and that I’d like to work at a company where there are more like-minded people that I can relate with. I’ve been missing school a lot, because I know there are people at school who’ll take me up on a debate about Java or design or anything.
The biggest redeeming quality of the job are the people. Everyone is super-friendly, and there’s a whole slew of “newbies” that got hired about the same week that I did, so they’re all young, fresh out of college, friendly, and easy to get along with. Most of these people also seem like they’re trying to find their footing in the job market and figure out a place where they can fit in. I know I don’t feel like I fit in at Lockheed, but I’m sure there’s a place for me somewhere out there.
Tags: school, summer, work | 3 comments