Back to the office for a week

Back to the office for a week

My workplace has leant heavily into remote-first work since COVID hit and we’ve hired a ton of people outside of the usual places where we have physical offices (Sydney in Australia, Mountain View in the US, etc.), and even for those of us who were regularly in the office pre-COVID, working from home is the norm now. A side-effect of that is that we don’t have nearly as much connection between coworkers especially for people who can’t come into the office even if they wanted to, so as a result we have “Intentional Togetherness” events for teams every six months or a year—I forget the cadence—where we’ll actually fly everyone in the team over from wherever it is they are and hold a whole bunch of in-person workshops and collaboration and just generally hang out.

One of my coworkers does the same job I do but is based over in Austin in Texas and we flew him out as well, plus people from New Zealand, Brisbane, Melbourne, and probably other places I’ve missed. I’d never met the Austin guy in person for obvious reasons, and it was really nice seeing everyone else in person too. He actually arrived on Thursday morning last week and so I went into the office on Thursday and Friday, plus all of this week. There was lots of going out for coffee and figuring out what we’d get for lunch and all the usual things you do when you’re in the office plus just generally chatting. I posted the highlights (which are 95% food-related) here.

My commute is a fifteen minute walk to the train station then an hour on the train (thankfully the office is right next to the station), and pre-COVID when I’d be in the office every single day we’d get up at 7:10am to get the 8:00am train to be in the office a bit past 9am, and wouldn’t get home again until past 7pm. There was no way in hell I was going back to doing that again so instead for this week I’d get up at my usual working-from-home time of 8:15am, start work a bit before 9am, then walk to the station and catch the 9:37am train and work from the train while I was commuting. Bar the post-work events we had, I was also getting the 4:50pm train home and working for the last hour on it to avoid peak hour.

Even with those changes compared to the pre-COVID commute, it’s now Friday evening as I type this, and I am absolutely wiped out. My social battery is not nearly at as high a capacity as it was pre-COVID and looking back at what my commute and hours used to be, I can’t believe I used to do that five days a week. And outside of the social battery aspect, this has felt like the longest seven days I’ve had for a long time (and I had a weekend in between the first two days I was in the office and this week). I know some people hate working from home for all sorts of reasons, but man, personally I would never go back to having to be in an office every day. Going in once in a while to see people or to play things after work, absolutely. But every day? Hard nope.

Conveniently this weekend is a long weekend because Monday is the Labour Day public holiday, so I’ll have an extra day to recharge!

Ten years of Atlassian

Today marks ten years to the day that I started at Atlassian! I blogged LiveJournaled at the end of the first week back in 2010 but looking back on it, it didn’t quite capture the brain-dribbling-out-my-ears aspect of when I started. Jira was — and still is, really — a complicated beast, and attempting to wrap my head around how all the different schemes interrelate was something else, especially when everything was called a <something> scheme!

I started doing support for Jira Studio at the beginning of 2011 — where we would host the products ourselves versus what I was doing when I first started, supporting Jira Server which is running on the customer’s own hardware—, was promoted to senior support engineer in 2014, and then left the customer support wing of the company entirely nearly three years ago and started doing support for our internal PaaS (platform as as service)!

I’m still in that same “Shield” role, still doing a good amount of coding on the side, and have been rewriting vast swathes of our internal documentation which has been received extremely positively. (We have very clever developers at work, but writing clear and end-user-focused documentation is not their strong suit. 😛) The coding has been primarily on the internal tool I mentioned in this post — except we’re now using Slack instead of Stride — and there’s been an increasing number of teams adopting it internally, and I’m actually getting feature requests!

Granted I’ve worked at exactly three companies in my entire career, but I honestly can’t imagine being anywhere else. Here’s to another ten years!

Another year of Node.js (now also featuring React)

I posted last year about my progress with Node.js, and the last sentence included “I’m very interested to revisit this in another year and see what’s changed”.

So here we are!

