1. Write code
  2. Observe and test code as working
  3. Release to QA
  4. Receive defect ticket a day later
  5. Investigate issue and discover the code couldn’t possibly have worked under any circumstance, and it must have been a fever dream
  6. Return to 1.

Well, that turned out to be quite the adventure! After the tribulations of getting a Hue Smart Button linked to every light in the house, the next step was to get it configured to turn all the lights off, preferably without it turning them all on first.

My initial theory was that a custom scene could be created, where every light was turned off, and pressing the button would trigger that. This turned out to be wrong; a scene created in the Hue app must have at least one light turned on. So that was a dead end.

I mentioned in the first post that the button isn’t fully HomeKit compatible. This turns out to be a little confusing, but it’s ultimately where I found the solution. The button appears in Home, and it can be set with an action on press, but this happens in addition to what is configured in the Hue app. There’s an option in the Hue app to “configure in another app”. This brings up a menu which specifically says “Home app not supported”, along with a button for any other compatible app you might have (I don’t have any other apps installed). At this point I wasn’t feeling too hopeful about achieving what I wanted.

Figuring I had nothing to lose, I decided to try out what happens if I clicked the option for configuring in another app. No app opened up, unsurprisingly, but something interesting did happen: all Hue actions and scenes were removed from the button. It was effectively a connected clicker at this point. However! The button could still be configured in Home – opening up the option to run the Home “on press” action without also running a Hue scene. This was exactly what I was looking for!

So a few taps in the Home app later, I had the button setting the status of every light in the house to “off” whenever it’s pressed, including the non-Hue bulbs. So simple and straightforward… eventually.

So in summary, this is the steps I needed to get the Smart Button to turn off all my lights (and only turn them off):

  1. Use the Hue app to connect the button to your network.
  2. Make sure the button is synced with HomeKit and appears in the Home app.
  3. Back in the Hue app, go to Settings > Accessory Setup > your Smart Button
  4. Scroll to the bottom. Tap “configure in another app”. Then tap the same option on the menu that opens up.
  5. Wait for the screen to reload. All scenes and actions will have been removed.
  6. Open the Home app, find the button, then long-press to open the button options screen
  7. Assign whatever devices or scenes you want to the Single Press action

The “downside” of this approach is that your button can only do one thing, and it’s not a toggle, so pressing a second time won’t set your devices back to their previous state. That’s exactly what I wanted, but it might not be what you want.

I’ve been scratching my head since yesterday, trying to figure out how to get a Hue Smart Button to turn off all my lights with a single button press. Every night I ask Siri to “turn off all the lights,” and it would be nice to have a physical button to achieve the same thing – especially for those times Siri just refuses to understand what I’m asking it to do. I eventually found part of the solution, I think, but it took some digging.

The Smart Button’s product page on Amazon (affiliate link) specifically calls out switching off all of the lights in the house as a use-case for the Smart Button, so I was surprised it wasn’t completely obvious. If the Smart Button had been fully HomeKit-enabled (disappointingly, it’s not) this would have been incredibly easy to configure in the Home app. Unfortunately it needs to be configured in the Hue app instead, which is an app I’ve tried to avoid using where possible. The main issue I was confounded by was the Smart Button – and other Hue devices – can only be assigned to a single room, which in turn limits what it can control to that room. I looked into creating a custom scene as well – again, it’s limited to a single room.

In the end, the answer to “how do I control the whole house?” was a feature of the Hue app I’d completely forgotten about – Zones. Zones allow you to group multiple rooms, and control them all at once. Creating a Zone is done in the same place as creating a Room, it’s just made less obvious. The Smart Button can then be configured to control a zone (again, buried at the bottom, below the list of Rooms). Prior to this there were no mention of Zones when configuring the Smart Button.

It would have been useful for Signify to include some sample setups/guides in the box, or easily findable through the Hue app; if it took me overnight to figure this out, woe betide anyone coming into the Hue ecosystem for the first time. There are a few How-To’s in the “Explore” tab, but none specifically about this accessory, and the only other possibly-related video is about HomeKit options that don’t exist for this particular button.

