Functional February

Having really enjoyed JavaScript January, I had absolutely no idea which language I was going to choose for Month 2 of #12in23. It wasn’t until the morning of 1 February that I happened upon the relatively new jq track on Exercism. It had never occurred to me up until that point that as well as being a handy command-line tool for processing JSON, jq implements a language. It turns out that I had underestimated it, much as I had AWK all those years ago.

Did you know you can use jq as a simple command-line calculator, for instance?

jq -cn '6 * 7'
42

Or make functions, which help to make filters more legible?

jq -cn '
def double:
  2 * .
;

[range(10)] | map(double) 
'
[0,2,4,6,8,10,12,14,16,18]

Much like in JavaScript January, I found myself tackling a single exercise from the jq track in a few minutes each day. I also found that I was having a lot of fun with learning the new language and some days I found myself knocking off two or more excercises of an evening just for fun. Putting the “fun” in “functional”, as it were. Soon I found myself at the end of the track with a couple of harder exercises, an evaluator for a very simple subset of Forth and solving the Zebra Puzzle. It took me a couple of sessions to solve each of these but I was happy with how neat the solutions to these problems were in jq compared with what they might have looked like in some of the languages with which I am more familiar.

I don’t think I’ll be reaching for jq as my go-to language after this month, but I’ll certainly be able to use it more handily for building reusuable reports based on JSON responses from APIs.

Having accidentally completed the whole jq track with a few days of the month to go, I revisited Elixir, which I still really, really like as a language.

One more surprise from Functional February? I did most of the exercises in VS Code and I liked the experience so much that I wrote this blog post in it!

JavaScript January

One evening right at the beginning of 2023, I got an email from Exercism inviting me to join The #12in23 Challenge. I was home alone and thought that this sounded like fun (you should see the number of Rubik’s cubes in this house to get an idea of how I define “fun”). I’d played with Exercism a few years ago to get myself up-to-speed in Elixir, which was looking like becoming popular when I was Envato and I found it to be both educational and entertaining. I resolved to undertake one language per month and one exercise per day.

On a whim, I decided to take on JavaScript for January.

It seems almost unbelievable that in close to a quarter of a century working in software development the only JavaScript I have written was in the form of a small, cargo-culted change to a parkrun-related browser plug-in. It’s a language I’ve never really needed to touch and of which I have remained pretty ignorant. It was good to finally meet it head-on.

Most days I’d be able to knock off an exercise in about 15 minutes. The only exception to this was the exercise on the concept of Promises, which was a new concept to me and took most of a Friday evening. On a couple of days where the exercises were really easy, I did multiple exercises, as I didn’t start on 1 January and I thought it would be nice to end the month having completed (at least) 31.

It is good to do some programming again and I actually like JavaScript more than I expected to. The nullish coalescing operator (??) is a nice language feature that I don’t think I have used in any other language so far.

I’m excited for Functional February!

Back-to-back meetings are tiring, let's not do those!

Let’s start this post with the assumption that synchronous, face-to-face meetings are a part of how a successful organisation operates. Reaching any other position is outside of the scope of this post, although is certainly something I would like to explore separately. Great!

Back when I used to work in an office most days, I would often find myself joining meetings late because the previous one was scheduled to finish at the same time as this one started on a different floor of the building. Three or four hours of back-to-back meetings with a race from a meeting room on one floor and a meeting room on another left little room for refocusing or for comfort. It was very tiring.

At the beginning of the pandemic, when we moved to working from home full-time, I found myself grateful for losing the inter-meeting staircase dash, but I found that bonus came with its own price. Meetings that had been scheduled back-to-back, had even less of a gap than they did before - I’d exit one online video call and enter another one in the space of a couple of mouse (or Shortcat) clicks. Working from home looks more sedentary than office life for this reason and I don’t like this aspect of it.

These days I work a nice hybrid mix. About five days per month from SEEK HQ and the rest from the home office. I like this mix but that’s not the point.