There’s been a fair bit less work on it this year compared to last:

$ git diff --stat 6b7c737 47c364b
[...]
77 files changed, 2862 insertions(+), 3315 deletions(-)

The biggest change was migrating to Node 8’s shiny new async/await, which means that the code reads exactly as if it was synchronous (see the difference in my sendUpdate() code compared to the version above it). It’s really very nice. I also significantly simplified my code for receiving temperature updates thanks to finally moving over to the Raspberry Pi over the Christmas break. Otherwise it’s just been minor bits and pieces, and moving from Bamboo to Bitbucket Pipelines for the testing and deployment pipeline.

I also did a brief bit of dabbling with React, which is a frontend framework for building single-page applications. I’d tried to fiddle with it a couple of years ago but there was something fundamental I wasn’t grasping, and ended up giving up. This time it took, though, and the result is virtualwolf.cloud! All it’s doing is pulling in data from my regular website, but it was still a good start.

There was a good chunk of time from about the middle of the year through to Christmas where I didn’t do any personal coding at all, because I was doing it at work instead! For my new job, the primary point of contact for users seeking help is via a room on Stride, and we needed a way to be able to categorise those contacts to see what users were contacting us about and why. A co-worker wrote an application in Ruby a few years ago to scrape the history of a HipChat room and apply tags to it in order to accomplish this, but it didn’t scale very well (it was essentially single-tenented and required a separate deployment of the application to be able to have it installed in another room; understandable when you realise he wrote it entirely for himself and was the only one doing this for a good couple of years). I decided to rewrite it entirely from scratch to support Stride and multiple rooms, with the backend written in Node.js and the frontend in React. It really is a fully-fledged application, and it’s been installed into nearly 30 different rooms at work now, so different teams can keep track of their contact rate!

The backend periodically hits Stride’s API for each room it’s installed in, and saves the messages in that room into the database. There’s some logic around whether a message is marked as a contact or not (as in, it was someone asking for help), and there’s also a whitelist that the team who owns the room can add their team members to in order to never have their own messages marked as contacts. Once a message is marked as a contact, they can then add one or more user-defined tags to it, and there’s also a monthly report so you can see the number of contacts for each tag and the change from the previous month.

The backend is really just a bunch of REST endpoints that are called by the frontend, but that feels like I’m short-changing myself. 😛 I wrote up a diagram of the hierarchy of the frontend components a month or so ago, so you can see from this how complex it is:

And I’m in the middle of adding the ability to have a “group” of rooms, and have tags defined at the group level instead of the room level.

I find it funny how if I’m doing a bunch of coding at work, I have basically zero interest in doing it at home, but if I haven’t had a chance to do any there I’m happy to come home and code. I don’t think I have the brain capacity to do both at once though. 😛

New job!

No, I haven’t left Atlassian, but come Monday I’m starting in a new role!

We have the concept of a role called a “Shield” that’s essentially support but for helping our own internal developers and users (as opposed to external customers), and the idea is that it’s the first point of contact for developers who need help or have questions about the particular service/platform/whatever that the Shield is supporting, as well as being able to step back and look at the bigger picture in terms of pain points that those developers run into and what sort of things could be done to minimise that. The name “shield” comes from the fact that you’re essentially shielding the rest of the developers on the team from the distractions that come from other people constantly contacting them throughout the day, and letting them get on with what they do best (actual coding and improvements to the product). I’ll also have the opportunity to actually do some coding and make improvements too, though. \o/

The team I’m joining runs our internal microservices platform that an increasing number of our applications are being run on, and though the microservices themselves can be pretty much any language you’d like (it’s all Docker-based), the code that the platform itself runs on is Node.js which ties in rather nicely with all my learning over it over the past almost eighteen months.

I’ve been doing external customer-facing support for over thirteen and a half years so this is going to be a lovely change! It’s going to be really weird starting anew where I know next to nothing about the inner workings of the thing I’m supporting though. 😛 I expect my brain is going to be dribbling out my ears come the end of next week.