I still need to figure out setting it so the button only turns off lights. I don’t want it to toggle the whole house on/off with each press, just turn everything off. I suspect the answer here lies in a custom scene of some description, but that’s still to be seen.

Finally, there’s also the complication that I have a couple of LifX bulbs in the house which should also be turned off by this button. They can’t be set directly through the Hue app, but I think I have a solution for this involving HomeKit Automations.

I got my first COVID vaccination jab a couple of days ago, so for the benefit of others I thought I’d share my experience.

First off, for the first 24 hours (almost exactly) after the jab, I had zero side effects. From that 24 hour mark I gradually started to feel a bit worse –

  • slight sore/scratchy throat
  • chills
  • body aches

In all, it was like I had a bad cold, just without a runny nose. I went to bed slightly early last night, feeling a little rough and expecting to feel rubbish this morning.

As it turned out, I woke up feeling absolutely fine. It’s as if yesterday afternoon/evening didn’t happen at all.

Having spoken to my project manager, who received his vaccination a few hours earlier than I did, his experience was almost exactly the same – right down to the 24 hour gap between first dose and experiencing any side effects.

All-in-all, it was much more pleasant than I’d expected; certainly, I’ve had much worse experiences with the yearly flu vaccination!

Outside the vaccination centre

I’ve had my first COVID vaccination jab! I was given the AstraZeneca version. It felt a little odd to be out on public transport for the first time in a while. The centre is in a new development I’ve never been to before, so I missed the stop I should have got off at, but thankfully the bus driver let me off before he got too much further along his route.

Inspired by Jeremy, Colin, and Cassie, I thought it might be instructive to myself and others to set out my “typical” day. I find writing about something helps focus my thoughts on the thing in question.

Off-the-bat, it’s worth noting I tend to have more of a typical week than a day, especially when it comes to working hours. My week ebbs and flows on a regular rhythm: I’m more likely to be head-down and coding on some days, more likely to be in meetings on others. My work schedule is mostly fixed around our two-week-long sprints, with the sprint “ceremonies” providing the regular landmarks to keep me on track.

As a brief aside on scheduling and organising – lately I’ve been using Sorted3, on iOS, and it’s been somewhat of a revelation. Scheduled meetings are entered first if they’re not already in my calendar (these are “fixed points in time”), then I add everything else I need to get done (with an estimate of how long it will need, if I can) and use the auto-schedule function to slot everything into place around the fixed points. I’ll manually tweak things if I need to prioritise something. It’s still early days, but I’m finding this a much easier system that needs less cognitive input from me – essential to making it a habit I can stick to better than previous apps and methods I’ve used over the years.

5:30am – 7:10am: I’ll wake up somewhere between these times. If it’s on the earlier side, I’ll generally snooze or try to get a little more sleep – usually unsuccessfully. Once upon a time I would’ve gotten out of bed around 6:10am, but the COVID Era has beaten that out of me. At 7:10am, my Apple Watch starts tapping me on the wrist. From here: if I’m feeling rested and/or awake enough, I’ll get out of bed; if not, as is usually the case, I’ll read a bit on my phone – check my personal emails, scan the news and my RSS feeds, maybe some Twitter. I try not to wake my partner, Caley, with the glare from the screen. If she is awake we’ll have some mumbling, half-asleep conversation about the news headlines, weird dreams, or whatever.

7:45am – 8am (or thereabouts): If I haven’t already, this is when I’ll get out of bed and make my way downstairs. My first step is to shower. During the week, that’s a cold shower. I find it helps me shake off the last of the cobwebs, get energised, and generally helps my mood. Right now it’s winter in Scotland, so the water coming out of the shower head is extra cold. A side benefit of a cold shower is that it tends to be quick… but I do like to stand with the water hitting the base of my neck for as long as I can stand it. I find this gives me the most “feel good” benefit when I step out. Next is getting dried + dressed. For a while I was trying to maintain a sense of “normality” by wearing my usual work clothes during the week. That’s long passed. Well-worn jeans and a t-shirt or jumper are the order of the day now.