# So what?

Parkinson’s law states that “work expands so as to fill the time available for its completion” and meetings exhibit similar properties (so do look a lot like work). The good news is that we don’t have to allot a full hour or a half-hour to every meeting. I like to schedule meetings for 25 minutes or 50 minutes depending on how much material there is to cover; that way I give all attendees the gift of a short break before our next event so that we can stand up, stretch, walk around, focus on something other than a computer screen, rehydrate and maybe even find their next meeting room.

Research from Microsoft shows that Your Brain Needs Breaks and Microsoft have responded to this with functionality that allows us to make all of our events shorter.

I enabled similar functionality some years ago, I think when Google first introduced “Speedy Meetings” in their workplace calendars and haven’t looked back. I really like how Calendly allows not only to set a custom duration for meetings but also to add buffers before and after a meeting when you Customize Your Event Types.

# In conclusion…

Technology is a big help here and scheduling 25 minutes for a meeting sets expectations for all attendees that there will be a break before their next one, to reduce fatigue. It’s then up to the organiser to have the discipline to end on time.

Why not try this with your meetings in February and let me know how it affects your energy levels? I’d love to hear from you!

Pronouns-iation

In my last blog post, Keeping in the Development Loop, I listed a bunch of email newsletters that I enjoy as a technologist. Today I want to share one more email newsletter that I get a lot of value out of and that’s Better Allies ®. Each Friday (ish, depending on your timezone), Karen Catlin shares five tips on inclusion, from which I think have learned a lot. I’ll let my colleagues be the judges.

Since reading 5 Ally Actions - Apr 9, 2021 I have been including my pronouns and the pronunciation of my name in my email signature. It took less time than it took to read that week’s newsletter to add these. Easy!

Three months ago, I started a new job and on my first day I found myself setting up new email signatures, Slack and Zoom profiles - each of these includes my pronouns and the pronunciation of my name, it’s just what I do these days. I was quite surprised to see that this practice is not commonplace in my new workplace but I expect this will improve.

I was recently in a webinar where a participant was misgendered by one of the presenters answering their question, which they asked using Slido (whose homepage boasts, “It’s how you include everyone in your meetings”). There’s currently no facility in Slido to display pronouns or pronunciation alongside your name. I think this could have saved some discomfort if it were available and used – so I’ve submitted a support request to add this feature.

People tend to get my pronouns right all of the time and pronounce my name correctly most of the time, so I’m sure some people are reading this and wondering why I do this. In short, I want to help to normalise the practice of sharing pronouns as I understand this is helpful to genderfluid, transgender, and nonbinary folks. I also believe that no one should have to hear a broken version of their name. Kudos to NameDrop for making this really easy.

This week (13 - 19 November) is Trans Awareness Week, a week to celebrate, support, and learn about trans and gender diverse people. In the spirit of being a better ally, here are my 5 action items for this week that you may like to consider:

  1. Subscribe to the “5 Ally Actions” Newsletter.
  2. Add your pronouns to your email signature and online profiles. I’ve just added mine to this page!
  3. If you administer a Slack workplace, enable “Pronouns Display”. By default, the pronoun field is hidden in Slack profiles, I learned this week.
  4. If you’re maintaining a service that connects people, make it possible and easy to display pronouns and name pronunciation (and perhaps a recording).
  5. Customise your chatbot to look for problematic terms and suggest alternatives.

Keeping in the Development Loop

I was recently asked, “As an engineering manager, how do you keep up-to-date with what’s happening in the development world?”, which I thought was a really interesting topic and one that warranted further exploration.

First, do we accept the premise that managers need to keep up-to-date with what’s happening in the development world? Honestly, I’m not sure we do need to be across the latest language features, framework versions and cloud provider offerings; we have engineers whom we trust to do this. That said, I spent most of my life as a developer and have always kept my hand in to some extent, as far as I can get from the critical path for the past few years, so I do want to keep in touch with that side of things. I like to be informed on what’s out there, even if it’s not strictly necessary, as I feel it’s a good way to prepare for conversations that may arise in the workplace. There are likely to be other valid approaches.

Mostly, I keep up-to-date by talking to the engineers on my team and by reviewing their pull requests but to keep up with what’s happening in the industry more generally, I like to read and to listen.

Here are some of the newsletters and podcasts to which I am subscribe, which have kept me informed over the past few years. As I’m in the process of changing employer (and technology stacks), this may change (or even just shrink).

# Newsletters

I find email newsletters to be a pretty efficient way of consuming the headlines and diving into content of interest. It’s also great to be able to go back and search my mail archive when I know I’ve seen something relevant to a work conversation recently. These are the subscriptions that have served me well.

I also miss cron.weekly.

# Podcasts

Podcasts require more time investment and I go through phases of bingeing technical podcasts and then eschewing them altogether to focus on other areas of interest. For what it’s worth, “wherever you get your podcasts from” for me is Overcast as I really like the way I can organise my subscriptions and how I can control the playback speed.

The only technical podcast I keep coming back to is Maintainable. Maintainability is possibly the most critical of all quality attributes as it can underpin so many others. I’m a fan of the simple, predictable format of this podcast and have recommended more episodes of podcast than any other podcast (technical or otherwise) than any other.

Over the years I have dipped in and out of The Bike Shed and have got a whole bunch of great technical tips from it, so it warrants a mention here, even though I’ve not listened to it for a while.

How I Use Slack

This blog post has been brewing for a while now. I first started mind-mapping it about a month ago. I was going to call this “Considerate Slack Use” but this is how I use Slack and in no way a request that you do the same as me.

If you do happen to find anything useful or adopt anything from this post, I’d love to hear from you.

Let’s start at the beginning. Slack is a team communication tool that can be used for collaboration. I sent my first Slack message in March 2014 and since then it has all but replaced email for internal communication for us at work. Of course this means that there is yet another organisation with responsibility for our information! Slack has been an important tool over the past couple of years for keeping connected with our colleagues while we couldn’t be together, and for that I am grateful.

This post was partially prompted by me joining two new workspaces in the last month. I am currently signed into eight workspaces across different devices, with some workspaces having well over a thousand members. That’s about as many as I am willing to join. I am not signed into all eight on any device.

I have been thinking a lot about Stolen Focus in the last few months and this is also why I am not logged into all of the workspaces on all of the devices. I have deactivated accounts in three workspaces to compensate for the two new ones.

In praise of Slack (and other tools like it), it is a great leveller for remote teams. Back in the office, I used to encourage my teammate from the desk opposite me to use Slack rather than talk to me directly about work to include the rest of the team equitably. Of course now we’re all remote, which is even better.

While much of this article is specific to Slack, I apply many of the principles to the other messaging services I use (e.g. Apple’s iMessage and Signal).

# Workspace settings

Let’s take a look at how I set up Slack. Here are some of my settings from the desktop app.

# Notifications

Notifications 1

I turn them all off!

Notifications 2

I read messages when it suits me, not when it suits Slack or the sender.

# The Sidebar

Sidebar 1

I minimise distractions, and give myself access to things that help me catch up.

# Themes

With much time sitting at home in during the pandemic coupled with so many Slack workspaces, I found myself often looking for a channel to find I’m not in the workspace I thought I was…. so I configured custom sidebar themes to make it more obvious. I am sharing some here for you to enjoy. This seems to work only in the web or desktop apps, not the mobile or tablet ones. Here are some of them for you to enjoy. Simply send yourself a message with any (or all) of these sets of hexadecimal colour values and Slack will provide you with a “Switch sidebar theme” button in its desktop app, these propagate to mobile and tablet apps (or at least they used to).

Work
#303030,#350d36,#303030,#85B54A,#303030,#FFFFFF,#85B54A,#85B54A,#000000,#FFFFFF

