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!

A Post A Day Keeps The Procrastination Away

I always say it, right? I’m going to start writing things again! I know it’s a great idea, that it’s beneficial in all kinds of ways, and that it only takes a few minutes (depending on how pedantic I’m feeling). It’s a creative outlet that takes weight off the mind and in doing so shares that weight with others who might have a use for it. Blogging is a thinking person’s hobby.

But inevitably I don’t. Why?

Doesn’t matter. This time it’s for real. “Hah!” you may exclaim, and you may even be right to do so. However I have a comrade in arms now, a little Chrome extension called Blockr which doesn’t let you use the internet until you’ve written X words or made Y code commits for the day. In effect you’re buying internet time by achieving goals you set for yourself. Pretty neat if you ask me. I discovered it via Lifehacker, another neat source of inspiration I’ve been growing increasingly attached to (life is too important not to hack into shape).

Blockr reminds me of the Beeminder concept of TagTime, in which you’re occasionally and unpredictably accosted by a popup box asking what you’re doing right now. Over time, that random self-reporting will form a statistical picture of what you’re likely to be doing at any given time, and thus it can subconsciously (and occasionally actively) drive you to work on ‘the right things’ at the right times.

Well, I’ve decided time and time again that writing some words about what I’m working on (projects, challenges, technologies, general trivia) is a good thing to be doing, so let’s see how it goes. I’m doing so many varied and interesting things these days that I’ll always have something to write about, even if it doesn’t seem terribly exciting at the time. Story-telling is an art, and arts take practice.

So here we go. Wish me luck.

Farewell Semester 7

Agile wall

Smells like progress!

Today marks the end of my seventh semester of university, having finished my last exam. Hooray! What happened?

First of all, exams went very well! Not much more to say there.

‘Twas a good semester of subjects, with some fundamental theory but unfortunately very little coding. Linear Algebra was surprisingly engaging, and Software Requirements Analysis and IT Project Management were about what you’d expect: valuable but fairly dry. Looking forward to some dirtier hands next semester.

Our year-long software project has been pretty exciting! Working with the Nossal Institute, we’re developing an agent-oriented medical platform with applications for diagnosis, treatment and drug dosage calculations. After a lengthy requirements engineering period we’re now digging into the code, which is almost all Prolog (I know!). Watch out for us at Endeavour, and in future posts right here! I’ve been learning a lot about agent-oriented software engineering, and it’s more than a little fascinating. I look forward to exploring it further.

It was also my first semester of tutoring first/second year students which was an experience. It really provides a fascinating perspective on the education process. Kids these days… Actually it was fantastic, I had two great classes full of (mostly) enthusiastic students that I tried to encourage as much as possible. It’s very rewarding work. I probably won’t tackle it next semester however due to time constraints, due in large part to…

MUtopia! MUtopia is a university research program I’ve been working on as project manager and software engineer for the past few months, and it appears to have a very bright future lined up. In a sentence, it’s a sustainable urban design, simulation and 3D visualisation web application. It can be used to model planned urban developments, run cutting-edge research simulations and analyse the outputs under custom scenarios to perform cost-benefit analyses. Check out the brochure in the link for some more details.

This is most exciting because come the end of July, we’ll have doubled our development team from two to four, and I’m going to be running it as an Agile project. Yes, that means we’ll have our own Agile wall! I’m looking forward to the challenge of managing a real project with the freedom to experiment. We’ll be having retrospectives every week, so hopefully I’ll have some reflection to post up here.

Whew.

So now I have about a month of holidays, but I won’t be getting a moment’s rest. Not only is MUtopia being kicked up to roughly full-time work over the break, but I’ve got a bundle of side projects lined up to attack in any time I have left over. How people manage to be bored in this day and age is beyond me. I’ll try to keep this blog updated with what I’m up to as I go. I know I keep promising that, but hey, n’th time lucky?

Excitement!

Photo courtesy of http://www.gerrykirk.net/options-for-team-task-board-when-one-team-member-remote/

Back and Back

You’ll all be glad to hear skiing was a success, and that I’m back behind the wheel. Unfortunately (for this site, at least), I’m also back to another semester of university, so I won’t have nearly as much time to update things as I have in the past month. The silver lining is that I’ll be learning a whole bunch of exciting, new (hopefully) things about software engineering and Web development which will make me more productive (and interesting) in the future.

And yet there’s so much to do and talk about! I’ll keep this post nice and generic, but know that I have a whole bunch of exciting projects just waiting for a chance at development, and come the end of semester I plan on making as many of them happen as possible over the 3+ month holiday. In the meantime, I’ll keep working on Piemaster projects occasionally, and writing about some of the things I’m learning. Who knows, it could even be a good form of revision.

We also just hit the milestone of 1,000 visits! Total. For the whole site. Ever. That may not sound like a very big deal to anyone else, but it’s a nice achievement for me, so I’d like to thank each and every one of you who was responsible for a hit. I’m extremely happy to have been able to help a few different people with a few different things while entertaining myself along the way, and I hope I can keep it up. Now that I have something to work for, there will hopefully be fewer news blackouts. I love you guys!

Ski Free or Die Hard

Ski Free screenshot

That's going to be me! Hopefully sans enormous rocks. And yetis

So today I decided, what with it being winter and all, that… no, sorry, I’m not remaking Ski Free. Yet. I’m not legendary enough to tackle such mind-bogglingly superior game design.

However I will be away skiing freely myself up Mount Buller for the next week, so there’s unlikely to be any updates until after I get back.

When I do get back, hopefully I’ll have some details to reveal of a couple of projects I’m working on alongside Jario. Jario has served its proof of technology purpose excellently, and I’ve been having a stab at converting that codebase into something different without any initial planning to see how easy it is to do. At present it’s hard to say, since most of my effort is going into integrating the JBox2D physics library via Fizzy (re-maintained), which poses some conceptual challenges of its own, but is starting to work very nicely. I’ve always wanted to work with a physics engine, but never have, so it should be fun.

Anyway, thank you to anyone reading this, and I’ll see you bright and early when I get back!

Back In The Saddle

With semester one of university now completed (after my final exam yesterday), I am once again free to kick on with development of the good ship Piemaster and all that sail in her. There’s so very much work to do and I’ve been looking forward to it for quite some time now, having played around with a few new technologies during semester.

One of the primary objectives I hope to complete is to start posting more regularly about interesting new things as I come across them, and retrospectives of my experiences as I have them. I will try even harder now to make time for these, despite having said that repeatedly before.

I’ve also started working on a new game (a simple Asteroids clone at first, then something more sophisticated) taking advantage of a beautiful new framework I discovered, which I will write more about later. I’m putting development of my productivity-type applications on hold for the holidays and diving headlong into game development, for a few reasons: it was (indirectly) the topic of a subject at uni last semester; it’s much easier to get feedback from myself and others; it can more easily be defined as “finished”; and I just really enjoy creating games, whether in my head, on paper or with a computer. There should be plenty to write about along the way.

So that’s enough for now, and I’ll expand on a few of these points in the near future. Welcome back, and I hope to be able to provide a few things of real value within the next 3 weeks.

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.

Happy New Year!

Happy New Year to all and best wishes for 2011!

Why bother posting this when no one except me will read it in any relevant period of time? Because one of my new year’s resolutions is to make significant progress with at least some of my projects, and I’d better bloody well remember that. Tune in for serious updates from February onwards!

So We Row

A couple of things before I run off to bed again.

The About page has a little more info on what to expect. In short, just about anything, so long as it’s interesting, at least to me. Or technical. Most things probably tend not to be both to you.

One of the pillars of the personal stuff for a while is going to be The 7 Habits of Highly Successful People. I’ve been reading it for only a few days, but it’s saying exactly what I need to hear in exactly the right way. I’ll be reviewing each of the habits in time, but the second (which I’m just digging into now) is to “start with the end in mind”, to know exactly what you want in the long run and to work with that in mind every day. It seems so obvious, even cliché, but who really does it? He makes clear things like the futility of misdirected efficiency, and the universality of it; its application to personality, parenthood, and organisations. It really seems like one of those chapters that’s going to spawn a lot of jotted notes and sketchily-imagined futures.

I’m also starting to feel out which will be the first habits to be locked in, and we’ll see how they go. Healthy sleeping, eating and exercise patterns, and general proactivity to get the little things done. It’s all about building up a string of small, private victories. Private victories must precede public victories. There are no shortcuts to the Character Ethic. It holds a long-term focus, like a sensible investment, and has the same kind of accumulative, compounded returns. Life is always going to be work, so living smart is working right and having fun doing it.