5 years!

It’s been five years since I started at Atlassian! That is completely ridiculous. I realise my LJ at this point is mostly me going, “It’s been x years since y, that’s crazy!” but it’s true. 😛 When you’ve been at Atlassian for three years you get an extra three days of bonus leave each year (it expires at the end of the year so you can’t just hoard it), and at five years they’ll pay $3200 for you to take a holiday somewhere! kungfupolarbear and I had already been looking at going to New Zealand, probably in spring, and so this is a nice extra. I definitely can’t imagine working anywhere else, that’s for sure. My Senior Support Engineer-ing is going very well, I play Magic: The Gathering with a bunch of people every day at work, and they put in what’s essentially an actual salad bar for grabbing stuff to put on sandwiches. So instead of the quick and lazy and very unhealthy peanut butter and honey sandwiches I was having, I have sandwiches with tomato, lettuce, capsicum, and salad dressing on them, and it barely takes more time than the previous unhealthy ones!

Also I’m 32 today! We went over to mum and dad’s yesterday for a birthday lunch, and my sister and her husband and two kids were there. We took Beanie over as well, which he always loves, and as always I took some photos.

\o/

Promotion!

I’ve been acting-senior support engineer at work since the guy who used to do it moved to another team, but I’m now OFFICIALLY the senior support engineer. 😀 \o/

DIY, and some not so DIY

No posts for the last month, mostly because there’s not been anything of note happening. Yesterday, though… phew!

So, the path to the back room was pretty bloody awful.

kungfupolarbear had found a photo of a nice path design, so we decided to go to Bunnings and get the supplies for it. Long story short, about five hours and many sore muscles later, we have a new path!

As per pretty much everything so far, it took more work than expected.

And today we had an electrician come to replace the god-awful ceiling lights that were in the lounge room and kitchen, and to wire up some ethernet for us too. It’s so nice being able to put our own little touches on things now!

In other news, our annual bonus ended up being 12.5%! \o/ Of course, 45.6 cents in the dollar of that went to tax, but that was still a nice chunk of change. So I’ve ordered a NinjaBlock. Should be fun to play around with.

Work

I had one of those days at work today that was just totally productive. The guy who is our senior support engineer is away pretty much this whole month and he’s the one who generally looks after the internal escalations (cases that the support engineer who is dealing with it has gotten stuck on and needs some help).

As the next-longest-serving hosted support engineer I’ve been looking after the escalations while he’s away. It was really satisfying today, some of the issues were pretty hairy but I sorted them out in the end.

Quite a good feeling!

And now, a work-related update

Hey, why not update three times in a night!

Come the 19th of April, I’ll have been at Atlassian for THREE YEARS. Insanity!

It’s been crazy busy the last month or two, as one of our hosted services is winding down and being phased out, and we need to get everyone migrated over to either OnDemand or their own self-hosted instances. Despite us announcing that we were phasing it out back in October of 2011, far too many people have left it to the LAST DAMN WEEK to get everything sorted out, meaning that in addition to our normal load of support issues coming in, we have a heap of these extra hosted ones to get done too.

It’s flat-out and I’m pretty drained by the end of the day, but thankfully it’s not actively stressful, and once I’ve finished for the day, that’s it… I don’t need to be continuing to work from home afterwards.

Having said that, christ I’ll be glad when we’ve finished with all this. ::faceplant::

Also, I should probably go to bed now.

Payrise!

I had my annual salary review today (yes, the last one was back in March but that was back-dated to the 1st of January… they’re being all organised and shit this time around).

The way it works is they have a “bucket” of amounts of payrises, and the people who’ve done especially well get the higher ones. My manager said she felt I was “undervalued”, and I got a 7.4% payrise!! She said that was the single highest of everyone, and a bit more than double what most people got (the usual rise is 3.5% IIRC).

So YAY! 😀