tag:blogger.com,1999:blog-79511248897733484112024-03-27T23:54:03.447+00:00tomnatt.comComputer games, the web and life in BathTomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.comBlogger193125tag:blogger.com,1999:blog-7951124889773348411.post-60170977072537206082024-03-08T20:38:00.003+00:002024-03-08T20:38:54.094+00:00Celebrating the important people - part 1<p>Everyone can look back at their life and identify people who have had a huge influence on them, for better or worse. In my professional life I have been fortunate to meet a lot of great people, but there are four people who (in different but very positive ways) have had a profound effect on my career and development and are the ones to whom I give credit for my current position. I've been thinking about different ways to tell this story - partly because I'm deeply thankful to and for these individuals, and partly because I think it's important for anyone who works with others to realise the effect they can have on those around them.</p><p>Two of my four people are women, and so I'm going to celebrate these two and post today on International Women's Day (March 8th 2024 for future readers). I'm not going to name names because at least one of them will just be embarrassed by public praise and thanks, however if they do read this and give me permission I'll update / follow up later. If you read this and know who I'm talking about, please don't out anyone in the comments. For the moment I'm going to call them Amy and Bree.</p><h2 style="text-align: left;">Amy</h2><p>I started my time in tech on an IT support desk, servicing whichever members of the university community walked up and asked questions. Amy offered me this role after she caught me behind the counter fixing a computer, helping out a friend who already had a job there. The interview lasted as long as "is that going to work?" "yes..." "want some shifts?". This was my first proper professional opportunity (previous jobs being typical student roles and work experience) and fundamentally set the course of my career in the Tech space - before this, my Dad and I were discussing some kind of management accountancy role. Amy opened a door here, but this was just the start.</p><p>Working on the helpdesk could have been a routine role doing shifts and bringing in enough to live on. Instead, Amy encouraged me to take on support for the university's student machines in our library and manage repair and maintenance myself. This was really quite significant for someone in their first role at the age of 21. In addition to the technical problem solving, Amy gave me experience with broader organisational problem solving and working with suppliers (some of whom were really awkward). When I spotted problems with our processes, Amy gave me the space to make improvements. Looking back, Amy gave me a huge amount of trust and freedom - especially considering my age and lack of experience. But this let me grow in professional confidence and laid the first foundations for me to think about work beyond Just The Day Job - a skill which has proved utterly invaluable throughout my career. At the time, I had no idea this wasn't the norm but looking back, Amy broke the "tech for tech's sake" thought trap in me before I even fell into it. Without ever using the phrases, she made me focus on the user needs and the broader systems at play.</p><p>All this was incredibly valuable, but what happened next was a step beyond. After just over a year in this role, I had to approach Amy and say I needed to move on. I was enjoying my time working on the helpdesk but the lease on my house was running out, flatmates were moving away and this wasn't a role I could keep doing for much longer. I was preparing to move home to my parents and strike out from there.</p><p>Amy had other ideas. Next thing I knew, I was in a meeting with a couple of very senior people in Computing Services and she was telling them "this is someone you need to keep". She didn't so much open a door here as kick it open and demand attention and this led directly to my first developer job. While the helpdesk experience was incredible learning, it was this action that locked me into a career in Tech and it was 100% down to her decision and willingness to stick her neck out for me. This one action literally led to my current situation, sitting here as a senior tech leader with a wealth of highly technical experience behind me.</p><p>Looking back, Amy was incredible to me even if I was too young and foolish to realise it at the time. She embedded particular ways of thinking that are still of value daily today and literally set my future field for me. She believed in me, helped me build my confidence and gave me space to learn and experiment. I hope I pass this on to those around me.</p><h2 style="text-align: left;">Bree</h2><p>Many years later, I had been working through a very difficult time at work. The year had resulted in serious burnout and a complete destruction of my professional confidence. I reached a point I could not continue, and left my role with no role to go to. I needed time to rest and recover, then figure out what I wanted to do next because I did not feel confident to do the kind of role I'd been occupying. </p><p>I got an email which led to a conversation which all boiled down to "Hi, it's Bree. I hear you're leaving Blah? Any plans? We might be hiring! Would you be interested in helping me work through a major org change?"</p><p>I have no words to communicate how important it was to have this kind of conversation at this at this stage in my life. In short order, I was back in the maelstrom of change and leadership but with some essential differences. This time, I felt respected by the organisation and it felt like people actually wanted me to be there. This is entirely down to Bree and her decision to reach out and I cannot express how thankful I am to her.</p><p>Honestly, I came into this space damaged and it took me a long time to start to relax into the role. Bree gave me support and space to heal while I ramped up. She restored my professional confidence and gave me a forward trajectory at a time when I was seriously considering turning my back on this profession. Bree showed me a possible future for my career and encouraged (and shoved) me towards it.</p><p>Not that she gave me an easy ride! Bree pushed and challenged, expanding my boundaries and horizons. She demanded excellence, but a new thing for me was also having to work to define what excellence meant before then having to (attempt to) achieve it. Bree kept this challenge in a very positive setting, which made the difficulties an interesting problem rather than a trial by fire. It is very hard to constantly push for better without damaging morale, but Bree's leadership told a clear and inclusive story: "we can do better - let's get there together". Many responded well to this, and we saw a strong culture developing from this simple but inspirational message.</p><p>Bree taught me so much about operating at senior leadership levels - how to set a culture, how to polish communication, how to put myself into the wider conversation, how to articulate value, not to mention how to run a broad department while keeping a hand on the details. She helped me learn and refine key skills, but more importantly she helped me develop the ways of thinking which drive them. These are strong foundations from which to develop and evolve and this is an incredibly valuable gift.</p><p>These days I have a very minor public profile. This blog post will appear via LinkedIn - I've mentioned before how posting there was a big step for me and taking that step was again thanks to Bree encouraging me to develop my platform in this way. Before, I had some thoughts for how the industry could improve and thanks to her, these are more than random muses and I am thinking in terms of what I can actually do to change and influence things.</p><p>Bree has had a huge influence on my career by helping me think differently and challenging me to stretch myself and grow. She also gave me the support to heal through encouragement and belief when I needed it the most, not to mention opening doors into different worlds. Most importantly, Bree made me believe in myself as a senior leader at a time when I absolutely did not. It's hard to imagine a greater gift.</p><p>To loop back to the top, I wanted to post this on International Women's Day to recognise and celebrate the impact of these two women on my life. They have profoundly affected my career and if you've got this far I also want to challenge you to try to be on someone's list one day. We can all do this - take the time to invest in people, develop them and have a little faith. It sounds easy boiled down, but it takes thought and effort. These two did it, and I spend most days trying to live up to this standard.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-12471674578245393502024-02-25T14:13:00.001+00:002024-02-25T14:13:44.253+00:00Failing upwards<p>Humans are fascinating aren't they? Everyone is different, behaves differently, thinks differently... and before looking at others we can spend a lifetime just understanding our own minds and thought processes. I try to spend a lot of time reflecting (often I then write those thoughts down here) and one area I find very interesting is how I learn. I blame my mother for this - she's a teacher and embedded in me an interest in the different ways people learn and understand.</p><p>Like many others, one of the ways I learn is experimentation around the boundaries. If I know how a system or a situation is supposed to work, I will sometimes see what happens one step beyond the stated limit. This is particularly useful with computers where one can watch log outputs and understand the complex system while modifying variables. However, it's also useful exploring options and testing perceived limits in the office. One of my first decisions as a senior leader was around a change in recruitment policy which nobody could work out how to sign off. I just ... did. Mostly to see if anyone would tell me I'd overstepped.</p><p>That was some five years ago, and as far as I know it was never reverted. Importantly, I discovered that the actual limit to my authority in this role was way beyond where people mentally placed it, and it moved the moment I challenged. So, armed with this knowledge, I then had a whole new space to explore what could be done.</p><p>Before moving on, I fully acknowledge that this is hardly sophisticated. While I like to think I've learned some more finesse over the years, "pushing boundaries" is what what two year olds do to try to understand the world. They push the parents to see how far they can go before getting put back in their place. But they do say we lose our inquisitiveness and bravery as we grow older...</p><p>Anyway, the reason for this post (other than outing myself as a 6' child) is reflecting this into the workspace. At work, I spend a lot of time developing people and a vital part of that is thinking about how they can push their own limits and move further forward. I've seen very smart people stunt their own growth through their fear of failure - unwillingness to push themselves forward and potentially be wrong.</p><p>This is problematic in general, but lethal if an individual's aspirations are to reach the highest levels of an organisation. At that point, there is no manual and you're thinking on your feet the majority of the time. You have to be able to see where you are being limited - by yourself, by the org processes, whatever - and seek ways to push through and improve the situation. For those of us in leadership, that means giving people the space to explore into an area where they might fail and then allow them to find their own way through, even if this isn't quite as clean or direct as we'd necessarily like. Clearly we should help where needed (after all, not all failures are equal) but it's no use constantly being training wheels as this will never build confidence. Worse, it might lead individuals to see the problem as "what makes Tom happy" rather than "what needs to be done to make this situation better" at which point I'm doing all the thinking and that is neither helpful nor sustainable.</p><div>Obviously what I'm talking about here is managing the fear of failure (not necessarily by removing all the consequences) and building a psychologically safe environment. If individuals can push the limit of what they can do, they can learn and grow. They can grow towards the next step on their career, and that means instead of having a report we've got a report who is behaving more like us - or at least our level. This is great for their growth, and infinitely more useful to us as leaders as when they've developed the skills we can spend less time managing them and more time leading.</div><p>So let's encourage our people to make themselves vulnerable, give them a space where that is safe and let them do things that are imperfect so they can develop the skills to be as perfect as us (ha). Let's encourage some failure?</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-54878560900581289132024-01-27T18:43:00.000+00:002024-01-27T18:43:12.590+00:00Exercise in the new year<p>It's the start of a new year and I've made a few resolutions around fitness. Many are the same as the ones I made last year, which gives you an idea of how well these things tend to go for me.</p><p>I regularly see both a PT and a soft tissue therapist. Both are excellent (if you are in the Bath area and want a recommendation, give me a shout). My problem is that while it's very good for me, I don't really like the gym. I find picking up the thing then putting it down again entirely pointless and I don't really get much from the weight getting bigger. I've been trying to explore my thinking here with these two fine folk and I think we've finally brought together some disparate thoughts into something helpful.</p><p>First, I see the gym in general as a support activity rather than a means to an end. Rather than finding the activity and any progress compelling in themselves, I only get enjoyment when I see other activities getting easier / faster / better as a result. When I was younger, I did a lot of martial arts training - that was my exercise endpoint and I took pleasure getting better. Gym and other raw cardio training helped with the martial arts, so I enjoyed it. I have been out of martial arts training for some time, and I've been trying to use the gym as a substitute. This doesn't work for me, and I need to find an alternative.</p><p>Fortunately, I have just the thing. I have been a keen badminton player since I was a teenager and during my adult life I've been in and out of playing depending on time (ie work) and availability of people to play against. I've just started playing again and it is a lot of fun, while also being a great focus as a reason to get fitter.</p><p>Second, talking to these professionals has helped me realise there a third kind of fitness. Previously I've thought about fitness as important for health - which is obviously the most important thing, but really boring when abstract - and to power other sport as above. However, there is also the fitness that powers our ability to do basic "athletic" things like twisting and jumping.</p><p>Like many, I work a desk job and my current employment is remote. If I don't make the effort, I can easily clock in about 200 steps in the course of a day - sedentary doesn't really cover it. Continental plates move more than I actually need to, which is why I force myself to walk a few miles every day after work. Being like this is not that unusual in the modern world and many people of my age really struggle to walk any distance or jump a stream or physically twist. Our bodies atrophy and generally forget how to do these things. I realise I find this frustrating, and retraining simple jumps and twists and so on is something that I enjoy - and I get a lot out of seeing my progress. Some shifting around my training schedule has changed the focus and this has really helped with my engagement, which means I push harder and get a lot more out of it. Of course, training snowballs - when it starts going well it builds on itself. Getting started is often the hardest.</p><p>I'm sure many reading this will finding it blindingly obvious, but I have never really understood my own positive triggers when it comes to exercise and maybe recording my thinking here will help someone in my position. As I've said many times before, half of writing this blog is a way for me to arrange my thoughts so I understand myself and any readers are here for the ride...</p><p>Plus, it means I get to write about playing badminton again (and winning :-) ).</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-60046782416829929192023-12-31T15:50:00.000+00:002023-12-31T15:50:13.802+00:00The year that was, 2023<p>Well, it's the end of another year and it has been a strange one. It hasn't been a terrible year, like some recently. But I also don't seem to have done anything except work. In review at the end of the year, I feel I've learned a lot and I feel very tired. So let's see whether I've achieved anything at all - there has to be a bit more then Hell Let Loose and Roboquest.</p><p></p><ul style="text-align: left;"><li>14 posts on this blog (15 including this one) - ninth consecutive year of a post per month</li><li>Started posting my blog posts on LinkedIn - small thing, but a big deal for me</li><li>Another year of <a href="https://www.theyearinpictures.co.uk/">the Year in Pictures</a> - ninth year and we're up to 40 photographers</li><li>224 <a href="https://github.com/tomnatt/">Github</a> contributions - well down on last year</li><li>Rebuilt <a href="https://tomnatt.blogspot.com/2023/11/sending-email-in-2023.html">my email setup</a> so email actually arrives</li><li>Finished <a href="https://tomnatt.blogspot.com/2023/01/migrating-away-from-heroku.html">replatforming all my apps</a></li><li>Started playing D&D again</li><li>Started writing a D&D setting too</li><li>Some reading</li><li>Managed to see a few friends for the first time in years</li><li>Foraging cookery course</li><li>Completed another escape room</li><li>Stripped down and repaired the taps in my kitchen</li><li>Finally sorted out the signatories on the house bank account (2+ years!!)</li><li>Another year of exercise with a personal trainer</li><li>Established a good physiotherapy regime</li><li>Another year of the Saturday morning exercise class</li><li><a href="https://tomnatt.blogspot.com/2023/06/next-cio-2023.html">Won an award for CIO potential</a></li><li>Spoke at a conference about <a href="https://tomnatt.blogspot.com/2023/09/some-thoughts-about-future-of-tech.html">the future of tech</a></li><li>Yet more instagramming</li><li>More photos on <a href="https://www.flickr.com/tomnatt/">my Flickr stream</a></li></ul><p></p><p>Resolution count - 3/10. Utterly awful.</p><p>This time last year I wrote this:</p><blockquote><p>"Looking forward to 2023, I'm going to write the same thing I write every year. I need to spend less time working and more time living."</p></blockquote><p>It really has been a strange year. I seem to have been constantly busy and yet outside of work achieved very little. I feel like I've spent so much of the year on the back foot - whether that's because I've been worn out, or because I've spent time doing things for other people and not moving forward with things I want to do. My resolution count shows this - lowest in years. For various reasons, I've not been able to prioritise much for myself. I've learned very little, and not completed many projects leaving an overall sense of emptiness.</p><p>It has been a sub-optimal year for physical health. I've had a year of blood tests for chronic fatigue (fortunately nothing) and all manner of problems with my hips which have blown apart my fitness. I've been nursing injuries since May and while training and physio has helped, I feel like I've moved backwards (and outwards) this year. This is something I really want to turn around in 2024 if I can avoid damaging myself any more.</p><p>Also, while I don't feel too bad as I write this, I think my mental health has taken a battering this year. My work / life balance is completely off - the worst it has been in years. However, unlike previous years when this has been the case at least I'm enjoying the challenge this time around. But that doesn't change that work has been full on, which has led to much exhaustion and doing less of my own things while I hid and recovered.</p><p>All that said, while my real-life has been less than ideal my work-life has been doing ok. I have achieved a lot in my current role and even won an industry award which was rather surprising. I don't write about work much during this year-end post but this year it's worth calling out the success to contrast ... well ... everything else.</p><p>So some words for 2024...</p><p>Looking forward to 2024, I'm going to write the same thing I write every year. I need to spend less time working and more time living.</p><p>Sigh.</p><p>More seriously, I want to focus on my health - physical and mental. I need to increase the quality of my time across the board. The time I spend at work needs to be better spent. Outside of work, I need to make better use of the time I have - doing more, and resting better. I definitely need to do more myself instead of chasing round after other people. This year - quality over quantity.</p><p>Time for 2024. Tally-ho.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-24024670695509540382023-12-30T12:41:00.006+00:002023-12-30T12:41:57.104+00:00Professional new year resolutions<p>It's my favourite time of the year - the null zone between Christmas and New Year where nobody is doing anything, the weather is awful and hiding away is socially acceptable. I can sit with a laptop, learning about things I never find time to touch during the year and slowly become one with a chair. All without any guilt that I should be doing something else.</p><p>Every year I write new year resolutions and then do an end of year summary however this always focuses on my personal life. This year has been VERY work-heavy so I thought I'd also write some extra new year resolutions for my professional life and why I think they are important. It's the holidays so don't expect anything enormously insightful - there is a huge list of things I should be doing, and this is more about where I should refocus myself for the new year. Here we go.</p><h2 style="text-align: left;">More engagement</h2><p>Anyone who has read Future Engage Deliver knows that you can have a vision (Future) and set everything up for output (Deliver), but if you don't bring people along (Engage) your success is going to be limited at best. This ranges from simple visibility through to detailed talking about strategy to everyone, both in the team and wider. When physically in the office some of this happens just by not hiding behind a closed door, but when working remote those corridor conversations don't happen - there is the need for more deliberate mapping of communications and touchpoints.</p><p>My area is now essentially a remote working group and that creates a need for more deliberate communication. We're also in a time of change - a very exciting time, but change is always unsettling. This is going to make engagement even more important.</p><p>I don't think I'm too bad at engagement - but only when I prioritise it. There has been a LOT going on, and good engagement takes time and energy - two things that have been especially in short supply in Q4 2023. So for 2024 I'm going to look to make two changes. First, make sure my engagement is of a higher quality. Second, and more important at the moment, I'm going to prioritise engagement which means finding or making more time for it.</p><h2 style="text-align: left;">Give back more</h2><p>The Tech industry can be a pretty bleak place at times, and the only way that will improve is by all of us doing what we can to make it better. Over the years I've tutored, coached, mentored and set up groups. These days I'm still mentoring people across several different organisations - particularly people who are leading software engineers, and software people who want to progress into senior management. I also sit on the London Data Board, I've done some consulting with groups looking to restructure (both paid and pro bono) and I've spoken at conferences about technical leadership.</p><p>I get a lot out of these kind of things and I am going to assume it's helpful! I'd like to find ways to do more. If you'd like a chat do reach out. Otherwise, I need to explore some ideas around this - ways to share / cooperate / mentor and so on. I'm not very clear what I can do beyond more mentoring (I'll post about that in the new year) but I'd like to find something.</p><h2 style="text-align: left;">Do less</h2><p>Both of the above will take time and while we insist on saying "make time" this is actually impossible. Time is a fixed resource and needs to be spent effectively. What I want to do in 2024 is to make sure the time I have is spent on quality activities. For 2024, that is going to mean two things. First, a renewed focus on delivery - getting things out the door rather than spinning wheels and sustaining. This will also help with the good feels - everyone likes achieving things. </p><p>Second, I'm going to ensure the various meetings and governance processes I attend are providing proper value. As mentioned earlier, we are in a time of change and that can easily mean overlapping or redundant org processes. This only costs us time and energy, so finding and stopping them helps not just me but everyone. I'm going to push back hard where it seems appropriate to do so to protect my time.</p><h2 style="text-align: left;">Work / life balance</h2><p>Actually, there IS a way to "make time" - work more hours. That has been my default in 2023 and to everyone's surprise it has proven unsustainable. In 2024, I need to balance work and life better. This doesn't just mean looking at working hours - I need to put things in my off-time and have the energy to do them. I know there are problems when I'm not doing anything in my free time because I'm too tired so this is a move to protect my mental health.</p><p>So that's it. In 2024 I'm going to work on how I engage with people, I'm going to find ways to give more back to the industry, I'm going to focus my time at work and I'm going to improve my work / life balance. Any guesses how I'm going to get on? Happy new year!</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com1tag:blogger.com,1999:blog-7951124889773348411.post-19605261456833765582023-11-13T20:09:00.005+00:002023-11-13T20:09:41.488+00:00Sending email in 2023<p></p><blockquote>"Your email keeps going into my junk box" - everyone.</blockquote><p></p><p>I use a vanity domain to front my email address. I used to run a simple setup where the domain was basically masking my Gmail account. Incoming was handled by a wildcard forward in the domain host. Outgoing, I simply rewrote the email envelope with my desired email address. Essentially I was spoofing the outgoing email.</p><p>Gmail used to let me do this, but clamped down years ago requiring proper authentication with an SMTP host however the old setup still worked, as long as I didn't change anything.</p><p>Then the big email providers started clamping down on this kind of thing. In an effort to combat spam, email is increasingly complicated and the wider ecosystem is getting more locked down. There is a big rumble about the big providers essentially pushing smaller email providers out by blanket not trusting them, making it increasingly difficult to run your own email setup. This post is not about that, rather it's how I stopped my email started going into junk boxes. I was forging my own sender address, which is exactly the kind of behaviour you see from various types of spam. Nice.</p><p>So, on the assumption I wanted my email to arrive I needed to revisit my configuration and set this up properly. I did a bit of work, so I thought I'd write up here so I can repair it in future if needs be, and it's in one place on the offchance it helps anyone else.</p><h2 style="text-align: left;">Incoming email - you're emailing me</h2><p>Not many changes here - although I use a combination of Cloudflare and Ionos DNS these days, but a blanket forwarding rule in the Ionos config from the whole domain still works.</p><h2 style="text-align: left;">Outgoing email - I'm emailing you</h2><p>Ok, this is where it gets interesting. I can still send email, setting the domain to whatever I want, but my emails are being flagged as spam. This is because the receiving hosts are trying to protect the account owners from spam and my setup was being flagged as spam. Obvious note - I set up a test Gmail account for receiving email so I could test the effects of my settings.</p><h3 style="text-align: left;">Outgoing SMTP server</h3><p>First thing was properly configuring an outgoing mail server. In theory, <a href="https://www.cubebackup.com/blog/how-to-use-google-smtp-service-to-send-emails-for-free/">this can be done with the Gmail SMTP service</a> but while I could authenticate properly I found my email still ended up flagged as spam. I'm sure there is a way to do this properly but for the moment I instead turned to <a href="https://sendgrid.com/">SendGrid</a> and <a href="https://docs.sendgrid.com/for-developers/sending-email/integrating-with-the-smtp-api">this documentation was useful</a>.</p><p>A free account allows 100 emails per day - plenty for me. Nobody wants to hear more of me than that. In the SendGrid interface it is easy to create a API key (Settings -> API keys) with appropriate emailing sending permission then when adding the server details, just select smtp.sendgrid.net / apikey / $YourKey. Only slight gotcha is making sure you get the port right (SSL over port 465). This should authenticate properly and email can be sent - although it'll probably be going to junk again.</p><p>Next up, setting up DKIM. This stands for DomainKeys Identified Mail - an email authentication method designed which allows the recipient to check that an email came from the domain it claims, and was allowed by the domain owner. The setup is found in Settings -> Sender Authentication. You might be able to get away with Single Sender Verification, but I did the full Domain Authentication. You need to be able to modify your domain's DNS settings for this to work properly.</p><p>If the setup doesn't seem to be working properly you can test the individual additions on the command line with a tool like dig.</p> <p><code>dig foo8908.tomnatt.com</code> should give a NOERROR response. If it's not, the setting isn't right or it hasn't refreshed yet.</p><p>Finally, assuming this is for personal email you'll want to disable link tracking. This rewrites links in your email for marketing purposes and likely break any links you send unless you configure it properly. Turn it off with Settings -> Tracking -> Click tracking -> disable and links will work again.</p><h3 style="text-align: left;">Other DNS setup</h3><p>There are two other DNS entries that can help with proving email provenance - SPF and DMARC. I'm not sure whether I needed all these for a minimal setup, but they do work best when all three are present. I did configure them, so I'm capturing what I did. </p><p>SPF (Sender Policy Framework) is another way to ensure the mail server sending an email is allowed to send via this domain. It works by defining which servers can send email, so the client can check, rather than directly encrypting the connection (the DKIM approach). The setup is fairly simple, and can be checked with <a href="https://www.proofpoint.com/us/cybersecurity-tools/dmarc-spf-creation-wizard#spf-check">tools like this</a>.</p><p>An SPF policy which allows sending from Gmail and SendGrid servers might look like this:</p><p><code>v=spf1 include:sendgrid.net include:gmail.com ~all</code></p><p>DMARC (Domain-based Message Authentication, Reporting & Conformance) helps receiving mail systems decide what to do with incoming mail that fails validation via SPF or DKIM. So this is worthless without at least one of the other two.</p><p>A rule which tells the receiver to mark failing email as spam and send reports to the given email address would look like this:</p><p><code>v=DMARC1;p=quarantine;pct=100;rua=mailto:postmaster@tomnatt.com</code></p><h2 style="text-align: left;">Done</h2><p>And lo, email appears to be flowing again. I hope something here helps. To finish, I want to note that I'm not an email expert - not even close. If you are, and you're seeing somewhere I've written something stupid please reach out and I'll correct and attribute.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-87066280126329240342023-10-14T14:57:00.000+00:002023-10-14T14:57:17.498+00:00A few words for World Mental Health Day<p>Earlier in the week (Tuesday 10th October) was World Mental Health Day. As part of normalising mental health through openly talking about it, at work I posted something of my own experiences on our internal chat board. The reception was extremely positive - people pleased someone spoke out, feeling seen and so on. So - since mental health isn't just about last Tuesday - I'm reproducing a version of that below, albeit with the work-specifics removed.</p><p>For World Mental Health Day I wanted to share something personal. Mental health still has a social stigma attached, and while this is improving rapidly even from five years ago there is a long way to go. So, to make my small contribution, I'm going to tell you a little about myself.</p><p>I have suffered from depression throughout my adult life. I'm fortunate enough that this has very rarely reached the more intense levels where I can't get out of bed or worse, but I've certainly had ongoing difficulties with anxiety and feelings of emptiness, loss of interest in life in general and feelings of hopelessness, guilt, worthlessness, helplessness and others. Even writing this makes me feel like a fraud, since it's not "proper" depression etc etc...</p><p>I know that these feelings go in cycles and I've spent a lot of time identifying my own triggers so I know when I need to take a step back and protect myself before I get into a worse state. I also know that it sometimes sneaks up, and I suddenly find myself in a bad way. It's hard and deeply unpleasant at times.</p><p>I'm sharing this mostly because I don't think people talk about mental health openly enough, and World Mental Health Day seems like a good day to put something out there. For some people, I hope to show some solidarity. For others, this will be some small insight into a world that is totally alien to you.</p><p>On this blog, sometimes I post about mental health. If you'd like to see <a href="https://tomnatt.blogspot.com/2018/01/from-darkest-depths.html">what I wrote after taking about a month off you can see that here</a>, and <a href="https://tomnatt.blogspot.com/search/label/mental%20health">you can see all my posts about mental health here</a>. Obvious disclaimer - I am not a medical professional.</p><p>Most important - if you're in a similar position, know you're not alone. There are people who share your experiences and are willing to talk. If anyone would like to talk to me, please feel free to reach out. I'm also quite happy for the "but what's it like" conversation if you'd like to ask that.</p><p>At work, I suggested a discussion group and it occurs to me that that might be a useful thought in other contexts - either for people who have different experiences they want to share, or for a wider group to talk. If people think that is a good idea do shout and if enough people are interested I'll see if I can get something set up.</p><p>Take care everyone.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-59811493078751147932023-09-30T17:55:00.003+00:002023-09-30T17:55:23.299+00:00Some thoughts about the future of the Tech industry<p>Last week I was given the opportunity to sit on a panel of technical leaders and talk about the future of technology. I had a few notes about about how we're going to need to change our thinking about building capability and I thought I may as well capture and flesh out a touch the results of my crystal ball gazing here.</p><p>I spoke briefly about three areas:</p><p></p><ul style="text-align: left;"><li>The people we hire</li><li>The expectations of our users, and our expectations of them</li><li>Where I think we’re going to need to invest and build capability</li></ul><p></p><h3 style="text-align: left;">The people</h3><p>Fairly obviously, Technology is getting more important to daily operations. But it's getting harder to hire people all the time. As we all keep hunting for talent, those who aren't offering the top end salaries will increasingly have to look nationally or even globally to recruit. I don't think moving the organisation to another city is a sustainable approach - at best, it will simply move the problem. Instead, I think we will increasingly see a more distributed workforce, and therefore more remote working. As staff turnover is identified as a major organisational cost, we’ll also see more emphasis staff retention - succession, training, individual growth and so on.</p><p>Whoever nails building a strong remote working culture and environment which encourages loyalty and celebrates and develops the individual is going to do very well. I think the secret to this is going to be building very strong communities of practice, and if I’m right we’ll see more “Head of Community” style work and roles growing up. </p><p>I also think we’ll see more Tech decisions based not on the best technical or product solution for the org, but the best fit for the skills we can grow or hire. This would suggest a lean towards the big names (the Microsofts, Googles and Amazons) who are heavily investing in training the Tech industry through free access to courses, sponsoring hackathons, and so on.</p><p>I believe this will be more acute as Automation is used to deliver more while avoiding the continual growth of IT departments. We will need to retain the skillsets to maintain that automation layer or we'll be seeing yet another wave of technical debt.</p><h3 style="text-align: left;">Expectations from and on users changing</h3><p>In times of yore, users used to have to know something about operating a computer to install and use software. These days, users on a smart device can just touch an icon and get everything they need. This is a victory for accessibility and digital inclusion but it also means the gap between “technical” and “non-technical” user is widening. Our helpdesks and other support points will need to work with an increasingly broad ranges of questions, especially as tech like AI gains traction, and expectations for what it can do are all over the place. </p><p>We’ve also been seeing for years the expectations from users increasing as they use more SaaS products at home and demand the same sort of tools at work. To satisfy these needs, the cost of development is going to go up and cover a wider range of skillsets - and of course this links back to the earlier points about skill availability. Out of the box services are also going to be affected - vanilla deployment is going to be less palatable in the office, requiring more work for a good result especially with the current state of many internal systems user interfaces with respect to accessibility and usability. </p><p>This is particularly true regarding what have often been considered secondary requirements - accessibility and environmental sustainability for example. Users are (quite rightly!) far more vocal about accessibility needs, and we need to not just respond but get ahead of their requirements.</p><h3 style="text-align: left;">Other places we’re going to need to build capability</h3><p>Technology is obviously an increasingly essential part of everything. I mentioned the effect on helpdesks above. We're also already seeing increasing amounts of security threats and the wider reaching impact of a successful attack. This will take us into an ever more expensive arms race in the Security field, which will mean building Security capability. This is going to need to be approached very carefully as it will be very expensive - everything I’ve said about skills shortages are far more acute in the world of InfoSec. Part of the Security picture is a renewed emphasis on good, basic engineering practice (such as patching) - but again, this places a challenge on building skills in our organisations.</p><p>We’re also generating and handling more data all the time, so inevitably we’ll see more human error leading to data loss. In fact, for any organisation a major security incident or data breach is only a matter of time now. If we are assuming that it is going to happen, there is a need for much more robust organisational responses to these scenarios which means building appropriate incident response and Business Continuity capabilities. Of course, just responding isn't enough so there will also need to be stronger data ownership throughout our organisations, with more people with data owner and controller roles. Organisations will need to fully grip their end to end processes and user journeys in ways that perhaps hasn’t been happening before.</p><p>Obviously there is a lot more that can be said about everything here!</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-44503118081879125722023-08-28T14:27:00.000+00:002023-08-28T14:27:01.535+00:00Looking to the future<p>One of the symptoms of seniority that I still struggle to process is this idea that people want to hear what I have to say and understand how they can (professionally at least) be me. It's a weird feeling, both humbling and frightening, and has only grown in <a href="https://tomnatt.blogspot.com/2023/06/next-cio-2023.html">the last few months</a>. I'm being asked to speak at conferences, and in a few weeks I'm on a panel discussing the future of the Tech industry. Why? Surely there is someone better for this?</p><p>Honestly, this is a question I've been asking myself since my time in the Civil Service, where I found myself in a meeting discussing how to spend five million pounds of public money. I should write a post about getting over myself and getting on with it. This, however, is not that post.</p><p>I moved away from development into management so I could make a difference to the industry. How do people get into Tech? How do people move to more senior technical roles? Showing the importance of senior leadership with technical backgrounds, and helping people get the right experience to be credible candidates. These are core to my motivation and it seems I have the beginning of a platform. This is a responsibility I want to take seriously. What can I offer to the wider industry?</p><p>I've got a few ideas and since there seems to be a few people reading this blog from LinkedIn, I suppose I can offer them up. First and foremost, I'm thinking of creating a set of interviews with people in my position telling their story, talking about how they got to where they are today. I don't kid myself that I'm some kind of Steve Jobs or Bill Gates, but then neither are the overwhelming majority of people. I am, however, fairly successful in the industry. I'm in a position that someone getting into Tech can reasonably aspire to attain. Not inspirational perhaps, but practical. There are lots of people like me, and the stories don't get told often enough so I like the idea of creating some kind of resource showing the different paths people can take. At the moment I'm thinking a podcast, but format to be decided. If you're reading this and think it's an interesting or useful idea, please do reach out.</p><p>In addition, I sit on the London Data Board, and I'm happy to offer some time to support other initiatives if they come up. Again, do reach out - especially if they are something to do with nature or animals. On top of this, I already do some mentoring, and I've got a whole post about that coming up soon.</p><p>I opened saying that people asking about my career and how to "be me" is weird. Actually, on reflection, it's a weirder feeling that I'm in a position to be feeling a sense of responsibility to the industry and asking any of the above questions. It's a great privilege to be working somewhere where I can spend some time looking outwards and hopefully make a difference. That's my intention anyway - so I've written it down in public so I can hold myself to account.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com2tag:blogger.com,1999:blog-7951124889773348411.post-50306114675197350502023-07-31T18:20:00.002+00:002023-07-31T18:20:51.261+00:00A break in the routine<p>When I started as Director of Engineering at Macmillan, one of my objectives was to build a department which functioned without me. I wanted to be able to pull myself out of the operational day to day, empowering others to own those problems, while I focused on overall direction and wider concerns. This was always an aim rather than a hard goal - similar to the sysadmin end game of a fully automated system, it's something I would like to chase and I think I can get close, but I don't believe I will ever truly achieve.</p><p>Over the last year and a bit I've set things up to work this way. I've created core areas of my division, and put someone in charge of each of those spaces. I've empowered them to make decisions and own their successes, and I've carefully worked with each of these leaders to identify and remove weaknesses. There is still a long way to go, but I think we've made a strong start.</p><p>Why write about this? Well, I took last week off as leave (booked some time ago) and at the end of the week:</p><p>The Boss: How are you doing?</p><p>Me: Starting to feel better! After about four days asleep, I finally started to feel human again.</p><p>The Boss: Want another week off?</p><p>Me: Is this some kind of trap?</p><p>It wasn't a trap, so after a quick conversation I decided against looking that gift horse in the mouth and spent half an hour with my assistant going through my diary. The first week off was all planned, so that hadn't been a problem but this second week was a spur-of-the-moment thing. Surely it was going to cause all kinds of problems if I wasn't around?</p><p>Nope.</p><p>Of the week, there was an hour which absolutely required me and needed rescheduling. Which means ... what? This is the question I've been pondering for a few days. On the one hand, my ground-in desire to be needed and adored took a massive hit. Being basically superfluous is not good for the ego. On the other hand, this is exactly what I've been building towards. The department can survive without me. It can make decisions, move forward, solve problems, etc etc...</p><p>We've got a way to go. The wheels most certainly will not stay on the wagon indefinitely and the more forward-planning functions haven't been tested in this short term. Plus, of course, people are covering some bits of my role and I shouldn't underplay their help. There is still plenty of need for someone in my position to keep things steady and move things forward - I don't think they can make me redundant just yet. However, I'm pretty pleased with the results of this (accidental) test and what it means for changing my day to day when I'm back.</p><p>To be clear - I'm not wasting my time. The bits that didn't need rescheduling were parts of the job where I'm providing support or oversight, and direct support for individuals. All this should be done, but I can certainly ask some questions about what happens if I dial it back a bit. That means less oversight, but perhaps we're ready for that? Then I can focus more on the work I'd be doing myself which isn't getting done. However, the nature of the job is such that my work is (supposed to be) much more strategic which naturally has a longer burn. If it's delayed a week, that doesn't create the same kind of problem as operational work stopping. Fortunately, this also means focusing in on the part of the job I particularly enjoy.</p><p>So, in summary I am very deliberately in the process of making myself operationally irrelevant and it's time to reboot my focus list. Is this ... is this what success looks like?</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-38425847394543089972023-06-26T17:59:00.000+00:002023-06-26T17:59:20.404+00:00Next CIO 2023<p>Well, this month I won an award.</p><p>Honestly I'm not sure how to write this post. I do not usually deal with praise well, and that is unlikely to change. However an industry award is something to celebrate so I'm going write something about being recognised, and I'm going to keep self-deprecating jokes to a minimum.</p><p>Next CIO is an industry award where a group of expect-to-be-CIOs-soon are recognised as the future of the industry and celebrated. They are brought together over the year for workshops and group learning, and hooked up with a mentor - someone who is already a successful CIO.</p><p>And I am one of these people. Which means I'm part of the future of our industry. Good grief.</p><p>What does this mean? Well, over the next year I'm looking forward to talking with and being mentored by the very generous Wayne Clements, and I'm going to be attending a series of workshops with my Next CIO cohort. I've also got access to a group of excellent people from across the world of Technology - there has to be something useful I can do with that set of contacts.</p><p>For the award event, we were asked for volunteers to talk for a couple of minutes about ourselves. I volunteered mostly because while I didn't want to do it, I wanted to make sure I was making the most of the opportunities. That is what this year is going to be about for me - taking opportunities and seeing what happens. In this case, what happened was a talk which got a few laughs (in the right places!) and some excellent conversations in the bar afterwards with people who were interested in what I had said. Only good things.</p><p>Looking forward, I'm going to do a few things. I'm going to start posting my blog posts on LinkedIn. Long-term readers will know I write this mostly as a tool for self-reflection. Putting them up on Twitter and Facebook was a big step and LinkedIn will be another (slightly terrifying) moment of development. So ... hello if you're reading from LinkedIn. There are lots of other posts here - you might be interested in <a href="https://tomnatt.blogspot.com/search/label/essay">the essay subset</a>.</p><p>Coming back to the topic of my "about me" talk - I need to think again about how I give back. My particular interests are around how people get into the Tech industry and how they move around and up. Over the years I've coached and mentored, and I want to lean back into this. However, this doesn't scale terribly well - there are only so many hours in the day so there is only so much time I can give - so I want to look at other options. There are a lot of stories out there to be told, and while some people have inspirational tales of mega-success, I think there is a lot of value in the more attainable stories of people who do well without being the next Jeff Bezos or whoever. Can we get better access to those tales?</p><p>Anyway, these are thoughts for the future. For the immediate now, I'll end with some pictures from the event and me talking about how I should have been a forester.</p><p><br /></p><a data-flickr-embed="true" href="https://www.flickr.com/photos/tomnatt/albums/72177720309289578" title="Next CIO 2023"><img src="https://live.staticflickr.com/65535/52996396909_fd874408a5_z.jpg" width="640" height="480" alt="Next CIO 2023"/></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com1tag:blogger.com,1999:blog-7951124889773348411.post-27373177042083374742023-05-28T16:30:00.002+00:002023-05-28T16:30:19.981+00:00Making a decision<p>I've been thinking a lot about governance recently. In general, I like consensus - it's important that expert voices are heard and action is taken on the back of expertise. I dislike dictating how things are done for the same reason. Generally, I find people thrive when given the space to take ownership of problems and work through them.</p><p>However. This can create a few problems. The first is mediocrity - if everyone is compromising to form consensus then it is far too easy for nothing to actually be good. In the worst case, the important part of a proposal is compromised away and any outcome becomes a waste of time. This assumes there IS an outcome, which leads to the second problem - how is a decision actually reached? How do I stop people talking forever?</p><p>This latter problem is the one that concerns me more at the moment. I see different versions of non-decisions all over the place, from email threads which ambiguously leave "someone" to do the next thing to conversations which always need another person to engage before maybe everyone agrees. At worst, this never concludes but even at best it is sloooooow.</p><p>For me, this leads directly to the question "what is a decision?". When is something approved? When is it agreed? Or when it is simply some positive noises coming out of a discussion? It's important to draw this out for everyone involved. Individuals do not like being misquoted ("no, I didn't actually agree to this"), project managers deserve to know where they stand with sign-off so they can move on ("is that a decision?"), and I need to add some formality so I don't have to mediate these positions.</p><p>I'm leaning into some hypotheticals here - while I see some of the above at work, decisions are certainly being made, and people are thriving in their empowerment. However, and being selfish for a moment, it is actually my needs that are being neglected. As my role changes (and reflecting on my musings <a href="https://tomnatt.blogspot.com/2023/03/hanging-out-with-cool-kids.html">from my time covering as CIO</a>) I find myself with less and less time to mediate circular conversations. So while things generally work, I need to move this from "generally" to "always" and "with less effort from me".</p><p>It's time to make some changes. As noted above, I've previously been happy to give people space to feel things out and learn from them. I don't want to lose that - it's an important part of empowerment and learning. However that is the discussion part - I need to add some stronger gateway decisions to the way we work. On reflection, I think I need to be better at separating discussion from decision and creating a formal record. There is too much going on at the moment to be imprecise about the state of decisions, so I need more opportunity to eyeball people and tell them to speak up or forever hold their peace.</p><p>The trick through all this will be retaining agile working patterns - I don't want to create some kind of decision auditing circus, but as we mature we both want to and need to be able to hold each other to account properly. This means having something to be held to - robust decision records where people can make their decisions known formally.</p><p>Initial muse for the moment - I've been exhausted this month. More on this later I feel.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-48506320927911494242023-04-22T15:49:00.001+00:002023-04-22T15:49:24.910+00:00Slack notifications from Github Actions<p>A while back I wrote about <a href="https://tomnatt.blogspot.com/2023/01/migrate-from-codeship-to-github-actions.html">moving my deployment scripts away from Codeship into Github Actions</a>. This has continued to work, but as I noted it did leave me without notifications in Slack. Time to fix this.</p><p>There are a few ways of enabling notifications. The best way involves <a href="https://github.com/slackapi/slack-github-action">creating Slack apps with incoming webhooks</a>, but this involves a lot of faff (especially on a free Slack instance). The ever-useful Phil Wilson found a much simpler alternative.</p><p>Enter <a href="https://github.com/integrations/slack">the Github Slack app</a>.</p><p>The setup is very easy:</p><p></p><ul style="text-align: left;"><li>Add Github app to Slack</li><li>Log in to Github app as whichever user should be receiving notifications</li><li>Authorise it to talk to your Github account in Github</li></ul><p></p><p>All three of these are documented in the above link.</p><p>Then it's a case of setting up the notifications you want within the Slack app channel. I used the following:
<pre>
/github unsubscribe $account/$repo issues pulls commits
/github subscribe $account/$repo workflows:{event:"push"}
</pre>
<p>The first removed the overly noisy notifications from a whole bunch of Things on the account. The second enables notifications from workflows (ie Actions) - mine are triggered on "push" events. Docs for the workflow configuration <a href="https://github.com/integrations/slack#actions-workflow-notifications">can be found on the integration page</a>.</p><p>And behold! Notifications!</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-84795278625896741012023-04-16T14:44:00.000+00:002023-04-16T14:44:12.963+00:00When Github updates its SSH host key<div>I wrote recently about <a href="https://tomnatt.blogspot.com/2023/01/migrate-from-codeship-to-github-actions.html">deploying to remote servers via Github Actions</a>. I use this blog partially as a place to write bits of useful documentation and this is a quick note on how to fix those deploys when Github updates its SSH host key. It took me an evening of fiddling around while watching TV to get this right, so I don't want to have to think about it next time.</div><div><br /></div><div>On the target server, remove the old github.com entries and add the new key into known_hosts:</div>
<pre>
ssh-keygen -R github.com
curl -L https://api.github.com/meta | jq -r '.ssh_keys | .[]' | sed -e 's/^/github.com /' >> ~/.ssh/known_hosts
</pre>
<div>And that should be enough to make it all work again.</div><div><br /></div><div>These commands courtesy of <a href="https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/">the Github blog</a>. Essentially, this post is distilling that one for future reference.</div><div><br /></div>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-63055691248982748452023-03-25T19:00:00.000+00:002023-03-25T19:00:10.041+00:00Hanging out with the cool kids<p>I have spent most of an incredibly busy March as a stand-in CIO while my boss was away. After three weeks of my first real taste of a C-level role and board member, I find myself grateful for the experience and thinking about all the things I've learned. Time for some reflections.</p><p>The job itself was obviously truncated - covering is an inherently tactical affair whereas a job like CIO is strategically focused. So I had an easy ride from that angle - large amounts did not need doing in the timeframe. What I DID do involved a lot of reporting and representation. Much more than my current role, I had to think about information flow across the department and that naturally led my mind straight to the way the processes were set up. Our department has been entirely overhauled over the last twelve or so months, and it was very interesting getting a different perspective on how this fits together and where we can work out kinks to prevent our own internal reporting industries wasting time re-collating information instead of letting it flow.</p><p>In fact, I find myself thinking about the process far more than the content. How do we get information from team to division to report to governance board while retaining its accuracy? Of course, the quality does matter - over the last few weeks I've fronted reports to the exec board, the spend group, the risk board and the directorate board to name just a few. There is no way I could have written all this myself, even with the information immediately to hand and that of course leads back to ensuring the processes are in place to create good submissions "automatically" with my input being editing and guiding the narrative of each submission.</p><p>Setting this up for success is utterly critical. I'm going to write a proper post on this sometime, but my feeling on my current job is that when one removes the fluff, I have two objectives - create clarity and make time to support / guide people. This was amplified again as CIO. I've already started updating the way we plan inside Engineering to more directly feed into some of the governance processes, removing some of the kinks mentioned above, and now The Boss is back I am going to spend more time working through this. I've been working on "create clarity" since day one, but I've got a different perspective to work from now.</p><p>So what else? Well, the flow described above creates more and more dependence on the people in the department. The more senior I get, the more I see this shift from doing to coordinating and this was a surprisingly large additional step. I thought I'd already shed all remnant of actually doing things myself, but apparently not. It re-highlights the importance of building a high-performing culture and all the questions therein - about trust, development, setting and maintaining standards, etc. These few weeks have also showed where I've been too tolerant - or perhaps more accurately where my tolerance will get me in trouble if I do a CIO role properly. In my current role, if something isn't quite done on time there is usually enough space for me to help them out or do bits myself. As the CIO, this is not possible. They have to perform and if I need to course-correct, I have to be able to explain and set them going with a minimum of my own input.</p><p>This creates additional pressure on me to always excel at communication. Always write clearly, speak clearly, show strong direction, etc. No ambiguity. It also requires more of others, and I found it interesting quite how acute I felt the need for clear and timely communication almost above getting the answers I actually wanted. One of the last things I wrote to the department was a gentle challenge to us all to think about how we can communicate better and cut down on noise.</p><p>It also emphasises something I've always told people who want to move into more senior roles. Know how to take ownership of a problem. The value to someone in a role like this of someone being able to remove a problem from your shoulders and make it all work without too much from you is phenomenal. Importantly, this is not just "offer support", it's do, own, lead. For me, it's the golden ticket to being noticed and given further opportunities. As it happens, it's also much better for the CV / interview.</p><p>Another aspect of the CIO job was the sheer volume of reading. I have to read a lot as a director, but the number of papers and (hhgggnnn) PowerPoint decks that need absorbing is ridiculous. I found myself reading them in the evening, when I could get a drink and be much more confident of a few quiet hours without any interruptions. This, of course, did wonders for my work-life balance. It highlighted three things to me. First, the importance of getting submissions in on time as the knock-on effect can be board members getting 130 pages of "excitement" to read for a meeting 48 hours away. This was ... not a highlight. Second, the importance of writing clearly and effectively and spelling correctly. Especially in Word, where mistakes are underlined. Get it right. Third, I'm going to have to develop my speed-reading skills.</p><p>However! There were some bits that were easier. While there was a huge amount to do, I found the immediacy of my normal job diminished. That is, there were many things I needed to look at but I could choose my approach much more and spend less time in meetings than I normally do. So while the volume was huge, I did find myself with a bit more time to breathe and consider. It was weird and I think this reflection is more that I need to change how I approach my day to day.</p><p>Also, it was very interesting seeing all the department machinery working away. There is a great quote from Yes Prime Minister (which I can't put my hand on right now, so you'll have to suffer my paraphrasing) where the PM is talking to his Private Secretary about the role and the PS is explaining that while there are many things the PM SHOULD do and any number of things the PM CAN do, there is actually very little the PM HAS to do. The CIO role felt like that - if I'd sat back and waved things onward I could have gotten away with doing very little for quite some time. So the old systems analyst part of my brain turns towards the problem of maximising that - which is the question "how do I build a department that doesn't need me". I actually mentioned this concept in the interview for my current job so it's nice to have it reinforced.</p><p>Not that everything was plain sailing of course. I had to intervene in a few projects to help them back on track. I had to front a few concerns and problems to the wider organisation, and internally. My favourite moment, however was in the dying moments. I told my colleagues I was logging off for the weekend, and thanked them for all their support. I had one last quick look at my email. Then the website blew up. P1 incident, all the sirens going.</p><p>Who said technology doesn't have a sense of humour...</p><div><br /></div>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-5418693575216841262023-02-25T16:42:00.009+00:002023-02-25T20:48:07.260+00:00Artificial Empathy and The Role of Emotional Intelligence in Effective Management<p>As a manager, you're responsible for leading and motivating a team of individuals with different personalities, strengths, and weaknesses. One key trait that can help you succeed in this role is emotional intelligence.</p><p>Emotional intelligence, or EQ, refers to the ability to understand and manage one's own emotions, as well as the emotions of others. It includes skills such as empathy, self-awareness, self-regulation, and social skills. Here are some ways that emotional intelligence can help you be a more effective manager:</p><p></p><ol style="text-align: left;"><li>Build better relationships with your team. By demonstrating empathy and understanding towards your team members, you can create a sense of trust and psychological safety. This can lead to better communication, collaboration, and ultimately, better performance.</li><li>Manage conflict more effectively. Conflict is a natural part of any workplace, but as a manager, it's your job to resolve it in a constructive manner. By using your emotional intelligence skills, you can identify the root causes of the conflict, communicate effectively, and find solutions that work for everyone involved.</li><li>Make better decisions. By being self-aware and understanding your own biases and emotions, you can make more rational and objective decisions. Additionally, by understanding the emotions and perspectives of others, you can make decisions that take into account the needs and concerns of your team.</li><li>Motivate and inspire your team. A manager with high emotional intelligence can inspire and motivate their team members by understanding their individual needs, providing feedback that is tailored to their strengths and weaknesses, and creating a positive and supportive work environment.</li></ol><p></p><p>In short, emotional intelligence is a crucial skill for effective management. By understanding and managing your own emotions, as well as the emotions of others, you can build better relationships, manage conflict more effectively, make better decisions, and motivate and inspire your team.</p><br /><hr /><br />
<p>The above was written by this month's guest writer - ChatGPT. For those who don't know, ChatGPT is a large language model - that is an artificial intelligence which has been trained on a huge body of literature to effectively generate its own content. On a whim, I asked it to generate me some blog post titles for posts about management and one that came up was "The Role of Emotional Intelligence in Effective Management". I asked it to write that post and the unedited results are above. Not bad, eh? Guess we're all out of a job pretty soon.</p><p>Well...</p><p>There are a few reasons the answer is "no" which other, more expert, writers have gone through before. In very simplified terms, this kind of artificial intelligence works by guessing the next word in the sentence using probability from analysing a vast body of existing literature (the "large" part of the language model). It generates text using a variety of language rules and learns some context from interactions in the conversation (eg in my example I said "please write the eighth suggestion" and it knew what I meant) and this all results in something that looks like it can respond intelligently to your questions.</p><p>So, again very simply put if you say to ChatGPT "Twinkle twinkle" it will respond with "little star" - not because it understands, but because the vast majority of times when someone says "twinkle twinkle it is followed with "little star". This also creates a problem with accuracy - ChatGPT has no idea what it's saying but that won't stop it saying it very confidently[1].</p><p>Anyway, there are a load of fascinating technical and ethical questions here but I want to look back at the post it created for me. This one is high-level but you can keep asking "how do I ..." and drill deeper and the answers are pretty good. However, to me they all feel like they lack some substance and are hollow checklists and that raises an important question to me. I'm less interested in "is an AI drawing closer to doing my job?" rather "what is the point of my job if it feels like a very clever predictive text system can do it?" </p><p>And to note - I have deliberately been asking questions about emotional intelligence here. This should be what separates people from computers. Does management just lack substance?</p><p>Sadly, the answer is often yes. If a manager learns how to lead from a book and follows the steps then they will become ManagerGPT as above, and will indeed be an efficient but hollow step in a reporting chain. I've certainly met and worked with managers like this - people who seem to have learned about being human from a distance and don't seem to be able to reconcile the recommendations with their own actions. They sometimes do quite well, but they are rarely recognised as good leaders by those who have to follow them.</p><p>So what did ChatGPT miss? There are no anecdotes in there - it's a cold checklist of suggestions with no emotional warmth or grounding. It can't follow through - it's all well and good having the step "learn the names of your report's children" but it wont actually go out and do that. These are the kind of thing that separates "leadership" from "authentic leadership".</p><p>Most importantly, AI cannot give <a href="https://tomnatt.blogspot.com/2018/09/time-should-wait-for-all-men.html">the gift of its time</a> because it has basically infinite time available to it. This means even when it is developed so it can fake the above (and it will be) we as humans will not respond well because for compliments to land we need to know it's more than mathematically calculated, or for attention to matter we need to know there is some kind of cost to the giver. For me, this is why we laugh at that scene in Demolition Man where the man is getting a pep-talk from an ATM (before being beaten up by Wesley Snipes), but that same dialogue would be more poignant if spoken by actual people.</p><p>In short, writing about emotional intelligence and empathy and actually developing them are quite different things and for the moment this is where humans can still add value. And, obviously, we should be making sure we actually DO that thing. All humans - even managers.</p><p>If you want to have a go at getting ChatGPT to do your job for you, <a href="https://openai.com/blog/chatgpt/">you can find it on the OpenAI website</a>. I certainly haven't used it to generate papers for the board (although if I did I'd absolutely list it as a co-author).</p><p><span style="font-size: x-small;">[1] This example comes from <a href="https://simonwillison.net/2023/Feb/15/bing/">Simon Willison's excellent post about Bing</a> and is originally drawn from <a href="https://arxiv.org/abs/2212.03551">Talking About Large Language Models by Murray Shanahan</a>.</span></p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-67066626315256005112023-01-22T16:58:00.006+00:002023-04-15T21:53:42.600+00:00Migrate from Codeship to Github Actions for projects using Mina<p>Oh look - another free tool has decided to eliminate its free tier. My last post was about <a href="https://tomnatt.blogspot.com/2023/01/migrating-away-from-heroku.html">migrating away from Heroku</a> as it torched its free offering and now Codeship has followed suit. In the past, I have written about <a href="https://tomnatt.blogspot.com/2017/01/continuous-delivery-with-codeship.html">using Codeship as a part of my toolchain for CI/CD</a> but over recent years I have moved away from it to <a href="https://tomnatt.blogspot.com/2020/12/a-first-look-at-github-actions.html">Github Actions for running linters and tests</a> and using the Github integrations of the hosting providers themselves for deploying web apps. This means I've migrated many of my projects away from Codeship already, but there has been one significant holdout - my static sites.</p>
<p>Usual disclaimer - this is for a personal project, so I'm more interested in free solutions than high speed or resilience. Docs for myself, maybe someone will find this useful, etc etc</p><h3 style="text-align: left;">The problem</h3><p>My static sites are generated using Jekyll, and deployed via Mina. Mina is a great tool, but for the purposes of this post it opens a connection over SSH and executes some commands, which require some environment variables.</p>
<p>I also need to migrate my "tests" - which are just building the site locally to make sure it's not broken - so I'll note that step here.</p><h3 style="text-align: left;">Migrate test build for a branch</h3><p>Making the branches do a test build was simple - set up Ruby, get code, run the test code. All very similar (and easier) than doing this with Rails and wrapped up in <a href="https://github.com/tomnatt/tomnatt/blob/main/.github/workflows/test-build.yml">a short Github Action</a>.</p>
<h3 style="text-align: left;">Migrate deployment</h3><p>Making the deploy script trigger on merge to the main branch was a little trickier (full example below).</p>
<p>First gotcha - when one merges a branch into main, the event that triggers is a "push" event. Knowing that, getting it to work is really easy but that took a bit of hunting. It also means that a push directly to main will trigger a deploy, if your main branch isn't protected.</p>
<p>Second gotcha - environment variables. I didn't want my server config in my public code, so I needed to set some environment variables in the settings of the repository. There are a few ways to do this in Github - I settled on using "Repository secrets" which are found in the project Settings -> Secrets and variables -> Actions then "New repository secret". They are accessed in the workflow file as <code>${{ secret.MY_SECRET }}</code> and if you want to use them inside a script, you need to pass them through explicitly by setting the <code>env</code> for that script. Example below.</p>
<p>Third gotcha - SSH key. Mina opens a connection to a remote server, so it needs access to an SSH key. I created a public / private pair on the server and added the public key to the usual place, then put the private key in the repo secrets as above. Using <a href="https://github.com/marketplace/actions/install-ssh-key">this action</a> allowed me to load the key into my workflow easily, and then I could use <code>ssh-keyscan</code> to push it into the container known hosts, allowing Mina to work properly. Again, example below. Shout out to <a href="https://zellwk.com/blog/github-actions-deploy/">this post</a> for the pointers on the SSH key setup.</p>
<p>And lo, deployment works. <a href="https://github.com/tomnatt/tomnatt/blob/main/.github/workflows/deploy.yml">Here is the complete deploy Action</a>.</p><h3 style="text-align: left;">Tidy up</h3><p>All that is left is to tidy up. Couple of simple steps here:</p><p></p><ul style="text-align: left;"><li>Remove Codeship keys from server</li><li>Delete Codeship project / build</li></ul><p></p><p>And we're done! Like my previous Github Actions implementations, this is almost entirely generic so I can copy / paste into other projects with minimal effort and make sure I have light CI/CD for my fun projects. Now it would be great if I could get back to some of my creative programming projects for a while, instead of having to rebuild toolchains.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-40670233830574711332023-01-15T15:50:00.000+00:002023-01-15T15:50:02.641+00:00Migrating away from Heroku<div>Along with almost every developer I know, I was very sad to see the end of Heroku's free tier. I was hoping they'd reverse this decision, but it seems that was too optimistic so in the end I had to choose between killing all my toy applications, paying money or finding an alternative.</div><div><br /></div><div>I did consider just shutting things down, but I had two concerns with this. First, I have one application I actually use and losing it would be a pain. Second, and more importantly, if I have no solution to this problem it adds another barrier to me coding as a hobby. So this needs solving, and not just by throwing hundreds of pounds a year at it.</div><div><br /></div><div>Finding an alternative took a long while, primarily because I was trying to find a straight all in one alternative. While they are out there, the free tiers are not suitable - the closest insist on deleting my database after 90 days. Instead, I ended up separating application hosting, database hosting and sending of email and the below is where I ended up, written in detail in case it helps one of the many others doing this same thing. I did this all back in November, before the Heroku switch-off, and a few months all it seems to all be running well.</div><div><br /></div><h3 style="text-align: left;">My applications</h3><div><br /></div><div>Everything I'm moving is a personal project (no url customisation, limited need for backups, high availability, etc) and a simple 12f(ish) application. They are written in Ruby (mostly Rails, one Sinatra) and make use of Postgres on the backend and some simple mailing. Nothing complicated and Heroku managed all this for me before.</div><div><br /></div><div>To move from Heroku SendGrid to independent SendGrid, I did find I had to make <a href="https://github.com/tomnatt/rpg-sword-forms/compare/e2d53a9289799ca7ce0f60e20505b4c19f24bc2c..67c1ec4fdee6e4f5af9ce7f8bf89fd765ac82eff">a small update to the mailing config</a>.</div><div><br /></div><div>Most of this diff are linting updates - only the domain change should be necessary.</div><div><br /></div><h3 style="text-align: left;">Databases</h3><div><br /></div><div>I chose <a href="https://www.elephantsql.com/">ElephantSQL</a> as it has a good enough free tier offering (limited to 20mb) and lets the free databases persist. Detailed steps for anyone who, like me, hasn't done much with a Postgres database for a while.</div><div><br /></div><div>Setup:</div><div><ul style="text-align: left;"><li>Create account in ElephantSQL (sign in with Github)</li><li>Create database</li><li>Get connection string</li></ul></div><div><br /></div><div>Backup from Heroku:</div>
<pre>heroku pg:backups capture --app myapp
curl -o latest.dump `heroku pg:backups public-url --app myapp`</pre>
<div>Restore to ElephantSQL:</div>
<pre>pg_restore --host "machine.db.elephantsql.com" --port "5432" --username "blah"
--password --no-owner --dbname "blah" --clean --verbose "latest.dump"</pre>
<div>And voila, database ready to rock in ElephantSQL. This can be checked by running up locally, thus:</div>
<pre>DATABASE_URL=postgres://blah:blahblah@machine.db.elephantsql.com/blah bundle exec rails s</pre>
<div><br /></div><h3 style="text-align: left;">Mailing</h3><div><br /></div><div>My requirements are very light here since I only use email for "forgotten passwords" email. For this, a free [SendGrid](https://sendgrid.com/) account was more than enough. I'm using SendGrid because this was the Heroku solution, so it makes for an easy switch.</div><div><br /></div><div><ul style="text-align: left;"><li>Create account in SendGrid</li><li>Create API key</li></ul></div><div><br /></div><h3 style="text-align: left;">Application hosting</h3><div><br /></div><div>I wanted something which, like Heroku, was a container-based PaaS. I certainly can wrap my applications in containers or deploy to virtual machines, but honestly who has the time. I want to point my application at a hosting provider and have it do the work for me.</div><div><br /></div><div>For this, I looked at a load of options but I settled on two - <a href="https://www.koyeb.com/">Koyeb</a> and <a href="https://render.com/">Render</a>. Both have workable free tier hosting. Render works like Heroku used to - giving a number of hours per month and spinning down applications when they are not in use. Koyeb simply gives you $5 credit per month and lets you choose how to host. This is an enough to have an application running on a low tier package without spinning down, but not enough to run several applications.</div><div><br /></div><div>For deployment, the steps were basically the same. For Koyeb:</div><div><br /></div><div><ul style="text-align: left;"><li>Create account in Koyeb (sign in with Github)</li><li>Create application</li><li>Add Github integration</li><li>Add to "run" command: rails db:migrate && rails server</li><li>Select repo (this took a while to appear for me, although Github was having issues when I did this)</li><li>Add DATABASE_URL env var</li><li>Add RAILS_MASTER_KEY env var</li><li>Add SendGrid env vars</li><li>And any other env vars</li></ul></div><div><br /></div><div>Then off it goes. I did find it took a little while to start working, but it has been fine since. Also, a slight gotcha - Koyeb appears to have some broken validation when it comes to counts, eg "must be 3 characters or more" seems to actually mean "more than three characters".</div><div><br /></div><div>For testing, I did all this (including the mailing change above) in a branch then cleaned up at the end.</div><div><br /></div><div>For Render it was much the same, except I didn't need to specify the RAIL_MASTER_KEY env var and I needed to write a <a href="https://render.com/docs/deploy-rails#create-a-build-script">build script</a>.</div><div><br /></div><h3 style="text-align: left;">Cleanup</h3><div><br /></div><div>Finally, to finish off:</div><div><br /></div><div><ul style="text-align: left;"><li><a href="https://stackoverflow.com/questions/2811453/how-to-shutdown-an-app-deployed-on-heroku">Spin down the Heroku app</a></li><li>Remove auto-deploy to Heroku (in my case from Codeship)</li><li>Toggle Koyeb / Render over to watch "main" if using a test branch</li><li>Make sure the instance is healthy (and make sure not exposed the wrong port anywhere)</li><li>Final redeploy</li></ul></div><div><br /></div><h3 style="text-align: left;">Roundup</h3><div><br /></div><div>That is pretty much it. I have been running this setup since November with no problems. I am getting fewer notifications through to Slack, so at some point I would like to get better alerting of start / end deployments but since it's just me working on these things I can watch them easily enough - it's not a priority. I'm just pleased I can still deploy easily and free as that means I'll keep my hand in writing bits and pieces.</div><div><br /></div>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-28856552236515916332022-12-31T20:38:00.001+00:002022-12-31T20:38:39.892+00:00The year that was, 2022<p>Well, it's the end of 2022 and I've got an odd feeling. The last few years I've started by expressing relief that the year is over. For the first time since 2015 I'm not going to write some variant of "thank goodness this year has finished". It has been a difficult year at times, but overall I think it has worked out well. I have certainly (once again) worked far too much, and I ended the year <a href="https://tomnatt.blogspot.com/2022/12/well-i-had-covid.html">with COVID</a> but overall I give this one a passing grade. But what did I actually do other than work? Well, let's find out. It can't all have been Elden Ring and Deep Rock Galactic (again).</p>
<ul>
<li>12 posts on this blog (13 including this one) - down on last year, but eighth consecutive year of a post per month</li>
<li>Another year of the <a href="https://www.theyearinpictures.co.uk/">Year in Pictures</a> - eighth year and we're up to 39 photographers</li>
<li><a href="https://github.com/tomnatt">316 Github contributions</a> - up from last year</li>
<li>Wrote <a href="https://github.com/tomnatt/rpg-sword-forms">RPG Sword Forms application</a></li>
<li>Wrote <a href="https://tomnatt.blogspot.com/2022/02/upgrading-to-rails-7.html">a simple guide to upgrading to Rails 7</a> (which apparently GDS used - gosh)</li>
<li>Replatformed all my apps when Heroku stopped doing a free tier (guide to come!)</li>
<li>Completed Elden Ring</li>
<li>Beat Malenia, Blade of Miquella without using any cheese or summons (I'm proud of myself...)</li>
<li>Lots of reading</li>
<li>A full year of solid exercise with a personal trainer</li>
<li>Established a good physiotherapy regime</li>
<li>Made some recruitment videos - this is work, but the important point is my video editing is now smooth enough to focus on the output rather than having to look up every last interaction</li>
<li>Went on a date!</li>
<li>Another year of <a href="https://www.flickr.com/photos/tomnatt/albums/72157711613641123">the Saturday morning exercise class</a></li>
<li>Built a <a href="https://www.flickr.com/photos/tomnatt/albums/72177720303505202">LEGO Infinity Gauntlet</a> with lights</li>
<li>Learned to <a href="https://www.flickr.com/photos/tomnatt/52485193585/">carve letters in wood</a></li>
<li><a href="https://www.flickr.com/photos/tomnatt/albums/72177720300408574">Summer baking</a> and <a href="https://www.flickr.com/photos/tomnatt/52137108903/in/datetaken-public/">BBQ</a> cooking classes</li>
<li>Made a picture for my Mum</li>
<li>Yet more <a href="https://www.instagram.com/impenetrablemyst/">instagramming</a></li>
<li>Loads more photos on <a href="https://www.flickr.com/photos/tomnatt">my Flickr stream</a></li>
<li>I also turned 40, which included <a href="https://www.flickr.com/photos/tomnatt/albums/72177720302213549">a lovely trip to Pembrokeshire</a></li>
</ul>
<p>Resolution count - 5.5/10. Down on last year, AND I worried I'd made them too easy!</p>
<p>It has been an odd year. Very tiring in places, and once again I've worked far too much. I didn't feel I'd done anything and my resolution count is going down, yet the list above is much longer than usual and I don't think I've scraped the bottom of the barrel pulling it together. So I'm clearly doing things, just not the things I intended. I can live with that, but I would like the things I do to have a greater impact on me so I actually remember them. Interestingly, unlike other years, the above list is spaced across the year rather than being loaded into the last three months so maybe I've achieved something approaching balance? I also didn't have three months off work and still did Many Things so clearly I've started recovering some energy to be able to do them.</p>
<p>Speaking of balance, we should definitely take a quick look at work. I spent nine months as a contractor before formally being appointed to my first full director role at Macmillan Cancer Support. After 2021 that was definitely a good boost for my self-esteem! I also helped set up the new version of the London Data Board, then got myself appointed onto it. This coming year, I need to grow into this new form of work - looking ahead to decide what I need to learn to be better at it.</p>
<p>Looking forward to 2023, I'm going to write the same thing I write every year. I need to spend less time working and more time living. Last year I stated my intention to do more creating "things" and the above list shows I made a decent go at that. I want to do more again in 2023 - ideally maturing those skills I've been picking up the last few years so I can be more excited about the things I'm making. I also want to get out and about somewhere - I'm not great with travelling off my own back so maybe I can change that.</p>
<p>More than this, I want to revisit what I wrote at the end of last year's summary. I have starting pulling together my sense of wonder and continuing to restore my zest for life is going to be the main focus for next year. Hopefully this will also be reflected in my writing on this blog too. Less of the "this is hard" and more of the "this is interesting".</p>
<p>2023. Bring it on.</p>
Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-28788957218050274022022-12-29T16:57:00.005+00:002022-12-29T17:02:33.496+00:00Well, I had COVID<p>It has been a quiet month. Nearly three years after the world first shut down, I finally caught COVID. I'm writing this as a reflection for future-me just in case I ever think about getting it again.</p><p>The short version is that I don't recommend it.</p><p>The week before was a long, tiring and frequently cold week that ended with some very lovely but early morning / late night festivities. So come Friday, when I was feeling rough and exhausted, I figured that I needed some sleep and relaxation. I even cancelled my Saturday morning exercise so I could sleep in. Good choice since I woke up that Saturday morning with my skin and joints screaming, my head swimming and a bad reaction to the cooler air outside my duvet. That was a bad day, where walking the 10 paces to the kitchen was hard work.</p><p>Fortunately, the fever broke overnight and the next day I woke to find I could move more easily, although even with a heavy dose of paracetamol I was barely functional. My COVID tests had all dried up, so I dragged myself out to the local pharmacy for another batch and some flu medication - a 15 minute round trip which utterly wiped me out for the rest of the day. Got that test in and yes - positive. Sigh.</p><p>Thus began a week of sleeping and basically going nowhere other than a short walk around the block every few days. Coughing to the point of struggling to breathe, throat pain, photosensitivity and brain fog were the main symptoms along with utter exhaustion - it has been a long time since I've had so little energy. Each day consisted of a few hours awake, mostly spent watching things on Netflix and playing some videogames. Food was less than ideal - eating whatever would stay down did involve a significant increase in pizza and chocolate...</p><p>There were some positives. I watched all of Sonic Prime (enjoyable), Dragon Prince series 4 (good after a terrible start), and Wednesday (great atmosphere). I completed all my Christmas shopping (online). And as I got better I also wrote the first pass of an engineering strategy - although I haven't read it back so there is a good chance it is a terrible product of a malfunctioning brain.</p><p>It took about a week of being basically incapacitated before anything started to shift. There was a step change in the exhaustion, which stepped from "basically unable to move" up to "short distances are achievable with enough planning" and the coughing improved, although continued. However, the positive tests continued so I remained isolated.</p><p>Also, it's worth remembering that getting hold of a doctor to be signed off work is not easy. I called my surgery on the first day I was ill and the first appointment was thirteen days away - notably quite some time after the five days self-certification.</p><p>A couple of days into my second week, around 9 days after my first positive test, I had my first negative test. This was a huge relief as it meant I could go and sit in a coffee shop and actually see other humans from a distance. The short walk did, of course, completely exhaust me requiring an extended lie down and a snooze when I got home but it did help me stop going slowly mad. Symptoms continued to improve slowly, but didn't go away. The worst was the brain fog. Living alone and doing very little meant I didn't notice it so much, but any time I spoke to someone I realised that talking in complete sentences was a challenge. I'd frequently start talking and forget what I was going on about.</p><p>By the end of the second week I had returned (gently) to remote working. A few hours a day Thursday and Friday were enough to completely exhaust me again, leading to a weekend mostly asleep. The following week of lighter hours was another step better, but still struggling with some photosensitivity, ongoing exhaustion and brain fog. By this point I'm also having complications with fading fitness - three weeks off exercise and eating rubbish is not good in general. More significantly, any kind of illness like this triggers depression in me and the time of year (dark, cold and mostly wet) don't do much to counter it - so in addition to not wanting to get up because ill, I'm also not wanting to get up because depression. Of course I'm also still taking a heavy dose of paracetamol.</p><p>I'm really glad that the first week back was the run into Christmas and so quieter than it could have been otherwise. It also means that as I write this I'm holiday so I've been back off work for a few days recovering again. I'm certainly feeling better - my brain is clearing and the rest is very helpful. However, I'm still low on energy and coughing extensively. I'm hoping that next week (in the new year) I'll be well enough to start some proper exercise again and begin the slow rebuild of fitness. Either way I'll be back at work, trying to fight through all the email I missed while off.</p><p>Worse than this is the effect on my mental health. Anyone who has read this blog for a while knows I suffer from bouts of depression, and while right now I'm feeling ok I also require very little self-motivation and I'm "ok". I'm worried about myself for when I go back to work and have to push myself again, so I'm going to have to keep a close eye on myself and ensure I'm embracing sources of energy and joy as well as pushing through the energy-sinks and also the ripple effects into other parts of my life, such as maintaining exercise and cooking properly.</p><p>I appreciate this hasn't been a very interesting post, but I did want to document how I felt through this. I certainly didn't have the worst COVID, but I did seem to have a nasty dose of the simpler version and I'm not keen to go through this again. So, future-me - stay well.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-70150599735209476062022-11-20T16:14:00.002+00:002022-11-20T16:14:50.302+00:00Another year, another post about fire<p>My favourite annual festival is bonfire night. It's an event which knows exactly what it is, hasn't really been corrupted by commercial interests (cough Christmas) and is very local - that is, it's done at a village level and keeps its small-scale feel. It also comes with fireworks and a bonfire. I love it.</p><p>Every year I look forward to heading to my parents' village for their event (living in a historic city, there isn't much taste for huge pillars of fire ... go figure) and every year I take a load of pictures of the bonfire, trying to capture the flickering tongues, the heat and the evocative nature of a pile of burning wood in the dark.</p><p>This year, we had the fun of the bonfire going up rather quicker than expected resulting in a huge cloud of steam and smoke washing over the crowd then a fireball which was gloriously hot before the marshals hurriedly made us retreat, pushing back the safety rope.</p><p>For the photos, I tried a variety of approaches. I wanted to capture the moving tongues, so shooting a fast moving target, but it was all at night so I needed to be mindful of light capture. This year I got best results with a high shutter speed, to freeze the movement, and then countered the limited light by pushing the ISO up to very high levels to pick up everything I could. Obviously the flash was of no use and there was only so much I could do with a wide aperture.</p><p>I was pretty pleased with the results, and I always enjoy the technical exercise of trying to figure out how to set up the camera to take these shots as effectively as I can.</p><p>I also took a few with my phone, which went with a similarly fast shutter, but instead of pushing the sensitivity just applied AI and fixed it up in post. I think. Pixel photos are somewhat magic.</p><p>Anyway, here are the results:</p><a data-flickr-embed="true" href="https://www.flickr.com/photos/tomnatt/albums/72177720303530847" title="Minchinhampton Bonfire 2022"><img alt="Minchinhampton Bonfire 2022" height="480" src="https://live.staticflickr.com/65535/52486857731_2739fe2e00_z.jpg" width="640" /></a><script async="" charset="utf-8" src="//embedr.flickr.com/assets/client-code.js"></script>
<p>And if you're interested, this is last year:</p><a data-flickr-embed="true" href="https://www.flickr.com/photos/tomnatt/albums/72157720175934510" title="Minch bonfire 2021"><img alt="Minch bonfire 2021" height="480" src="https://live.staticflickr.com/65535/51666344773_1ece952707_z.jpg" width="640" /></a><script async="" charset="utf-8" src="//embedr.flickr.com/assets/client-code.js"></script>
<p>Which was set up in a similar way, although using less of the extreme settings.</p>
<p>Maybe one day I'll figure out how to capture fireworks.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-1220408610152785862022-10-23T14:01:00.000+00:002022-10-23T14:01:25.040+00:00Give me a task OR a problem<p>I was speaking to a colleague recently who was feeling very anxious. They were trying to lead a major organisational process - something well within both their job description and individual capability - but they were feeling awful about the whole thing because of a strong sense they were not doing the right thing. We dug into this, and as far as I could see, the problem came from feeling a general expectation they own this problem, while they were also trying to meet their delivery goals in specific ways. So wide responsibility with diminished agency.</p><p>When in a position of authority and / or leadership, we need to be constantly alive to the effect of our actions on those around us. When delegating, that means trying to cleanly delegate either a problem OR a series of tasks. Both approaches have their place, but going somewhere in between creates all manner of anxiety.</p><p>Delegating a series of tasks means telling someone exactly what you want. You retain the ownership of the problem and tell other(s) what you need in order for you to solve this problem. Importantly, that means you're are retaining responsibility for the end product and various aspects of quality control along the way. No matter how clear your definition of the task (an entirely separate post...), delegates will need to check in to find out if they are doing the right thing. Certainly, you can expect the individual to use their initiative within those tasks - essentially you've delegating a series of micro-problems - but you are retaining responsibility for bringing it all together and need to make sure the person receiving the tasks doesn't feel that responsibility.</p><p>This approach is best used for your own direct deliverables, or in short-term scenarios such as "we need to achieve X by next week, so I'm taking direct control of this process". The trade-off here is that you're keeping direct control at the cost of putting more of your own effort into the process. You get to have ongoing input on how something is achieved and retaining the definition of done, at the cost of having to spend your time doing this - something which can be very difficult dependent on your own availability. It withholds agency from those receiving the tasks so the more senior you are, the less you should use this approach as you've presumably appointed clever, able people around you and want to make use of their talents.</p><p>The other option is to delegate the problem. In this case, you set out the direction and the parameters for success and let the individual work through it and solve the problem themselves. This approach empowers the individual, giving them an opportunity to stretch themselves and learn. It also frees up your own headspace, because someone else is now handling this problem and you only need to check in with them from time to time to ensure they have the support they need. However, the trade-off here is that you're empowering another at the expense of your own direct control. You don't get to dictate every step of the process, which means you need to accept that they might do things a bit differently to how you'd have done it. Likely, this doesn't matter but it can certainly be difficult to let go. The emphasis on you is to create an environment where the person can flourish and feel confident that (assuming a decent level of communication to keep aligned) you will support them.</p><p>I'm labouring this point because it's all too easy to end up taking the middle ground. Trying to put someone in charge of delivering something, expecting them to make the decisions and for it to happen - but expecting it to happen the way you want it, and them to make the specific decisions in your head. Obviously this is impossible - and just as obviously, nobody does this deliberately - but it happens all the time and for the person on the receiving end it creates an environment where it's impossible to perform. If they are any good they want to do a good job, but in this case the definition of "doing a good job" is being hidden. The point here is stunningly obvious, but can cause severe anxiety.</p><p>However, this is not just something for the leader to consider. The individual receiving the work should also be aware of their situation and force some clarity. What are the expectations here? If it seems I'm being given tasks can we please talk clear definitions of success, and about regular check-ins? Or can I own this problem, and solve it my own way? In which case, back off please leader and let me do my thing. Especially if this problem is something that my department / job title should own.</p><p>When this is decided, both parties needs to work to the chosen paradigm. If it's a task, the leader needs to get the information required to move things forward, but shouldn't expect the delegate to take the lead of the wider problem. If it's a problem, the delegate needs to take proper ownership and not ask so many questions of the leader they are making them do all the thinking. However, the leader needs to support the delegate. Whichever, both parties need to keep sufficient communication to ensure things are progressing the right way, and all parties can work with confidence.</p><p>By this point, we're leaning into the territory of our personal relationships with our colleagues and that is a very different post. I've certainly worked with people I can trust to work very much at arms length, and others I've needed to spend more time directly supporting. The same is true of my relationships with The Boss, at different times in my career. Like so many things, confidence (and better mental health!) comes with clarity more than anything else.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-10443635611494214272022-09-25T15:14:00.000+00:002022-09-25T15:14:50.876+00:00Built to last<p>I spent the week in Pembrokeshire, exploring the coast and visiting various old and ancient places of interest. There was a bishop's palace (around 200 years old), a reconstructed Iron Age village built on the site of the original settlement (2500 years old) and a Stone Age floating stone dolmen (5000 years old). These are all astonishing examples of technology from the past. Did you know there is no smoke hole in an Iron Age roundhouse because it created a smoke ceiling that was useful for smoking meats and then the tar deposited as the smoke worked through the thatch helped insulate and keep insects from nesting in the roof? The design of the house was such that with a correctly sized fire, the smoke ceiling stayed well out of the way of the inhabitants. This created a beautiful ecosystem using all parts of the fire and this was 2500 years ago.</p><p>On the other hand, we can't build an HR system that works properly.</p><p>One way I like to expand my thinking about the tech industry is by learning from other walks of life. Tech is a very young industry and while some of our challenges are unique, many have come up time and again and we really should learn from others before attempting to reinvent the wheel. Usually I look at modern industry like manufacturing, supply chain logistics, beer brewing, food packaging, game development, forging and so on but sometimes we can gain inspiration (or at least be humbled) by looking much further back.</p><p>So let's look at <a href="https://en.wikipedia.org/wiki/Pentre_Ifan">Pentre Ifan</a>, the neolithic dolmen.</p>
<a data-flickr-embed="true" href="https://www.flickr.com/photos/tomnatt/52367695597/in/datetaken-public/" title="Floating stones"><img alt="Floating stones" height="482" src="https://live.staticflickr.com/65535/52367695597_1d65b4af4f_z.jpg" width="640" /></a><script async="" charset="utf-8" src="//embedr.flickr.com/assets/client-code.js"></script>
<p>The top stone was originally a larger rock which was split by craftsmen and now weighs around 16 tonnes. It is balanced on the tips of three other stones, high enough for a fairly tall person to walk under without stooping. In person, the effect is actually quite eerie - it looks like a strong wind will knock it over. What we see here is very simple, yet elegant design and a very high commitment to engineering excellence in order to execute it properly. It was believed to have been winched up a little at a time using ropes and pulleys, with supporting boulders put in place each step. So iterative construction with solid testing at each stage (with failed tests resulting in a 16 tonne boulder falling on the workforce...). They had to create supporting structures (the smaller boulders), which were later discarded when no longer required.</p><p>They put in the work to make this last (last 5000 years, as it happens). It even has a small environmental footprint since the materials are locally sourced. So is this pinnacle of <a href="https://tomnatt.blogspot.com/2021/12/responsible-building.html">sustainable development</a>?</p><p>Well, not exactly. That means building for the future - creating something simple and well documented so we can maintain and make use of it going forward.</p><p>Thing is, we can't maintain or extend this dolmen (ignoring the protected status for a moment, and the sheer horror of using a 5000 year old monument to build "something else"). For this to be useful, we need to know what it is for. Is it a doorway to a tomb? Some kind of temple or altar? The real problem is around knowledge transfer. Where is the original documentation telling us the core purpose with notes about how it was built? The fact it predates writing in Britain by around 3000 years is no excuse!</p><p>Plus, while the design is elegant it is not intuitive. If it were, we'd be able to work out what it does and how to use it. More UX work required here, I feel. Whatever it was, it has outlived it's original purpose and has clearly missed its (admittedly impressive) maintenance cycle, which would have had it replaced by a modern equivalent a few thousand years ago.</p><p>This post needs to end. Somewhere in all the above silliness are some solid points, honest.</p><p>Pentre Ifan itself is incredible.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-6830880409214201522022-08-28T11:38:00.002+00:002022-10-23T13:47:12.544+00:00Can we actually do sustainable working?<p>Ok, time for another rambling post about mental health.</p><p>Over August I took a week away from work, and I came back feeling so much better. I was away from Bath for a few days, and the change of pace and change of environment was incredibly refreshing. I felt ready to face some of the challenges that only a week before were making me want to hide, and for the first time in ages I didn't feel a sense of gnawing dread at having to face work again.</p><p>This is all great, and we all know about the healing power of a break from work - and why it is so important that the break is a proper, clean separation and not just answering emails in a less convenient way. A break always make me feel better, helping me recharge my batteries and replenishing energy to face the next days. However, this time, the change was dramatic enough to remark on it, which doesn't seem right. We talk a lot about sustainable working being an important part of a caring workplace culture but a properly sustainable working life should not really require holidays to recharge. Holidays should be a positive extra, enabling new experiences and life learning, not just a break between work-marathons to collapse and pull oneself together.</p><p>I've had seen this fatigue growing in me over the preceding months, and I can see it trying to grow again now I'm back. I am paid to work a certain number of hours a day, and (accepting that my role will require some flex in this) I should be able to enjoy the other hours in the day. However, if I am getting to the end of the day knackered and just looking to crawl onto a sofa and close my eyes that is not giving me any sense of life outside of work (and if it gets worse, it can knock on to bad behaviours like takeaway food replacing cooking, etc). This, for me, is where "sustainable" really kicks in.</p><p>Of course work is going to be stressful at times - that is pretty much a given. Also, I am certainly not currently in a strong mental state. I am very definitely still recovering from burnout and this has made me more vulnerable to mental exhaustion and less able to shrug off personal slights that wouldn't have phased me in better days. However, these things are amplifying existing problems, not creating new ones. Things that have been draining me for the last few months would also have done so previously, just less so. </p><p>So what can be done? While I believe in trying to create a sustainable work environment, I also believe that many places of work are more about talk than delivery, and are unwilling to get under the hood of the problems. Often this is because it is the leaders who are talking about better working conditions, while creating the unsustainable environment. Where I am now, the leaders do indeed talk about sustainable working and energy ladders aaaand I'm one of the more senior leaders in my department. Damn. Better do something of that "modelling behaviour" thing.</p><p>There are infinite variations on a sustainable working environment, but they must address two core points. First, the number of hours worked. People working long days and weekends are not working sustainably and the obvious question is why is this needed? Are they under pressure from the organisation? I know I do not deliberately push anyone to working antisocial patterns (quite the opposite, actually) but do I create an environment where they have to?</p><p>This is a more difficult question. I know I work long hours at times (with no good consequences - see all the above) which sets a bad precedent. I know I need to model the behaviours I want to see from those for whom I have responsibility. I also know they have far too much to do, as do I - I don't work long hours for fun. So the problem is volume of work against capacity? At least partly - and for this we need to aggressively take an axe to the department "to do" list. We've already pledged to do this, and the hardest part will be gathering the information required to enable the conversation properly. This is, of course, more work...</p><p>The second point is the activity during those working hours. My current boss likes to talk about energy ladders and energy drains (disappointingly, not energy snakes). To put it another way - things that make us interested / excited / give us an energy boost vs things that sap our will to live. There will always be things to do on both sides, but the balance is very important. For me, I'm realising that my balance has been horribly off for quite some time. I'm also finding that things I've previously found ok are more draining at the moment.</p><p>So I need to cut back on the things that make me miserable, whilst maximising the happy. Fortunately, my job is supposed to be all about strategy and future horizon scanning. I enjoy this. Unfortunately, we've been mired in tactical decisions and putting in the foundations to enable The Future. I usually don't mind this, but at the moment a typical working day is emails, then unbroken meetings for 6 hours, then more emails asking why I haven't answered the first emails. No matter how interesting the meetings (and some are great ... some) I find remote meetings exhausting and full days of the things are lethal. I can feel this affecting me. So I've decided to make some changes. I've blocked out a lot of my diary to get things done. Now people are complaining they can't get hold of me, but it's better than complaining I haven't done something.</p><p>So will this help? Can I make my own working life sustainable, let alone help anyone else? That remains to be seen, but I am sure that pushing away from "survivable" is the right thing to do.</p>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0tag:blogger.com,1999:blog-7951124889773348411.post-50362732836444098642022-07-16T16:02:00.003+00:002022-07-16T16:02:27.684+00:00Why hire a Head of Community?<p>One of the hats I have worn during my career is "Head of Community" for Software Engineering. A few years ago, these were rare roles but these days we're seeing them pop up more often. Since we at Macmillan are <a href="https://jobs.macmillan.org.uk/jobs/vacancy/head-of-technical-community-9399/9447/description/">currently recruiting for one</a>, I thought I'd write a bit about why they are a Good Thing, despite the rather strange mix of requirements. This post is not sponsored!</p><p>So, you have a Software Engineering group. Why should you hire a Head of Community? </p><p>If you've hired developers and other technologists, you know they are hard to bring in and retain. A typical developer role last to about three years before they move on and when they do, they not only take their professional expertise they also take all the knowledge of the organisation's technical estate and business problems that has accumulated in their heads. This is expensive for a variety of reasons and surely we can do better? </p><p>Your organisation has almost certainly been describing itself as proudly investing in its people (everyone does, whether it's true or not). If we care about people, why are any initiatives done as extra work by people who have a heart for that kind of thing? Why are these extras the first thing to go when time is squeezed? Why is there not someone with clear space to think strategically and holistically about essential problems like careers, recruitment, support, mentoring, and so on? These often are shunted off to organisation-wide initiatives, which is good as far as they go, but these areas require specialist knowledge born of experience to be credible.</p><p>A Head of Community role brings together professional expertise (and another senior technologist never hurts) with the mandate to improve the lives of the technologists in their community. Happy people are less likely to leave, which obviously is a good thing for retention. They can devote time to finding diverse sources of recruitment and reaching people who might otherwise be overlooked. Furthermore, getting the basics in place across the whole organisation saves considerable effort in recruitment and performance management and enables a consistent experience for all those working there.</p><p>Fundamentally, Head of Community roles are about putting our money where our mouth is when we talk about valuing people.</p><p>Ok - you're a lead developer, or an engineering manager or some other technical leader. Why should you consider being a Head of Community?</p><p>Personally, I see it partly as giving back. Everyone with experience in technology has had to gain that experience somehow. We've all had our first job, made our junior mistakes, and so on. This is not an easy process for most. Technology is a famously hostile and toxic field, and some have it far worse than others. And yet, technology underpins most of the modern world. There is no shortage of work - there is enough of a shortfall in people to do the work that the government set up the Institute of Code to look at the problem. But Computer Science graduates struggle to find work. Why is this? Why can't people get into an industry crying out for workers? </p><p>As an industry, we can do better. We must be thinking about the next generations of technologists. It's as important to the sustainability of the industry as making sure our code is well written and understandable in the future. Roles such as the Head of Community roles are created to give space to enable specifically this - to grapple with problems like "how do we recruit juniors in a safe way?" or "how do our people grow?".</p><p>Maybe this isn't enough - you'd rather be writing code. Understandable, but what about in five years? Ten? Do you want to be hands-on your entire career? If not, what is next? If you want to progress into senior leadership you need experiences beyond the hard technical. People-oriented roles such as a Head of Community enable broader learning, dealing with HR challenges and issues, line management and operating at a wider scale through people. However there is still a requirement for technical understanding, so do not require stepping entirely into a different career. For someone who wants to be a Director or CTO, this kind of experience can be extremely valuable.</p><p>If all this sounds interesting, a reminder that we're currently <a href="https://jobs.macmillan.org.uk/jobs/vacancy/head-of-technical-community-9399/9447/description/">hiring a Head of Technical Community at Macmillan</a>.</p><div><br /></div>Tomhttp://www.blogger.com/profile/02319104535488689210noreply@blogger.com0