Ruby Australia
#FFFFFF,#452842,#FFFFFF,#8C5888,#FFFFFF,#F71264,#8C5888,#F71264,#F71264,#FFFFFF

The Complete Guide to Rails Performance
#052041,#350D36,#052041,#EA5E42,#052041,#FFFFFF,#EA5E42,#EA5E42,#052041,#FFFFFF

parkrun
#3E3E77,#350d36,#3E3E77,#FFA300,#3E3E77,#FFFFFF,#E21145,#FFA300,#2B223D,#FFFFFF

Solarized light
#EEE8D5,#350D36,#EEE8D5,#2AA198,#EEE8D5,#839496,#CB4B16,#CB4B16,#EEE8D5,#CB4B16

Solarized dark
#073642,#350D36,#073642,#2AA198,#073642,#839496,#CB4B16,#CB4B16,#073642,#CB4B16

# Messages and Media

Messages and Media 1

I keep these Clean and use Full Names as I like it to be obvious who I am conversing with.

Messages and Media 2

Emoji are interesting, especially when it comes to skin tone. I’ve stuck with the default skin tone emoji since the modified ones were released but based on an article I read recently on Which skin color emoji should you use? and conversations with friends, I have switched to one more aligned with my own pigmentation.

Showing one-click reactions with my most frequently used emoji on messages can really speed up my usage.

Messages and Media 3

I do not bring emails into Slack (or Slack messages into email). I’ll read them once.

# Accessibility

I set Accessibility settings so that the up arrow will edit last message.

Accessibility

# Mark as Read

Mark-as-read

# Audio and Video

Audio-and-video

# Connected Accounts

Connected-accounts

# Privacy and Visibility

Privacy-and-visibility

# Advanced

Advanced-1

Advanced-2

# Do I need access to this workspace on all devices?

A simple rule here is “No work Slack or email on my personal devices”, which I embraced in January 2020 and have not looked back. Not even once. I have a cheap Android phone for work, which lives on my desk except when I’m on-call. This allows me to switch off at the end of the working day.

Equally, workspaces that are likely to distract me during the working day are not on my work laptop. I can read these over lunch on my tablet.

# Channels

I have found establishing a pattern for when channels should be created, renamed and archived really helps with both information organisation and personal focus. I really value transparency in any organisation, so the first thing I’ll say about channels is this: make channels public unless you have a really good reason not to, such as a confidential personal matter. Public channels are better than private channels and private channels are better than direct messages.

As initiatives are created, I like to start a new, public, Slack channel for interested parties to share their thoughts. This helps us get feedback early and often as well as providing an easy to access repository of information.

Bookmarks at the top of channels help folks find the information they need. I have come to prefer these over pinned posts because they’re more visible in the desktop app.

Channels for teams are a good idea. For a team “foo”, I would likely create the following channels each with meaningful descriptions:

  • 🔒foo-chitchat (private), a safe space for team members to talk between themselves

    • Bookmarks to video chat, working agreements and maybe a team shared playlist for fun
  • #foo-team (public), a place for the team to work transparently, allowing others to see what’s going on and perhaps a Chatops bot

    • Bookmarks to the team’s sprint board, playbooks and shared documents

    • Use the channel topic for reserving team resources, such as staging environments. I like to use the 🆓 emoji and personal emoji for team members for reservations.

  • #foo-helpline (public), a place for anyone in the organisation to ask questions of the team and get timely answers. Some answers may be automated using Slackbot or the team’s own bot user.

    • Bookmarks to the teams’s help centre articles or frequently asked questions (FAQs)
  • #foo-notifications (public), for any automated posts, so that they do not interrupt conversations in the #foo-team channel.

    • Bookmarks to any dashboards which show the current state of systems this team cares about and the sources of any incoming notifications.

Teams evolve and team names change. This is a good point to rename the channels with the team, this makes it easy for people to find you. Slack handles renames well so folks should be able to find you by an old name or the current name.

