Bigger things

Something unexpected happened this week: I was offered my first senior engineer position. I’ll be focussed mainly on the project management and planning side of things, and I’m being encouraged to delegate the software development work. I’m still prepared to get my hands dirty with the coding and systems administration, if anyone gets stuck on a tricky problem, and I’ll likely be working on a couple of .NET applications as personal projects.

Another way to understand interfaces (C#)

One of the harder software engineering concepts to understand is that of interfaces. I once struggled to understand what interfaces are, how they work, and why a software engineer might use them. Most the explanations I could find on the Web didn’t make a lot of sense - some were more complicated than they needed to be, and others attempted to explain it in terms of other things I hadn’t grasped (i.

Authenticating Requests to a Logic App

One of my Logic Apps originally had just three steps: HTTP trigger Deserialise HTTP request JSON payload Send objects from the request payload to a Service Bus queue Another Logic App would read the objects from the Service Bus queue, use them to query another source for data, then send a email to whatever address was in the initial request. I used this approach because there could be more requests than a Logic App can handle concurrently, and it made sense, therefore, to queue the requests.

Azure Resource Group Security and Authentication

The security configuration of Azure services is a fairly broad subject area, and this is more of an introduction to how it works for a Resource Group, in the context of a Logic App that needs to interact with multiple resources. If a DevOps team, instead of the developers, is managing the security, a considerable amount of time will be spent planning and designing services beforehand, and later trying to figure out which security configurations are preventing the services working.

Why 'low code' isn't always better

One of the most important lessons I’d learned from working with Azure, over the last year or so, is that careful thought should be given to whether it’s better to implement a service as a ’low code’ solution, or as conventionally-developed software. The former isn’t always the fastest, cheapest or more efficient way to get something deployed. I’m currently of the opinion that Azure’s Logic App system is quite good for integrations and basic scheduled tasks - and it has indeed made those kind of things easier to manage - and there aren’t any convoluted deployment pipelines to bother with.

The Post Office cover-up, and why data shouldn't be trusted

Obviously, with so many people having watched Mr. Bates vs The Post Office, and learning, through the dramatised version of events, the extent of what could safely be called a huge cover-up, the public wasn’t going to be content with yet another inquiry concluding with the usual crap about ‘failures in The System’ and ‘lessons being learned’ before the whole affair is forgotten about and it’s business as usual. I think that desensitisation to inquiry after inquiry over the scandals du jour is why it took an ITV drama to get the government to actually take it seriously.

An Azure subdomain takeover incident

A security incident was flagged this week. As it turned out, nothing was compromised, but it served as a valuable warning of how vulnerable an organisation using Microsoft Azure (or perhaps AWS) could be to a subdomain takeover that could be used in a more sophisticated attack. The incident had something to do with a subdomain that was initially mapped to a staging Web site hosted on Azure. The Web site was removed some time ago, but the mapping between the subdomain and the site’s public ‘azurewebsites.

Authenticating API Requests in an Azure Logic App

One way to help understand how Active Directory, App Registrations, managed identities and Key Vaults work in Microsoft Azure is to look at a typical Logic App that authenticates itself with an API that provides data only to services registered with the organisation’s Active Directory. The basic sequence for the authentication part of the Logic App here is this: Get a password from an Azure Key Vault. Get an OAuth token for the Logic App from Active Directory.

Base Camp Journal - Three Days on Spike Island

It’s only recently I’ve had time to write about our trip in the Base Camp the other week. We weren’t going to do another one until March, but Robby had quite a bit of annual leave, and he was enthusiastic about showing me the Concorde being stored at an aviation museum. Apparently the Concorde made its last stop there, twenty years ago, and a hangar was built around it. So, we arranged, at the last minute to book a pitch on the Baltic Wharf CMC site for a few days.

Down the Rabbit Hole of Using SelectPdf on Microsoft Azure

Initially I thought it would be trivial to use SelectPdf to convert an HTML page into a PDF document as a service on Microsoft Azure, since I was easily able to do this as a .NET console app. Everything was going well to begin with. I’d set up everything in the Resource Group: The Logic Apps that write to and read from the Service Bus, the Storage Account for the template files and generated documents, the Function App that’s supposed to handle the document generation itself… The first problem I ran into was the following console message: