Where Am I?

Once again after getting fired up to write a slew of blog posts, I’ve disappeared off the face of the earth. Where did I go?

Well, it’s been an exciting year-or-so. Semester 2 of 2012 was very busy, and myself and various teams finished off various assignments for university. The large team software project (for which we were using agent-oriented programming and the Prometheus design methodology) went very well, and we won the award for best large team project at our expo night (out of three teams, but still).

Then I got to have a short break over Summer, but somehow snuck into being accepted for an internship with Google, and since Sydney was full, I got upgraded to the Googleplex in Mountain View! This is now without a doubt the highlight of my resume, and it was an enormously educational experience, especially since it was also my first ‘real’ overseas trip (that is, excluding New Zealand). I was working on upgrading an existing internal web application, which was definitely relevant to my interests, but unfortunately I can’t show anything off.

One of the most valuable things I learnt from working at Google is that I don’t want to work at Google. Yet. Without a doubt, it lives up to all the amazing stories you’ve heard and it’s perhaps as close to corporate paradise as a software developer will find, but I’m not at a point in my career that I want a corporate paradise. Despite all the free food and events and amazing people, I spent most of my time sitting at a desk writing code for other people. I learnt that I want to write code for myself; that I want to work on projects that are of total personal interest to me, and I want to direct their development.

Basically, I want to run a startup. So that’s what I’m going to do.

I’ve been watching Steve Blank’s How to Build a Startup course on Udacity, and it feels right. It feels like the kind of thing I want to do, and sits outside my comfort zone in the right way. I’m at a stage of my life that is ideal for taking this kind of risk: I have no job commitments, no family dependents, enough money to survive on, and most importantly, a project at uni with a good team that is starting to get off the ground, and the project owner is very keen to spin it off for commercialisation. I think it has real potential, so I’ll be working full-time next semester to build out the foundations a little more funded by a convenient government grant. It will be at least a year before it’s ready for sale, but I’m cautiously optimistic, and it deserves at least six months (of paid work!) to give it a go.

On top of that, I’m planning on reviving Buffex from its slumber on the side. This has come about for two reasons: I’ve been playing with Google’s Dart language and I’m liking it a lot; and a friend found the holy grail of open financial data sets on Quandl. That gives me everything I need, and it’s already coming along quite nicely. My goal is to launch an MVP for that in about 3 months of part-time work, though I haven’t done any scheduling yet, and that’s probably infeasibly aggressive. But I’ll definitely try to keep a record of the development lifecycle, as this is as likely as ever to be my first real self-driven product to come to market (with a business plan, anyway).

So I should be back on the air, but I won’t make any silly promises. I’m blogging because I know it’s a good habit to express one’s life story somewhere, even if nobody reads it. If nothing else, I’ll be back to read it in 50 years. Hopefully I didn’t let you down, future-me!

Goodbye, IBM

As of yesterday (I believe the next day starts around sunrise, not midnight), January 26th, Australia Day, 11pm, I completed my internship with IBM Australia. This experience was easily one of the most significant of my life, so having handed my gear back in today and wrapped everything up for good, I feel like writing a brief report about the whole experience.

My internship was full-time for 12 months, and was for all intents and purposes a ‘real’ job. I would catch the train into the city and walk to the office each morning, put in a full day of productive work, and head off home in the evening. If you’ve ever had a full-time job (or even if you haven’t) this probably doesn’t sound very exciting, but it was for me, because it was the start of a new way of life, the way I knew I would spend most of my life after graduating from university. At first I was enamoured at how much work I was able to get done by putting in a solid 8+ hours each day, but by about month nine the novelty of working all day on all weekdays began wearing thin. This was a remarkably long time, I gathered, as my friends, family and the other interns found it difficult to believe any job could be this good.

The critical factor in my enjoyment was that I loved my work. I was developing a complex internal Rich Internet Application (RIA) with Adobe Flex, and since I was working to implement my own manager’s vision, I was more or less in complete control of the development; a team of one. This might not sound very attractive, and indeed it made those all-important networking connections a little harder to come by, but there were an array of benefits too:

  • Having taken a prototype and effectively started from scratch, I had the freedom to design the structure of the application from start to end, meaning I could actually make it good – decoupled, flexible, extensible, scalable, all the things I would need it to be if I was going to be working on it for a year. What’s more, as the sole implementer, I learned a lot about all of these things in the process.
  • My choice of technologies (I ended up using Flex, Swiz, MySQL, PHP and XML, needing a little HTML and CSS too). I certainly learned a lot about all of these as well.
  • The freedom to work any hours I liked from anywhere I chose (including home), just so long as the work got done. This kind of freedom is exactly what makes you want to get the work done, and to the best of your ability.
  • And, of course, I get to take all the credit ;) .

Very long story very short, it was a very, very good year. My manager was sublime, always challenging me to do better and offering all the support and information I could hope for, all the while being completely fair, friendly and approachable. Unlike the ‘traditional’ vacation/internship job roles, I was never stuck printing photocopies or making coffee; every day I would come into work, sit down and start creating, extending, expanding my own little project. The feeling of progress was palpable as the application gradually came together before my eyes.

It was everything I could have hoped for from an internship and more. I learned so much about the IT industry, IBM, the software delivery life-cycle (SDLC), software engineering and programming, and just the corporate world in general, and I now have the development of this application as a major achievement next to my name. All of it has worked wonders for my confidence, and I feel as optimistic about the future as I ever have.

I also feel compelled to evangelise IBM as the amazing company they are. They may not be as trendy as Google or Apple, but they exhibit at least as great a commitment to innovation, quality and excellence. This is reflected by the fact that they’re one of the most successful companies in human history – this year is the 100th year they’ve been around. That’s a very large number.

If you’re a bright, motivated student looking for an internship opporunity, you could do much worse.

And I know that personally I couldn’t have done any better.