Archive channels when they are no longer in use. This makes it easy for folks to find the channels they need when they use the channel switcher, while still being able to find the content they need in the search results.

I “star” channels for the teams I am on, they take priority when reading. Equally, I mute those that I need to read eventually. It’s about prioritising my time and attention. I also leave those channels that provide me with more noise than signal, there is joy in missing out! I have applied this to social media, too, and feel great!

# Threads

Threads can be good for completing a discussion without dragging a busy channel along for the ride but sometimes it’s better to break these out into a new channel. There have been recent discussions in my work channels that I’ve broken out into new channels as threads with fifty responses are beyond manageable. A good trigger to consider this is when choosing the “Also send to #channel” option on a reply.

# Direct messages

Personally, I would rather use email than direct messages (DMs) but at the same time, I adhere to the organisational norms. I do like to share URLs through DMs during audio or video calls as these tend to persist longer than the call itself. I’ll put a description with the URL to make it easier to find long after the call has ended.

Speaking of email, I don’t send anyone a Slack message to let them know I’ve sent them an email. They’ll see the email when they check their email on their schedule. If I want to notify somebody about something urgent, that they need to know right then, I’ll put the whole message into Slack rather than use Slack as a layer of indirection.

I try to put all of the greetings, context and details into a single post to reduce the number of notifications at the recipient’s end. As someone who is both on-call and who has supported on-callers over a number of years, I know that a flood of notifications can be a cause of anxiety so I like to keep these to a minimum. I also don’t just say “hello”.

DMs are an information black hole where knowledge goes to die. If someone asks a question privately and it can be answered publicly, I’ll bring the question and the answer to a public channel because the answer is likely to help more than the person who asked it.

It is ironic that I more often find knowledge at work by searching Slack over searching Google Docs. Google. Docs.

Slack allows sending DMs to groups of recipients. I prefer to give these groups a name as it gives context to the conversation and makes it easier to add and remove members as appropriate. This also makes a good decision point: is this conversation public or private? And then we’re back to channels.

# Emoji

I love emoji and I use them liberally. Reaction emoji are better than threads, which are better than new messages. Again, this comes back to minimising notifications and noise for others.

When I write a longish Slack post (the kind that could probably be an email), I’m often left wondering who’s read it. When I read a longish Slack post (the kind that could probably be an email), I leave a reaction emoji on it to let the author know that it has been read.

# Messages

Some thoughts on the messages, themselves.

I include some context and sometimes a quotation from pages when I share them them and I format quotations as quotations. I find code blocks a strange choice for this but that approach seems commonplace. Starting a line with a greater than sign “>” marks it as a quotation. I know that not everyone unfurls URLs and that the resource at a given URL is subject to change or deletion and may not be the same when the message is viewed in the future. The message should be useful to future readers.

Speaking of on-call, I often “talk to myself” when troubleshooting an issue. This helps me clarify my thinking and occasionally will attract help from others who happen to be around. This approach also provides real-time updates as to how we’re going, in case any stakeholders are lurking. These messages, screen grabs, charts, and so forth, serve as useful, time-stamped information when conducting post-incident reviews. I recommend this.

# Notifications

I avoid @channel and @here notifications as most Slack channels I am in span multiple timezones. To me these alert mechanisms feel like standing on my desk in the middle of an office and shouting at absolutely everyone. I just wouldn’t do it.

Similarly for personal mentions, I keep my use of these to a minimum. In a public channel, it feels like shouting at somebody across an office, when I’d rather walk over to them or leave a note on their desk instead.

If Mel has said something previously, I say, “as Mel described above”, not “as @mel described above”. Mel does not need to have their attention sucked back into that conversation from wherever their focus currently is.

I generally don’t use mentions in threads or DMs as I’ve never seen the point. It feels unnatural to address somebody by their full name or “handle” (does anyone use that term anymore?), I’d rather thank somebody personally with their name, “Thanks Jamie” over “Thanks @slackuser21”. They’ll still see the gratitude in their notifications unless they’ve deliberately left the conversation. If they’ve deliberately left the conversation, then I see no reason to drag them back in.

