…Back Again

I was looking forward to my Body Attack class for Tuesday evening, right up until Marayong on the train. I pick up my laptop backpack and have a telltale twinge in my back that I’ve come to respect as a sign to straighten up and pray it’s not too late to avert certain doom.

Although the evening takes a different course from the one I had planned, I don’t think anything more of it. Two episodes of House, M.D. – “It’s not Lupus”, and a failed attempt at doing some work (dev environment in some inconsistent state I couldn’t figure out right then), and feeling very weary by 9:30pm. I go to bed early.

I spend an hour doing that thing where you have audio playing that you think you’re actually listening intently to, staving off sleep… but then you startle awake and realise you’ve missed the first two questions-and-answers of the Writing Excuses podcast, and you just cannot bring yourself to fiddle with the controls to reset it to the start. I take it as a sign I should actually sleep and turn the audio off altogether.

At 3am, I know I am going to be in trouble. I wake up flat on my back, and my back has seized up completely. I have a 15 minute internal dialogue with myself about what to do next. I consider staying flat, but my back is feeling very uncomfortable. I consider rolling over but am dreading the feeling of using my shoulders to push myself around. I consider getting up to go to the toilet; damn, bladder full as well, just what I need.

No matter the circumstances, I almost never forget to think ahead.

I swing my legs over the side of the bed, and somehow manage to swivel myself into a sitting position with minimal use of my back or shoulders. First, I switch off the alarm on my phone, because I doubt I’ll wake up at 6:30am this morning, and even if I do, I know I’m not going to be nimble enough to dive for the alarm in a timely fashion when it eventually rings. Then, I go to the toilet and seriously consider whether I can sleep upright to limit the tension in my back. Clearly 3am is not a time for reasoned arguments.

For the remainder of the night, I alternate rolling onto my left and right sides with long stretches on my back. Each time waiting until the discomfort grows to a level where it overcomes my fear of the twinges that’ll run through my back when I go for a roll. Adding to that, putting my top arm in front or behind my body is immediately punished with stabs along my arm and shoulder blade, and it makes for an interesting night of careful balance in a half-sleep-state.

I don’t even consider going to work when I finally get up at about 7:15. I leave a message to my team-lead and start working out what I can do to speed my recovery up.

Luckily, it turns out the place I get my massages has a free slot at 10am still, so I book that in first, and then head to the doctors’ office down the road after a shower that takes me to their opening hours.

I bring my Kindle to try and read, but holding it up hurts my shoulder, and balancing it on my knee hurts my neck. I uncomfortably read half a chapter by holding it resting on the top of my knee with my neck slightly tilted and my eyes rolled down. I’m sure I look like a bad version of the Mona Lisa. It feels odd. It still feels uncomfortable.

Luckily the waiting room is practically empty. I try to look at the people in the waiting room with me, but my head doesn’t want to turn further than 45 degrees either side. I stare at the morning shows on the television. I stare through the inane dialogue.

I get a prescription for rest and some Panadeine Forte.

I head out to my massage and arrive 30 minutes early, so I read uncomfortably some more, after taking 2 tablets. Three-quarters through the chapter my head feels swimmy and it feels like reality is my imagination. Deep breath. I fail to read further and listen to a podcast instead.

Getting a massage with Codeine in my system proves an interesting experience. I can feel all the knots, but none of the pain. It is surreal, but far from unpleasant.

I feel relaxed and less sore right now, still a little detached, and absolutely determined to take carrying my backpack properly more seriously. It occurs to me that all those times I traveled to Melbourne and had back aches afterwards probably had little to do with the hotel beds, but everything with the fact I carry my luggage on my right shoulder only. It doesn’t feel heavy to my brain, but clearly my muscles privately have a different opinion. I’ll listen to them more from now on.

2015-03-15 - Header

Agility

I joined Blackbeard only recently.

I was looking for a new challenge, and I found it in the Inn where he was resting his party with Friday beers and cheese platters. He was looking to take on an Epic quest, and could use all the skilled hands he could get.

His party was an unfamiliar mix of classes to me, which has something to do with agility and sprinting. I cannot argue with the results of a mixed party I have seen so far.

It is still early days, and I joined well into the current campaign. But the Stories of our Epic goal are enough to inspire a renewed sense of purpose in me.

I’m part of Team Blackbeard, our quest is bringing flawless E-Mayl to the masses.
(I think it’s a precious stone or something. I’m not entirely clear yet.)

2015-03-08 - Header

Checking confluence with pythons

Heaven and hell.

Being a new starter at my new job, eager to absorb as much information as I can in as short a time span as possible, my attention immediately gravitated towards the Confluence Wiki with its plethora of pages (1800+) as a starting point.