8am – 8:10am: Around about now, Caley tends to make her way downstairs. I fire up the coffee maker while she heads to her desk in the living room and switches on her laptop. The measures on the side of the coffee pot tell me we’re drinking a little over twice as much coffee now as we did back in March 2020. I pour my coffee into my Bodum travel mug and head upstairs to my WFH area.

8:20am – 8:30am: Time to log in to my work laptop and connect the VPN. While everything is getting connected I’ll scan my email on my work phone, just to see if there are any short-notice issues or schedule changes. I’ll post a “good morning” in the general Slack channel, along with some emoji to represent the weather report.

8:30am – 10am: Read through my emails properly, check my calendar, and plan and prioritise how I’m going to approach my day. I have an hour and a half before Daily Stand-up, so I use the time to either polish off tasks I didn’t quite get finished yesterday, or take care of any admin-y tasks, answering queries from the newer team members, or non project-related work. For the last few weeks I’ve been using this time to work on my promotion presentation. Around 9:40, I’ll wander downstairs for a 10 minute break and coffee refill. During my breaks throughout the day I’ll chat with Caley and we’ll update each other with how our respective days are going. Often this means I’ll listen while she exasperatedly describes what the latest problems she’s dealing with.

10am – 10:20am: Daily Stand-up, following the usual format: what I did yesterday/what I plan to do today/anything which might block me. If someone needs something from me this is usually when I’ll find out about it – at which point it gets prioritised and put into the plan for the day.

10:20am – 11am: I try to tick off the smaller tasks on my list during this time. These might not be the most high priority, but I’ve found this is a good time for them. Forty minutes is an awkward amount of time to fill. Once one or two tasks are done, I’ll take a 10 minute break away from my desk.

11am – 12:20pm: If I have another project-related meeting in the morning, it’s usually for 30-60 minutes at 11am, depending how many people need to be involved. Usually these meetings are for high level planning/one-to-one’s with the project management team, or responding to any potential risks. If there’s no meeting, I use this time for making progress on any user stories assigned to me, fixing defects found by the QA team, or working through any code review comments I need to resolve before a story can be merged in. This is often my most productive time, and most likely to be when I’m “in the zone”. I try not to, but often I’ll lose track of time and continue on right through to 1pm.

12:20pm – 12:50pm: Assuming I haven’t lost track of time, here’s where I try to fit in 30 minutes of exercise. I push my office chair into the far corner of the room, throw on shorts and a different t-shirt, and pull out my exercise bike. If needed, I’ll go downstairs to refill my water bottle. I load up Apple Fitness + on my iPad, which fits in a mount on the handlebars, and start peddling while I pick a 20 minute workout to go along with. Once the cycling workout is complete, I load up a 10 minute “mindful cooldown”. I’m not particularly into mindfulness, but I am finding these particular exercises to be quite good for mentally “resetting” for the afternoon.

12:50pm – 1:20pm: Get changed again and go downstairs, where I’ll have lunch in the kitchen and try not to think about work for 30 minutes. If I’m on a 16-8 cycle, this will be my first meal of the day. Caley will usually be starting her lunch around 1pm, so there’s a little bit of overlap for chatter and updates.

1:20pm – 1:30pm: Take 10 minutes to check through the various organisation-wide Teams channels and chats for anything which needs a response or I want to get involved with. Scan my email for anything which needs my attention. Respond if it’s a quick task, or file it for later if it needs more than a couple of minutes.

1:30pm – 2pm: 30 minutes of smaller tasks; typically this will be preparing a pull request of my own, or finalising a review and approving the pull request of someone else. Updating the story board and admin-y tasks like timesheets often land here.