Once is often enough, if I’ve @-mentioned somebody, I usually wouldn’t do it again for a while. I also pay attention to their working hours, and status message before deploying the @. The Google Calendar app is great for indicating to others when I’m in a meeting or not at work.

When Slack warns me “x is not in this channel”, I think carefully whether I invite them, as prompted. I wouldn’t subscribe somebody to a newsletter without their consent, so I prefer to send them a copy of the message and let them choose for themselves whether they want to join. In Slack, “invite” seems to mean “summon” and since I value context I try to share the context behind a message or thread when sharing it to a channel where x hangs out.

# Reminders

These are a cool feature of Slack. Sometimes I read a message that I don’t have the capacity to respond to at that time so I tell the sender I will come back to them and I set a reminder for when I will get back to them. This works nicely.

# Deactivation

I mentioned earlier I’d deactivated some accounts. I like to manage folks’ expectations of me and I don’t want people sending me messages in Slack workspaces that I’ll never revisit, expecting me to read or respond. Apparently WhatsApp did not handle this well when I deleted my account (not just the app from my phone). The URL for this is https://<workspace-name>.slack.com/account/deactivate.

# Conclusion

🍫 You’ve read everything you need to.

Take a little break.

Now you can get things done!

Better to Light a Candle Than to Curse the Darkness

I’ve been enjoying Tim Ferris’ 5-Bullet Friday newsletter for the past couple of years (thanks to Jacob for the introduction). Most weeks this newsletter includes a Quote I’m pondering (this week’s didn’t, just because I was thinking about it).

So here’s a quotation that I’ve been mulling over recently:

But denunciatory rhetoric is so much easier and cheaper than good works, and proves a popular temptation. Yet is it far better to light the candle than to curse the darkness.

William L. Watkinson

Buying Stuff in 2021

In The Before Times™ we used to like to go to restaurants. Of course, part of the restaurant dining experience is being asked, “how is your meal?” Just as a forkful of said meal has entered the diner’s mouth. There’s a polite nod with the mouth covered by a hand, followed by a quiet acknowledgement, “very nice. Thank you!” And that is that. The review is acknowledged.

These days, we cannot go to restaurants, we have to buy things online and surrender an email address. Sometime after making a purchase, we’re e-mithered, “Your opinion is important to us” and there are five stars inviting attention. The review does not stop with the retailer; it is to be broadcast to the entire world along with other data important to the reviewee: name, location, age range and gender.

Very nice. Thank you.

—@johnsyweb, Planet Earth, 0-99 & none of your business.

Much More than Just a Run in the Park

As we have lived through more than 200 days of Coronavirus-induced lockdown, finding reasons to be positive is increasingly difficult. I’m finding identifying reasons to be grateful is a lot easier.

I’m grateful that I live in a place where the public officials are working so hard to keep people safe. Last May, when many health services around the globe were overwhelmed with coronavirus patients, Ambulance Victoria and the Royal Melbourne Hospital had the capacity to save my life, including an intensive care bed and a ventilator. I’m grateful that the vast majority of Victorians are following public health orders to keep the spread of this awful disease to a minimum. We’ve eradicated the virus in our state once and I am sure we’ll do it again. I am grateful that Kirsty and I are fully vaccinated and won’t be subject to the full force of this disease should we find ourselves exposed.

I’m grateful to my friends whom I’ve met through my involvement in Coburg parkrun for their help in getting back to running after the events of last May. Being able to run within our COVIDSafe Settings really has helped make locked down life bearable.