There is a lot of information there, but the organisation of it could be better, so in line with the take-the-ball-and-run-with-it culture, I did.

First concern: how to improve things without making them worse?
Broken links suck.
Broken links I created, suck even more.

Sadly, and inexplicably, Confluence to this day does not include any tools to check for broken links, beyond the basics of “Orphaned pages” and “Links to new pages that haven’t been created yet”.

A quick search on the internet found a tool by an Atlassian employee that seemed promising: BustedStuffReport. Point it at a Wiki and it will scan all the pages and do some regex-magic to heuristically determine if all is in order.

Sadly: it only works on public Wikis, it does not follow any links to check them, it seems to target a somewhat older version of Confluence, it uses Python 2.

Having most of a solution already there, I decided I could hackimprove it to make it useful enough. Just let me get the Python language reference out and see what happens!?

After a week of playing around after work and in between tasks, I have a mostly rewritten script that is converging on the target I want to hit. I’ll post on Sciurus with the full details once I get there.

In the mean time, the experience has taught me the following:

  • The XML-RPC API to Confluence is very rich and regular, and reaches into almost all the corners I need (Yay!)
  • This XML-RPC API was deprecated in favour of REST,… while the REST API has not yet reached functional parity (D’oh!)
  • Confluence very helpfully does *some* classification of links through CSS classes… no idea why this isn’t visually represented by default (Huh?)
  • Python makes it incredibly easy to access the XML-RPC (Yay!)
  • Python still makes my skin crawl with its lack of type-safety, and no, I don’t want to write unit tests for a small tool like this (Boo!)
  • List comprehensions are awesome (just like LINQ is (double-Yay!))
  • Why do I need to end my conditional statement lines with a colon? I guess I can live with this, but for a language that strives for visual sparsity it seems like an odd requirement (*shrug*)

I think I can see why people love Python for scripts. But I’m still not convinced the productivity gained by the flexible typing system isn’t overshadowed by the extra test-cases you’d need to code in a non-trivial application. So, that leaves trivial for now, for me.

2015-03-01 - Header

Culture

Great corporate culture is easy to spot; just count the happy employees. I’m sure there are studies into the benefits of a positive culture, but I doubt you need studies to be convinced anyway.

Creating a great culture can be incredibly hard though. And regaining it after losing it is just as hard itself. It is like exercise; the amount of effort it takes to regain condition after sitting on your ass for a month disproportionately overshadows the effort it would have taken to maintain the routine for that same period. It’s rolling that boulder back up-hill.

So, I guess the first rule of Culture Club is: maintain culture for all it’s worth.

What makes culture hard is that you cannot afford words and actions to become misaligned. Intent alone is not enough, because perception beats intent every day; if employees don’t believe it, you’ve lost already.

Which means that the second rule of Culture Club is: make sure you pick a culture you are prepared to stand behind with every action, pick the culture you mean, be specific… platitudes do more harm than good. Everyone wants to be the “company full of smart empowered and pro-active individuals”, but just don’t say it unless you’re prepared to live by it.

I mean, look at McDonalds… there are manuals and procedures for everything. No need for anyone to be empowered or pro-active. But at least everyone is on the same page regarding what McDonalds culture is like. Which means that nobody ends up complaining about it. It Does What It Says On The Label.

And there are many stops along the spectrum from completely running on process* to completely running on people*, so pick the spot that is right for your organisation and live and breathe it.

And that would be the third rule of Culture Club: once you have a culture that is realistic for your organisation, everyone has to work at keeping it there. You have to look for things slipping and nudge them back where your culture says it belongs.

I suspect that may well be one of the biggest purposes that the playful decor at a place like Google has in maintaining their culture. It’s not a direct part of the culture, but it serves as an overt reminder not to take things too seriously. Breaking traditional corporatey-officey rules in the way you decorate immediately makes clear not to make assumptions about how things work around the place.

And I couldn’t be happier at Campaign Monitor; it comes with a great built-in culture close to the People-based end of the spectrum. And I’ll actively be doing my bit to help keep it there along with everyone else.

Just a little ongoing maintenance is all it takes.


* It is almost impossible to maintain a culture that is purely process-based or purely people-based. The more process-based a culture, the better it is to have a publicly acknowledged “why” for each rule and process; it helps the “people”-people. The more people-based a culture, the better it is to make clear that not being sure of how to handle something is okay, and a process to follow to find the right person to help; because you’re going to have “process”-people as well.

Why Driving Sucks

I could write a whole lot more about my job at the end of my first week, but I have more interest in talking about what happens before and after that work.