2pm – 4pm: If I have an afternoon meeting, usually it will land in this slot. Some (like the end of sprint wrap-up) will take most – if not all – of the 2 hours; most are 30-60 minutes – the defect status call, the local office “social chat” and catch-up… that sort of thing. If the time is free from meetings, this is when I’ll have pencilled in my most important bit of work for the day – usually it’ll be working on the main chunk of a user story (possibly a different one to what I worked on in the morning), or a particularly big code review. Other candidates include responding to anyone who needed a considered or researched reply. If there were one or more meetings then I’ll fit tasks around those, trying to keep as much progress going as possible.

4pm – 5:30pm I start to wrap up my working day. If I have anything remaining which will fit from 4-5pm, then I try to do it here. More often than not, this will be the busiest time for other members of the team asking me a technical query, or “preparing” me for something they’ll need tomorrow. I try to deal with these as efficiently and quickly as I can. I would prefer to finish at 5pm, but usually it stretches to 5:30pm. If I remember to, I spend a couple of minutes making notes on how the day has gone and what I achieved, then I put the laptop to sleep. Occasionally there will be a meeting 4pm-5pm, but thankfully those are rare.

5:30pm – 7pm Decompress from work time. I’ll head downstairs and join Caley on the sofa, or in the kitchen. We might put some short YouTube videos on the living room TV, partly as background noise. Decisions are made about what we’re eating for dinner, and generally Caley will start cooking it somewhere between 5:30pm and 6pm. I help where I can/she’ll let me, or I’ll pick a household chore to do that won’t get in the way. When dinner is prepared, we head back to the sofa to eat and find something to watch while we chat . It’ll either be one of our YouTube subscriptions, or if there’s a series like Bake-Off currently on the go, we’ll watch the latest episode on catch-up.

7pm – 8:30pm If I’m going to do anything other than chill out on the sofa, this is when I’ll think about making a start on that. Caley usually pulls out a book or a craft project while we’re on the sofa. For me, things I might think about doing include: reading a book of my own, picking a game to play on the PC or PS4, tinkering around with something on the PC (like the internals of this blog…) or, less frequently of late, indulging in some miniature painting/building.

8:30pm – 10pm (or thereabouts): Caley normally heads upstairs for some “quiet time” reading in bed between 8:30pm an 9pm. If I’d found something to do earlier, I continue on with that until about 10pm when I start to wrap things up. Otherwise I’ll be jumping between apps on my phone for a bit to keep myself amused and relaxed.

10:20pm – 11pm Around about now I start the bedtime routine: brushing teeth, checking the doors are locked, etc. If there’s anything to prepare for tomorrow, and if I’d forgotten about it earlier, it’s done now.

11pm (or thereabouts): Lights out.

Reading through all that, you might think my work day is dominated by meetings. It’s really not as bad as it might seem. For most of the meetings I have, I can multi-task in the background – making progress on other things I need to be doing while I’m listening in, waiting to give my inputs.

Like most people I suspect I have days where I don’t feel like I’ve actually achieved anything, and others where I’m amazed by how much it seems I’ve made it through. I find the trick is to just keep going steady. Those really productive days are usually the culmination of work you pushed yourself through on the slower days.

As far as general work-life balance goes, right now I feel things are “okay”. Working from home full time in this COVID Era can make it feel like you’re always working, as you pretty much never leave “the office”. This comes and goes depending on the restrictions in place and how safe it feels to be out and about. I’d love to have some more time completely away from things – the thing I probably miss the most from my pre-COVID routine is my daily commute to/from work (and to a lesser extent, my lunchtime walk). It was a combined 2.5-3 hours a day away from almost everything, and I could zone out listening to podcasts or an audiobook while I walked the 4.5KM to-and-from the office. I find it’s harder to do this while at home. But as a general rule, things are fine right now, and I find I’m generally feeling in a good spot and positive despite *gestures at the world*.

A Short Introduction and TL;DR

I’m not one to make New Year’s resolutions; the changing of the year is more-or-less just another day to me, and I tend not to assign it significance enough to make goals in advance. That said, I do like to set myself some objectives once I’ve got an idea for where the year might be headed. 2020 was a bit of a disaster on this front, but more on that in a retrospective blog post. Anyway, as I know roughly where I expect the first six months of the year to go, now seems as good a time as any to write down some of those objectives (in no particular order):

  1. Get Promoted.
  2. Get Certified.
  3. Lose the Lockdown Weight
  4. Continue My DevOps Journey

