<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Business on Chris Rants at Clouds</title>
    <link>https://chris.funderburg.me/tags/business/</link>
    <description>Recent content in Business on Chris Rants at Clouds</description>
    <image>
      <title>Chris Rants at Clouds</title>
      <url>https://chris.funderburg.me/me.jpg</url>
      <link>https://chris.funderburg.me/me.jpg</link>
    </image>
    <generator>Hugo</generator>
    <language>en-gb</language>
    <lastBuildDate>Thu, 03 Oct 2024 00:11:53 +0100</lastBuildDate>
    <atom:link href="https://chris.funderburg.me/tags/business/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>03/Oct/2024 - Hitting My Stride</title>
      <link>https://chris.funderburg.me/posts/2024/10/03/hitting-my-stride/</link>
      <pubDate>Thu, 03 Oct 2024 00:11:53 +0100</pubDate>
      <guid>https://chris.funderburg.me/posts/2024/10/03/hitting-my-stride/</guid>
      <description>I feel like I&amp;rsquo;m finally hitting my stride in my current contract</description>
      <content:encoded><![CDATA[<h2 id="enjoying-work">Enjoying Work</h2>
<p>In any job or role, white or blue collar, skilled or unskilled, you always have
a period of feeling like an impostor at the beginning.  You can have all the
skills your industry requires but you never have the &ldquo;domain knowledge&rdquo; that
each organisation comes with.  That takes time.</p>
<p>The good news is that I&rsquo;m finally at that good point in this current contract.
Now, it&rsquo;s 4 months into the 6 month contract - but it&rsquo;s welcome all the same. I
was having a rough time for a while there, particularly as I was having the bad
luck of choosing some toxic work tickets that other people I can only guess were
avoiding.  Those were nightmares.</p>
<p>But in this last sprint I think I&rsquo;ve closed something like 8 tickets with some
spectacularly complex fixes like upgrading the entirety of our <a href="https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html" target="_blank" >AWS Control Tower</a>,
fixing a LONG standing bug with a Lambda mysteriously never working on our
workload accounts, and getting DEEP into some particularly gnarly <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html" target="_blank" >AWS Service
Control Policies (SCPs)</a>.</p>
<p>In the new sprint from tomorrow, I&rsquo;ll be checking a handful of other Lambdas to
ensure the recent Python runner upgrade didn&rsquo;t break them.</p>
<h1 id="that-said">That said</h1>
<p>I&rsquo;ve got 71 days left in this contract.  I need to know by 60 days whether
they&rsquo;ll want to renew me or it&rsquo;s off to market I go. The job market is <strong>rough</strong>
currently so I can&rsquo;t afford to be messed around.</p>
<p>Hopefully they will renew me though.  I like these people and the work - and - it
would be good to ride out the job market storm somewhere safe for a while.</p>
<h1 id="and-just-some-random-notes">And just some random notes</h1>
<ul>
<li>New business cards ordered! It&rsquo;s <strong>very</strong> rare to give them out, but I like
having them.  I updated the design to remove the Twitter address, and to add
all the weird titles my industry likes. Otherwise, these are much like my old
ones.  Ultra thick paper with a green color between the two sides:</li>
</ul>
<p><img alt="New Business Cards" loading="lazy" src="/posts/2024/10/03/cards.png"></p>
<ul>
<li>
<p>I was quiet last week as I finally migrated my entire email stack off
Proton Mail to my own self-hosted mail server on docker-mailserver.  I&rsquo;m in
the process of writing that up.</p>
</li>
<li>
<p>We just got back from a long weekend in Scotland with a quick detour through
the Lake District. Had a lovely time.  Did a bit of hiking, sat around in our
hot tub, ate good food, and had fun with the family. Here are some pictures I
took:</p>
</li>
</ul>
<p><img alt="The Lake District" loading="lazy" src="/posts/2024/10/03/0J9A1627.jpg">
<img alt="Scotland" loading="lazy" src="/posts/2024/10/03/0J9A1653.jpg">
<img alt="Family on the Bridge" loading="lazy" src="/posts/2024/10/03/0J9A1659.jpg">
<img alt="Scottish Problems" loading="lazy" src="/posts/2024/10/03/0J9A1663.jpg">
<img alt="Honey the Highland Cow" loading="lazy" src="/posts/2024/10/03/0J9A1666.jpg">
<img alt="Mist over the hills" loading="lazy" src="/posts/2024/10/03/0J9A1670.jpg">
<img alt="Shrooms on a Dead Tree" loading="lazy" src="/posts/2024/10/03/0J9A1683.jpg">
<img alt="The Forest and a Mother Tree" loading="lazy" src="/posts/2024/10/03/0J9A1698.jpg"></p>
]]></content:encoded>
    </item>
    <item>
      <title>12/Feb/2024 - Better</title>
      <link>https://chris.funderburg.me/posts/2024/02/12/better/</link>
      <pubDate>Mon, 12 Feb 2024 12:00:22 +0000</pubDate>
      <guid>https://chris.funderburg.me/posts/2024/02/12/better/</guid>
      <description>Last Friday was better at work for reasons I can&amp;rsquo;t put my fingers on. Made some good progress on various tasks.</description>
      <content:encoded><![CDATA[<h2 id="work">Work</h2>
<p>Last Friday was better at work for reasons I can&rsquo;t put my fingers on. Made some good progress connecting our production <a href="https://www.keycloak.org/" target="_blank" >Keycloak</a> to Azure AD and restricting who can login based on an AD group in an Enterprise Application.  So - neat to learn how to do that.</p>
<p>I then realised that I couldn&rsquo;t log into <a href="https://grafana.com/oss/loki/" target="_blank" >Grafana-Loki</a> as my non-AD user was already inside it - which I fixed by just giving up and deleting the user database.  And Rancher wasn&rsquo;t setup to use open id at all!  Fixed all of that and moved back onto installing WAF into the Staging and Production environments, which got approved in various meetings last week.</p>
<h2 id="next-contract">Next Contract?</h2>
<p>I&rsquo;ve got 45 days left on my current role with no particular idea whether the actual client wants to renew me. However - today brought a possible return to one of my favourite contracts - Tesco Bank!  They&rsquo;ve sold a lot of their services to another bank and their continuity project&rsquo;s gone far higher in priority so it could be an opportunity to get back to working in a positive, respectful environment. Fingers crossed!</p>
<h2 id="weekend-hacking">Weekend Hacking</h2>
<p>Completely finished rebuilding both my AWS servers into a common containerised platform running in a single Spot instance. The final piece was getting my Git server instance in place.  I still haven&rsquo;t imported the old server&rsquo;s export.  For anyone interested, I&rsquo;ll do a more in depth explanation when I build my Cloud Cauldron blog - but it basically looks like this:</p>
<ul>
<li>
<p>A dedicated VPC, and <a href="https://aws.amazon.com/ec2/spot/" target="_blank" >EC2 Spot instance</a> spun up with <a href="https://www.terraform.io/" target="_blank" >Terraform</a> (<a href="https://opentofu.org/" target="_blank" >OpenTofu</a>) running a <a href="https://www.debian.org/releases/bookworm/" target="_blank" >Debian 12</a> AMI but encrypted.</p>
</li>
<li>
<p>Root volume is small and remains mostly untouched.  Only enough changes to the root volume to enable it to reboot without needing any configuration changes.</p>
</li>
<li>
<p>All important persistent data and configuration lives on a separate encrypted volume mounted at /volume. This gets backed up via a snapshot from AWS Data Lifecycle Manager.</p>
</li>
<li>
<p>Update: I&rsquo;ve open sourced all the Terraform/OpenTofu to create it all <a href="https://github.com/bocan/odin" target="_blank" >here</a>.</p>
</li>
<li>
<p>Everything important is running as a Docker container via Docker Compose.  There are 5 major Docker containers that need to remain up:</p>
<ul>
<li><a href="https://certbot.eff.org/" target="_blank" >certbot</a>:  Mostly sleeping for 12 hours at a time but then checking for certs that need to be renewed</li>
<li><a href="https://www.nginx.com/" target="_blank" >nginx</a>: Powers all the static and tool sites.</li>
<li><a href="https://www.php.net/releases/8.0/en.php" target="_blank" >php</a>: Has the same mounts as nginx and runs any PHP needed</li>
<li><a href="https://mariadb.org/" target="_blank" >mariadb</a>: Powers any needed mysql/mariadb databases.</li>
<li><a href="https://about.gitlab.com/" target="_blank" >gitlab</a>: powers Gitea separately.  nginx reverse proxies it.</li>
</ul>
</li>
<li>
<p>All Powering These Sites:</p>
<ul>
<li>A Wordpress site powering a personal archive. (nginx and php)</li>
<li><a href="https://bocan.dev" target="_blank" >bocan.dev</a> - A 1 page CV site. (just nginx)</li>
<li><a href="https://cfunder.me/" target="_blank" >cfunder.me</a> - A personal URL shortener. (nginx and php)</li>
<li>My personal blog (nginx and hugo), and tooling hidden underneath:
<ul>
<li>A personal photo gallery powered by <a href="https://piwigo.org/" target="_blank" >Piwigo</a>.</li>
<li>A <a href="https://chris.funderburg.me/advice" target="_blank" >webapp</a> that gives quotes and advice.</li>
<li>My self hosted <a href="https://nextcloud.com/" target="_blank" >Nextcloud</a> engine.</li>
<li>A <a href="https://chris.funderburg.me/time.php" target="_blank" >time dashboard</a> I built to amuse myself.</li>
</ul>
</li>
<li>My <a href="https://cloudcauldron.io" target="_blank" >business site</a> (just nginx) - but soon to be my business blog (nginx and hugo)</li>
<li>My <a href="https://tree.funderburg.me/" target="_blank" >family tree site</a> (just nginx)</li>
</ul>
</li>
<li>
<p>There are 3 crontab jobs executing commands inside the docker containers:</p>
<ul>
<li>Every 15 minutes, exec into php and update my <a href="https://tt-rss.org/" target="_blank" >TTRSS</a> site to get check RSS feeds.</li>
<li>Every 31 minutes, exec into php and run the Nextcloud cron processing.</li>
<li>Every 5 minutes, use Git to pull all configuration from GitHub, then exec into the <a href="https://gohugo.io/" target="_blank" >Hugo</a> container and generate the static blogs.</li>
</ul>
</li>
<li>
<p>Issues I still need to fix:</p>
<ul>
<li>The Terraform state is local on my laptop.</li>
<li>The Github repo that controls all of the content stores the web certificates so I can&rsquo;t make it public.</li>
</ul>
</li>
</ul>
<h2 id="superbowl">Superbowl</h2>
<p>As per my usual, I got in a load of beer and cider and nachos, made some queso, heated up some chilli, and put on my Dallas Cowboy&rsquo;s jersey ready for the Superbowl.  The game was frankly a bit boring but it&rsquo;s always an experience.</p>
]]></content:encoded>
    </item>
    <item>
      <title>06/Feb/2024 - The Subtle Art of Not Giving a F*ck</title>
      <link>https://chris.funderburg.me/posts/2024/02/06/better/</link>
      <pubDate>Tue, 06 Feb 2024 12:25:21 +0000</pubDate>
      <guid>https://chris.funderburg.me/posts/2024/02/06/better/</guid>
      <description>All in all, a better day.  Up at 6am. Out of the house by 6:30.  On the train at 6:45.  In London by 7:30 and into a black cab.  Noted like 10 sets of media outlets broadcasting outside of Buckingham Palace. Bloody vultures.</description>
      <content:encoded><![CDATA[<p>All in all, a better day.</p>
<h2 id="commute">Commute</h2>
<ul>
<li>Up at 6am. Out of the house by 6:30.  On the train at 6:45.  In London by 7:30 and into a black cab.</li>
<li>Noted like 10 sets of media outlets broadcasting outside of Buckingham Palace. Bloody vultures.</li>
</ul>
<h2 id="work">Work</h2>
<ul>
<li>Sooo, I ended up apologising to my team lead for getting passive aggressive in chat. Which was fair, as there was nothing passive about it! 😁</li>
<li>I was sure to tell him that I get quite frustrated at last minute changes to long established plans, and that the appearance of it all with his not attending meetings is that he&rsquo;s out of the loop.  He seemed to accept that and agreed to have weekly or twice weekly one-to-ones. Should we <em>need</em> to?  No. But I&rsquo;ll take the small win.</li>
<li>The topic changed to the tooling we use.  Terraform / OpenTofu being my preference - which I don&rsquo;t think he&rsquo;s ever going to accept - but we have a meeting with senior corporate people tomorrow to discuss. And I&rsquo;ve already raised the issue with them directly.  We&rsquo;ll see how that goes.</li>
<li>And finally, the WAF drama from yesterday is totally up in the air again.   They may decide to go with Cloudflare.  I don&rsquo;t know or care as both solutions are good.  And at this stage I just want someone to make a choice.</li>
</ul>
<h2 id="after-work">After Work</h2>
<ul>
<li>Found out our consultancy supplier was going around claiming <strong>I said</strong> that Terraform was going to <strong>be forced</strong>.  A misunderstanding?</li>
<li>Also found out that the consultancy supplier is pushing for a few of us to not be renewed.  They really don&rsquo;t like being challenged and held to account!   Didn&rsquo;t upset me at all.  <strong>Please</strong> don&rsquo;t threaten us with a good time!  :-D</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>05/Feb/2024 - Work is Hard</title>
      <link>https://chris.funderburg.me/posts/2024/02/05/doom/</link>
      <pubDate>Mon, 05 Feb 2024 23:56:21 +0000</pubDate>
      <guid>https://chris.funderburg.me/posts/2024/02/05/doom/</guid>
      <description>A mixed bag over the last few days.  I managed to get past a bit I was stuck on in Baldur&amp;rsquo;s Gate 3. Namely the battle with Cazador, the secret was to bring Astarian, but leave him high up on the stairs until the last second.</description>
      <content:encoded><![CDATA[<p>A mixed bag over the last few days.</p>
<h2 id="gaming">Gaming</h2>
<ul>
<li>I managed to get past a bit I was stuck on in <a href="https://baldursgate3.game/" target="_blank" >Baldur&rsquo;s Gate 3</a>. Namely the battle with Cazador, the secret was to bring Astarian, but leave him high up on the stairs until the last second.</li>
<li>Coming out of that fight, and after a long rest, I decided to take on Raphael and his 666hp in his House of Hope.  That battle was epic.  <a href="https://www.youtube.com/watch?v=Bk2AqXsJsWU" target="_blank" >The music! OMGs. Raphael actually sings!</a></li>
</ul>
<h2 id="work">Work</h2>
<ul>
<li>Calling this a bad day would be an understatement.</li>
<li>Our team lead isn&rsquo;t able to make our morning standup sessions, nor sprint planning, nor sprint retros, nor end-of-day catchup.</li>
<li>He won&rsquo;t communicate or answer questions on Teams.</li>
<li>Him and our project manager regularly try to discredit me and two other team members in meetings.</li>
<li>His own work is invisible for the more part. We don&rsquo;t know what he does day to day or why.</li>
<li>Probably due to the lack of communication, he&rsquo;ll wait until we&rsquo;ve spent days working on tasks before canning them publicly.</li>
<li>Today, he did it to me <em>yet again</em> after I worked at the weekend to get an Azure WAF running in development, they suddenly asked for it <strong>not</strong> be put into production.  Then had the nerve to ask me to come into the office and discuss it for no particular reason.  Great.  I&rsquo;ll spend £170 to come in for one meeting, waste 3 hours commuting, and talk to no one else in the office outside of Teams - all so they can try to make me lose my temper and give them something to complain about.</li>
<li>The missus noted that I&rsquo;m too old for this shit - and I agree - but I do hate letting them win.  It&rsquo;s wearing me down mentally and physically.</li>
</ul>
<h2 id="the-blog">The Blog</h2>
<ul>
<li>This whole web server and blog are now running in a handful of containers running via docker-compose, on a AWS EC2 Spot server that could shut down at any moment.  But when it <strong>is</strong> recreated, it should rebuild everything automatically.</li>
<li>Even better, all the configuration is stored in a GitHub repo that&rsquo;s pulled every 5 minutes so I can control everything with Git.</li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