I have time-shifted, so I drive 6:30am – 7:30am and then 4:00pm – 5:00pm.
This is as close as I think I’ll get to the optimistic Google estimate of 53 minutes.
And that’s okay.

For the past eternity, my 5-10 minute commute exposes me to a bad driver or two every once in a while. With a daily 60 minute commute each way, every day is my “lucky” day. And I wanted to just record some of these blessings so I do not forget when the time comes to gripe about occasional public-transport mishaps.

Ending Lanes – there are a couple of places on my commute where 2 lanes merge into 1, with the left lane disappearing. Most drivers are perfectly polite and do not push in all the way at the end of the merging lane. Sadly, when they do, they merge in as little distance as possible, which usually encourages the small minority to overtake in the left lane… and push in at the very front, which then slows down the right lane even more, encouraging even more assh*les to push in front. Every once in a while you’ll even have someone ducking from the right lane into the left, push to the front and re-merge… because… entitlement.

This is actually the easiest to fix, and when I find myself in the left lane, I start indicating to merge early and when a space opens up, I move over half-way to claim the spot while keeping the left lane blocked. If this feels awkward, indicating and just keeping pace with the open space will work too. This usually makes both lanes flow better because now there aren’t any pushing-in cars causing confusion and uncertainty to the drivers at the end of the merge.

Overtaking Lanes – there is a long windy single-lane stretch in my commute, which occasionally widens to 2 lanes for a stretch to allow overtaking before merging back together. It is inevitable on the single-lane portions to get stuck behind a car going below the speed limit. On a 100km/h stretch there’ll be a car doing 90km/h. I wait patiently. Then the overtaking lane comes. I get into the second lane and speed up to 105km/h to get past quickly… and now suddenly the granny turns into Taz, going 108km/h and pulling away from me!?

Theoretically this can be overcome by speeding up till you inevitably go faster, but I don’t really want to see how far that game of chicken would take me. I do not know why people do this. It is anti-social… if you know the car behind you for the last 5km clearly wanted to go faster than you are going, can you not hold back when the overtaking lane comes around? Heck, slow down to 80km/h briefly to make it easier, and then go back to 90km/h; everyone’s happy!

Hanging Right – this is a variant of the last one… most of the way to work doesn’t exceed 2 lanes. The slow traffic is on the left. The fast traffic is on the right. Everyone thinks they are fast traffic. They want to go faster than the slow car they are behind. 85km/h on a 100km/h stretch!? No way! So, they pull in front of me to overtake… at 90km/h… for ki-lo-me-tres.

When I notice a fast driver approaching behind me, I find a way to get back into the left lane, even if I still want to get back in the right lane right afterwards to keep overtaking myself. Even if the car coming up is doing an illegal 120km/h, because I’m not the Police, and I’m not here to stop them from doing anything wrong. It’s usually best to have extreme speeders and Tetris drivers as far away as possible anyway.

Anyway,…
… Future-Jerry…
… That train you are hating so much right now, is really not so bad…
… It is usually moving. It isn’t beholden to the whims of other traffic…
… It may be a bit full, but you can read a book and be blissfully ignorant of those few idiots on the road…

Starting at Campaign Monitor

Commute

I made the right call when I was first offered the job late 2013; that is not to say that there is anything wrong with the job per-se, because Campaign Monitor has already proven an awesome place to work. The commute would have killed me 6 months in.

Tuesday - fresh muffins with breakfast

Tuesday – fresh muffins with breakfast

On Monday morning, I made it from home to work in 70 minutes, door to door. Not bad, but not quite the 60 minutes I thought achievable. My manager suggested I try a different route home, which due to evening traffic also came to 70 minutes, and sadly a missed Pilates class.

Then this morning, Google told me to expect 1h42m, to which I scoffed “No Way”.
Alas, “Yes Way”… multiple incidents and accidents, hints and allegations later, 90 minutes door-to-door.

I am somewhat hopeful after a 60-minute commute this afternoon that I can fine-tune this a little further for the next 4 weeks after which the office will move to a gorgeous new CBD location. I am considering waking up at the not-a-real-time of 6:30am so that I can start early, finish early, and hopefully mostly avoid the traffic both ways.

A small limited-duration sacrifice to the sleep gods may be warranted. And limiting my gym classes to Tuesday evening and the weekend for now.

Food

This job comes with breakfast and lunch included.

And not just something quickly thrown-together either. The Three Chefs start their day at 7am, first to make breakfast and coffee orders for 8:30am, then to make lunch for 12:30pm, and finally an afternoon snack and coffee at 2:30pm.

