Craig Godden-Payne - Technical Blog

Using dotnet to read gzip streams from s3

TLDR - Theres a bug in the dotnet gzip compression library, and it doesn’t seem like it’s going to be fixed anytime soon So I came across a bug recently...

Hack Manchester 2018 - Runner up for GCHQ challenge

Me and a couple of guys from the office entered HackManchester (me for the third year running). We also gained an additional member of the team, Jon was looking to...

Processing an SQS queue without manual polling, using lambda with event source triggers, built using terraform

I was recently working on something that would process a series of messages from a queue. In the past, this has involved some kind of polling, such as a cron...

Tutorial of using terraform import for syncing terraform state

It’s worth noting that its always much simpler to create the terraform first, you would only ever import when you need to do something reactive, like an emergency release There...

Setting up an alb as an alternative to nginx, using terraform

Setting up NGINX or Apache can be a pain. I’ve been working with AWS Application Load Balancer recently, and setting up routing is fairly straightforward, and in my opinion, if...

Setting up CI environment using Docker, ECS and terraform for Thoughtworks GoCD

One of my first tasks for my new job at Ditto Music, was to setup the CI server in a way that would be easier to manage and scalable. There...

Elasticsearch Bulk Api for data migration

At work, I recently worked on a project to move from a self hosted elasticsearch cluster in Azure, to a managed elasticsearch cluster in AWS. The cluster contained analytics tracking...

Setting up a container cluster in aws with services using terraform

I recently setup an ecs cluster in AWS, which allowed me to run containers on the cluster, rather than having to run individual ec2 instances per application. Create a Dockerfile,...

Performance Testing an Api using Artillery and Faker

I needed to do some performance testing on a lambda, behind an api gateway to just prove that it scaled well, and my initial thought was to turn to something...

Blockchain and cryptoeconomics

Blockchains have recently gained popularity in several industries, and although I am yet to use them in my day to day, it’s something I would like to in the short...

Acceptance Test Driven Development

This post I’ve meant to have wrote about for years now, but never got round to it. I came across a slide deck I created when I first started at...

Terraform dependency graphing visualisations

There a really cool feature of terraform that I only just found out about, Terraform Graph. Terraform Graph outputs a visual dependency graph of the resources that are inside it’s...

Setting up a serverless api using Api Gateway, Aws Lambda, DotNetCore and terraform.

What I’m aiming to do, is create a gateway api, that will call multiple lambdas. It will look similar to a standard web api, except it will be all serverless....

AWS security and IAM Policies

AWS take security very seriously, and there are many physical security measures that are taken place to improve security, such as the location of the AWS data centres, are not...

Library for testing an AWS lambda locally with C#

Recently I’ve been working on a library that will allow you to run an AWS lambda locally, as you would within an API Gateway. This is really useful for testing...

Load Balancers in AWS

There are two PAAS load balancer offerings within AWS. The classic load balancer and the application load balancer. In the past, the classic load balancer was called the elastic load...

Setting up the elbk stack

It’s worth noting, this post refers to ELBK stach version 5, the latest can be found here: https://www.elastic.co/. Also there are PAAS offerings, which means you can have a cloud...

Setting up a simple cloud in AWS

Setting up a simple cloud I do a lot of terraform configuration at work, but never had a chance to look at how to provision stuff within the AWS management...

Webpack

What is Webpack? According to the Webpack documentation: Webpack is a module bundler. It takes modules with dependencies and generates static assets representing those modules. It focuses on Code Splitting...

Module Loaders and Transpilers

This post hopes to explore the past, current and future state of build processes in front end technologies. When working with node, its commonplace to use modules, but what I...

History of webpage layouts

1991 - The first website Back in August 1991, the first website was a simple text-based page with a few links. The first ever webpage served only to tell people...

Snow Day

Its been a very cold an snowy day, had the day off from work, so making the best of the time playing in the snow with my daughter!

Flexbox

I found myself doing some front end work, after months of backend and migration work. I felt a bit rusty when it came to layouts, and although using a prebuilt...

Why use jekyll as a blogging platform?

I’ve finally got round to migrating my blog over to Jekyll, I must say I feel like its much better than blogger, (I can’t believe I used it for so...

Front End North Conference 2018

I went for a day trip to sheffield to attend the FrontEndNorthConference In summary, it looks like we are already doing what the rest of the industry suggests as best...

HacManchester 2017

GCHQ Winners, Hack Street’s Back! We entered the competition in 2016 and close very close to winning an award, but this year we won!! The team was made up of...

Log Rotate in Unix

Recently I’ve been doing some work with analytics and tracking and came across log rotation in Linux. The problem I came across was when parsing nginx logs to build up...

Building a docker container - nginx

Recently I was working with docker, and I found it a bit painful. I think I just jumped straight in without any real knowledge, but after some time to reflect...

App Insights Analytics

I’ve been playing around with azure app insights analytics again. I focused on seeing if there is a way that i could work out a users journey through a website,...

Mob Programming

Last night I attended a session on Mob Programming and Working well together, with guest speaker Woody Zuill, who claims to be one of the founders of the practice. The...

Hack Manchester 2016

I entered the hack mancester competition with a few other people from Zuto, Tom McGiveron, Nathan Smith and Tom Pennington. It took place on the weekend of 29th-30th October and...

Powershell Iterators and Selectors

I’ve used powershell quite a lot, I find it most useful at work when setting up build pipelines for team city, its really handy when creating build steps and you...

FizzBuzz kata in FSharp

https://github.com/craiggoddenpayne/FizzBuzz-FSharp It’s been a while since I got to use a functional language, I did a lot of training on scala, but never really used F#, so I gave it...

Specflow Run Transforms

So I came across a problem today with SpecRun and concurrency issues. It started after I wrote a suite of end to end smoke tests, that are to be run...

Upgrading to OxygenOS

So its been a while since I updated my phone firmware, for some reason on the OnePlusOne if you have a custom firmware, you still get prompted for an update,...

Javascript call and apply

Call and apply, it’s all about “this” and setting the context when inside a function. It’s important to know how and why you would need to do this, especially if...

Stacked 2015 conference

At the time I never got to write up about the Stacked conference I attended, so here goes: I was looking at the various conferences going on this year, and...

Mobbing FizzBuzz

I was having a chat with another developer at work about mob programming (something that’s a bit taboo where we work). I ran a developer huddle for our team and...

12 days of xmas kata

I found a nice seasonal challenge for the end of the year - printing out the lyrics to the ‘12 Days of Christmas’: On the twelfth day of Christmas, My...

JINQ

I was a bit bored so started writing my own linq style extensions for javascript. Its pretty cool so far, they work nicely! Github More to follow!!

Node Rest Template

I’ve been working on a project so that I can get started quickly when wanting to write a quick rest service. I used node, since its my new favourite thing,...

Colourstrap/Colorstrap

My new project! colourstrap https://github.com/craiggodden-payne/colorstrap Eventually i will fork between the two, its just annoying that the american spelling and british spelling of colour have to differ!! I’ve started working...

Jade server for node js

I have been playing around with Node.js again, and have create a Jade web server. Jade is a html templating engine similar to haml, that allow you to write html...

Blackout

I got sick of building snippets of javascript to block out sections of webpages when ajax calls are made etc. I built a jQuery plugin to do this for me,...

Google Maps Api

I’ve been playing about with the Google maps API. Here is an example - I have set the latitude and longitude to show all the bars in the northern quarter...

JQuery plugin PageScraper

I’ve been reading a lot lately about JSONP and cross domain scripting and the massive pain it causes when doing things like page scraping. I created my own PageScraper JQuery...

Functional programming in scala

Its been a while since i managed to get the time post on my blog, I’ve been really busy with work and home life, I’ve recently enrolled in an online...

Javascript Convention

I’ve been writing my js13k submission whenever i have had chance over the last few days, and it’s made me think more about the way i write javascript. I haven’t...

JS13k coding competition | Agent XIII

This should be fun… there’s a competition running at the moment (ending 13th Sept) to create a full javascript / Html5 game that is under 13k in size (minified) Js13kGames...

Woo! RaspberryPi!

So i finally got my pi! I went to micro direct at the weekend, turns out they have lots in stock!! I cancelled my order with RS components as it...

Online Reputation

So I’ve been reading a lot recently about “Online Reputation” and how important it is going to be in the future, Apparently its common now for employers to do a...