Restrictions on movement and physical gathering means that great community events like Coburg parkrun cannot take place. Coburg parkrun is an event that means a lot to my family. Three generations of Johnses have completed their first 5km event at Coburg parkrun and it has provided a great deal of motivation for us all to keep on moving. With all the kids’ sports cancelled, I am grateful that the parkrun staff created “(not)parkrun”. Saturday mornings have been running mornings for us for many years now and having the concept of (not)parkrun has given our 11 year-old the motivation to run with Dad each Saturday during the pause. It’s one of the highlights of my week. Since turning 11 last month, E has been looking forward to completing his first parkrun without me holding him back so it’s really lovely that we get that extra bit of time together each weekend.

Much More than Just a Run in the Park!

I know after 18 months many people are tired of staying at home and even more tired of seeing the faces of people they love solely on a screen but I’m grateful that we live in a time and place where we have that technology available to us to keep us connected even when we cannot be physically present. I know not everybody has this luxury and I appreciate that Zoom fatigue is real. That said, I’m grateful to the team at Coburg parkrun for keeping our community connected each weekend with an online catchup accessible to all, including one of our returning Olympians currently in hotel quarantine!

parkrun really is Much More than Just a Run in the Park and I cannot wait until we’re spending our Saturday mornings together again in our parks and our coffee shops.

Cardiac Arrest Survivor

This year has thrown a lot at so many of us with the ongoing COVID-19 pandemic. My family and I have been observing the restrictions since they came in… indeed K and I were working from home for a couple of weeks before the restrictions came into effect here in Melbourne, as we have K’s parents staying with us from the UK. I have missed my regular run commutes with my friends and parkrun, of course, but have made up for this by running 5km each day and catching up with friends online for coffees or beers, depending on the time of the day.

On Saturday, 16 May 2020 my family got a big disruption thrown their way. Our five-year-old found me face down in the doorway of the bedroom. He calmly alerted K and then sought out his granny (whose flights back to the UK had been cancelled shortly after arriving in Melbourne back in March) and told her that I’d fallen over. My wife and her mother called the ambulance and identified that I was in cardiac arrest. They performed effective cardiopulmonary resuscitation (CPR) until the ambulances arrived about 15 minutes later. K had recently injured her wrist in a running accident, making CPR quite painful to perform, so I was doubly fortunate that my mother-in-law was stranded with us and in the house and able to assist. The ambulance crew got my heart beating by itself using their automated external defibrillator (AED) and took me off to hospital.

I don’t remember anything from the Saturday morning until the Tuesday evening, but have had the story relayed to me a number of times. I had to be shocked three or four more times after that initial use of the AED to allow my heart to re-establish an effective rhythm. I had burn marks on my skin as a testament to this but they have since faded. I was then put into an induced coma to stabilise my condition.

Coming out of the coma was very confusing. I didn’t know where or when I was. The drugs they’d had me on caused an hallucination where it felt like I was in a tunnel with amber flashing lights. A voice told me I was in the Royal Melbourne Hospital and eventually I was asked if I knew what the date or even the month was. I thought it was March, isolation perhaps adding to the confusion. Apparently I realised pretty quickly I’d missed World Whisky Day but I don’t recall saying this out loud. Funny how the brain works!

I was tired and drowsy after becoming conscious. K helped me eat some cold custard in the Coronary Care Unit (CCU) ward to try to boost my energy levels. I slept well that night.

On the Wednesday morning, two of the physotherapy team helped me learn to walk again. Putting my feet flat on the floor felt like a big deal but it felt good to take those first tentative steps around the CCU, with one arm hooked around the physio’s. It felt like a very positive step to get upright and mobile and I made every effort to get up and walk around when there was a nurse around to assist that day.

By Thursday, I felt comfortable walking short distances without assistance. I’d had all kinds of readings and measurements taken to check that the levels of medication I had been prescribed were working to keep my heartbeat regular and my heart muscle strong. Day on day, I was feeling stronger and stronger.

On Saturday morning, I had a visit from some cardiology experts who were really happy with my progress and talked to me about fitting me with an implantable cardioverter defibrillator (ICD) to prevent a similar incident in future. The operation was planned for Monday, with a view to me being discharged from hospital on the Tuesday. I felt elated! I had envisioned a much longer road to recovery at the beginning of the week. We were still unclear as to what the cause of the cardiac arrest was and we may never know for sure.