Tuesdays' menu - I can still smell the lamb ribs on my t-shirt

Tuesdays’ menu – I can still smell the lamb ribs on my t-shirt

It’s definitely better fare than I’d be able to buy myself for an average $10, and it’s not costing me anything. It’s also a great time to sit down and chat with co-workers. Sadly I am horrendous with names, and I’m sure I’ll have to be reminded for a while longer… but it’s a great way to get to know my coworkers.

There is an internal web page where the menu for the week is published, and from what I understand the chefs do not like repeating themselves, so I am looking forward to never having the same lunch again. Also, probably healthier than I’d otherwise eat (mostly).

Learning Curve

Getting started is always a bit intimidating, when you come in feeling like you know nothing. The Engineering department has a buddy system in place though, so I have someone to ask when I need to figure something out.

There have been a few false starts where I needed a hand, but otherwise, the internal Wiki is amazingly comprehensive. I have learned an awful lot already in only two days from just poking around.

DiSC - 6515 - Creative (apparently!)

DiSC – 6515 – Creative (apparently!)

Today I had my first one-on-one with my team lead. Having used Manager Tools myself, I already knew what to expect. And I had seen many staff with DiSC profiles displayed in their windows, so I asked if I should get one of those done as well.

“Oh sure, there is a Wiki page, and here are the credit card details… just make sure you send an invoice to myself and the accountant when you’ve bought something.”

*blink* … no red tape indeed!

Culture

Which brings me to CM culture.

Friendly and relaxed does not even begin to describe it. “We’re all smart adults here” might as well be the company motto. The change feels a little disorienting to me, but I’m sure I will adapt quickly enough.

Dress code is: “whatever you are comfortable in” (within reason, of course, see “smart adult” above), but there are plenty of staff in t-shirts, shorts and no-shoes.

Tomorrow's Lunch - Sous Vide chicken.

Tomorrow’s Lunch – Sous Vide chicken.

I have been invited to try ping-pong, XBox, after-work trainer sessions… So far, I have politely declined while I get my bearings a bit more and work out my commute and sleep patterns.

But I already know, I’m right at home.

Last Day

I cannot exactly say that 8 weeks felt like the blink of an eye. They definitely felt like A-Long-Time-tm.

And I feel a little guilty about how little of consequence I have done with it, but not too much.

I have managed to re-establish a workable gym routine that had been suffering from too many interruptions last year from around August till November. I can actually do Body Attack again without dying, and my legs feel mostly okay after an hour.

I have read a half dozen fairly lengthy books from the large pile I was indirectly gifted by my former co-workers (a gift certificate well spent!)

I have watched way too many movies, way too much TV, and had a few nice do-nothing days along the way too.

And most importantly, I feel completely relaxed.
Which bodes well for tomorrow, the coming month, and the years beyond.

Campaign Monitor, here I come!
I must remember to take pictures along the way.

Tony for a Little While Longer

Full disclosure first; my personal leaning according to The Political Compass economically lands slightly Left of centre, and socially very Libertarian. This is by way of explaining that although I have explicitly and specifically never been a fan of Tony Abbott, most Australian politicians are far too authoritarian for my tastes.

Despite all this, I’m neither pleased nor displeased with the outcome of the spill motion this morning. It seems clear to me that it’s far past the point-of-no-return for Tony’s eventual implosion. Everything between now and then is just political manoeuvring at one scale or another.

Tony appears to have serious impulse-control problems, and that continues to be his greatest liability. No matter how chastised he feels, and how much he intends to do better so as not to lose the leadership, he’ll remain just one low-blood-sugar moment away from falling over his own tongue.

By contrast, Malcolm Turnbull is doing a great impression of a Zen master. Almost every move carefully weighed and considered; no more action or admission than strictly necessary. He is doing a great job of making his intent clear without explicitly cornering himself by overt admissions.

I know to many Australians, they are both Liberals and therefore equally bad, but there is a fundamental qualitative difference between a carefully rational politician with an ability to change his mind, and a one trick pony that has figured out which lever to pull for a pellet.

And let’s not forget that calling Labor “left” and Liberal “right” is a bit of a joke anyway. A quick look at the Political Compass for the 2013 elections (or really, the political spectrum for almost every western democracy) will show that the majority parties sit squeezed in a very tight corner to the Authoritarian Right of the compass. As much as we can tell ourselves that a lot hinges on whether Labor or Liberal wins, the reality is that the real-world outcomes are only marginally different between the two once they are in power.

Not that I have a stake in this anyway; I am merely a permanent resident, and as such I am not entitled to vote.

Which is just as well, because I wouldn’t know who to vote for anyway.