The Objectives:

1. Get Promoted

Shortly before Christmas, my project manager called me up to ask if I’d 1) thought about going forward for promotion, and 2) would I like to be put forward for promotion. About half an hour after that, my Director phoned me up along the same lines. Off of the back of the recently completed performance review exercise, they felt I was working at the level above where I was currently graded, and felt I was a strong candidate to pass the promotion panel.

I was humbled and grateful for the confidence they’ve shown in me, and I hope to reward that faith by successfully navigating the promotion process. I do have to give a presentation, which is not something I enjoy, and prepare quite vigorously (in addition to all my regular work!) but I’m reasonably confident in my ability to get through it all.

As the panel will be held in a few weeks, this is likely to be the first objective I succeed or fail at this year.

2. Get Certified

The Chartered Institute of IT Professionals (aka, British Computing Society/BCS) is something looked at from afar for several years. For reasons best known to the hidden, inner workings of my brain, I never felt like it was something I was “good enough” to join. The BCS was for serious IT Consultants, with decades of experience.

It wasn’t until after the conversations I mentioned in objective one, and in the follow-up promotion preparation that I realised: “hang on, I am a serious IT Consultant with decades of experience (two of them!)”. With that brain obstacle finally overcome, I applied for Professional Membership. It comes across as a serious business: you have to submit your CV for review, and someone has to be willing to vouch for your experience and ability. I was accepted in less than twenty four hours, and as such, I can list MBCS after my name.

But my objective doesn’t end there. Much in the same way other professional trade bodies certify members who meet strict criteria, the BCS does too – this was one of the reasons I had wanted to be a Member of the BCS in the first place. My objective is to earn my status as a Chartered IT Professional.

Looking through the criteria and process, it’s much the same as the internal promotion process I am going through right now. Early 2021 strikes me as an opportune time to get this done.

3. Lose the Lockdown Weight

I’m not sure how much explanation this one needs: with all of the lockdowns, “stay at home” messaging, and well, stress, of COVID in 2020, my weight has gone up a lot more than I’d like. More importantly than that, I’ve felt my fitness and comfort dropping.

In late 2019 and pre-COVID 2020 I was successfully working hard to lose weight. I can’t reinstate the exact same routines in 2021, but I have an exercise bike, Apple Fitness +, and a desire to get back on track.

I’m not asking for any sort of miracle weight loss. Just to feel more comfortable in some of my clothes again, and some signs of improvement.

4. Continue My DevOps Journey

In 2020 I passed my first Microsoft exam for an accreditation. This came as part of a push to learn enough about DevOps and pick up enough skills that I could – at a pinch – take on a DevOps role or otherwise deploy the skills in a useful manner at work. As it was, I landed in my current project instead, and I didn’t get to continue down the path much further.

But I’m conscious that projects tend to come to an end eventually, and DevOps skills demand has only increased over the intervening months. So I want to pick up where I was and take things forward again.

Internally, we offer a DevOps “boot camp”, which is a short, intensive, pathway into the DevOps world. I took part in the first version of the course, but it’s been refreshed and now offers a direct path to two further Microsoft accreditations – both of which I had planned to study for in my free time. I figure that if the company are willing to pay for these, then I might as well take them up on the offer!

The main challenge I’m going to have with this objective is time. It’s a self-study course, nominally over a 3 week period, and then there’s the exams to prepare for after that. With everything else going on at the moment, I simply don’t have the time to spare… and I worry about losing momentum. But this is part of the reason to write it down here – to hold myself accountable!


So, those are my initial objectives for 2021. Or at least, the formal ones that I’m trying to commit to. I have others that are more nebulous at the moment to write down, and others that probably fall more in the “projects” category than an objective. I might detail those in another post.