The weekend was quiet on the hospital ward. I followed the physio’s advice “Don’t get the sits” and took regular walks around the ward to keep myself active but also used the time and the fact that I had the two bed room to myself for most of the weekend to catch up with some friends with video calls and to read some books.

I wasn’t fitted with the ICD on the Monday but I was told that I might be better suited to a subcutaneous ICD (S-ICD) because I am “young” and “athletic” (not adjectives I’m used to hearing but it’s all relative, I suppose) but this would require a stress test. I did the stress test on the Monday afternoon, walking, jogging and running on a treadmill, while hooked up to an electrocardiogram (ECG) as well as an S-ICD simulator to ensure that the device wouldn’t administer any shocks that I didn’t need.

The stress test was a success and I was fitted with the S-ICD first thing on the Wednesday morning. Having such a sizable device implanted under the muscle under my left arm resulted in quite a lot of discomfort but that was a welcome distraction from the sore ribs from the CPR!

Now that I had suitable drugs to keep my heart free from ectopic beats and my own personal defibrillator to keep the heart beating should they fail (or, more likely, I forget to take them), there was no reason for me to take up a hospital bed and I was sent home to convalesce on Wednesday.

I am so very grateful to my family for their fast response, to Ambulance Victoria for administering the defibrillator and getting me to hospital, and to all the team on the CCU at Royal Melbourne Hospital for giving me the very best of care. I am also very thankful to everyone who sent my family messages of support, reading each one gave me a real boost and I am sure that the positivity really helped with my speedy recovery.

It is so good to be back home with the family. I am still adjusting to life post-cardiac arrest and post-implant but I know one day the ribs will heal, my fitness will return and I’ll be able to ease back into work and into running. Each patient on the CCU ward had a whiteboard for noting important information (name, nurse’s name, doctor’s name, estimated discharge date, daily plan, et cetera) and this board had a question about what is important to the patient. I had plenty of time and space to think about this and thought I’d share it as a part of this post:

To be an active member of a global family and to leave the world a little better than I found it.

Having this written down and shared with my family I’m sure will be helpful as I settle back into life. Much like the pandemic we’ve all lived through and the restrictions associated with that, we get to evaluate which parts of “normality” we want to keep and which we don’t.

I now have a plan from my GP for easing back into work and am looking forward to being back online with my colleagues. I’m told that cardiac arrest survivors have a high risk of depression, so my mental health is something I need to pay attention to in the coming months.

There were a few other things I want to share with you that my family and I have learned over the past few weeks. I hope you find them useful.

# Learn CPR

The survival rate for out-of-hospital sudden cardiac arrests is terrifyingly low. Effective CPR saved my life. Please learn how to do this properly: lock your elbows (don’t bend them like actors do) and don’t be afraid of cracking a rib or two, the casualty won’t mind. Trust me!

# Know the location of your nearest defibrillator

There’s an app for that. If you don’t have one in your office or other building where you frequently meet other people, consider asking for one to be installed.

# Family rooms in hospital are not just for bad news

K feared the worst when she was seated in the family room to have what had happened explained to her and had to ask at one point if I was still alive!

# Offer specific help

We felt very well supported for all of the time I was in the hospital and many people said, “if there’s anything I can do”. Genuinely we couldn’t think of anything. Some friends offered very specific help such as cooked meals, looking after the kids and taking the eldest running: these were absolutely amazing.

# Store you partner’s work contact details in case of emergency

Your employer probably has your emergency contact details on file for should something happen to you at work, but do your family know how to contact your work if you are incapacitated?

# Have someone you can delegate to at work

At the beginning of the pandemic, I nominated a member of my team who could represent me were I incapacitated due to COVID-19. This made it easier on my team when I was out of action.

Page 2 of 14