If I need to get a project to market quickly, Phoenix LiveView is my go-to framework. Elixir LiveView is incredible, and an alluring choice for software leaders looking to develop applications super fast. However, in recent experience, I’ve seen teams hit some pitfalls. The trick is to understand what Elixir LiveView excels at, and what it doesn’t. TL;DR : LiveView is perfect for…
I joined the Remote.com AI and Knowledge Management team in 2023. On this team I was technical lead for a number of projects: Knowledge Management & AI Governance Data Pipeline AI Support Chatbot AI Support Email Auto-Responder AI Evaluation Framework Ask An Expert (backend)
I began consulting for a global entertainment company in 2021. I lead the project to restructure and dismantle a Kafka-based event-sourcing system costing the business tens of thousands of pounds every quarter in infrastructure costs.
I joined Wi5 in 2018, and worked as Tech Lead working predominately on their architecture, AWS infrastructure, and building their Point-of-Sale integrations and payment processing systems. Wi5 was a POS integrated Order & Pay system for the hospitality industry. Wi5 has since pivotted to focus on payment processing and renamed to “Onvi”.
Analyses the Meta for A Game of Thrones: Living Card Game and returns the best sets to buy. Method Uses data pulled from the following websites: Cards & Set Database: https://thronesdb.com/api/ Meta Statistics: http://thestonedrum.com/#/overview Considerations Considers agenda cards ~3x more important than a normal card. Considers plot cards ~2x more important than a normal card. Considers popular…
You might have read the infamous blog posts titled “Rails is Dead”, but I have seen development teams flounder over and over again when they try and reinvent the wheel using NodeJS on the backend.
The “greenfield” project is known by developers as a productivity Nirvana. It is a beautiful place where there is no legacy, no bugs and endless possibilities. It is also littered with mines. I’ve recently seen a number of anti-patterns around the creation and early growth new projects, and thought I’d summarize the anti-patterns I’d seen in the past as a guide for…
Immerse is a VR startup based in London, UK . Immerse provides an enterprise virtual reality CMS and Unity SDK . I joined the company in 2017 as their lead DevOps Engineer to lead the company’s effort in becoming a global VR platform.
Quiqup is a realtime delivery platform. Quiqup provides a customer-facing iOS application which allows customers to order from any restaurant or store in London and get it delivered within minutes.
Members of the Cloud Native London Meetup had the pleasure tonight to hear some amazing speakers. The first talk was called Switching Horses Midstream: The Challenges of Migrating 150+ Microservices to Kubernetes where Sarah Wells , the Technical Director for the Financial Times spoke about their migration from disperate Docker containers to a microservice architecture orchestrated with…
I recently did a live coding session on a 3d audio server built in Elixir . This project involves quite a complicated supervision tree where GenServers are created and destroyed dynamically based on users joining a room and moving around. As such this requires in-depth logging of processes in the application.
In this live-coding session I work on an Elixir server built to support huge numbers of users chatting in 3d. In these sessions we build a supervision tree based on the following architecture:
Then she gets up and leaves. The patient is still on dialysis, still bleeding in places, and their internal organs are still on show for everyone else in the room. The patient’s immediate future is secure, but eventually they are still going to bleed to death. As a DevOps engineer, perhaps one of the best things you can do for an engineering team is to empower them to write and utilize…
In this video we will set up an automatic deployment CI/CD pipeline which deploys our static website to S3. We will then create a Terraform project which will orchestrate resources in AWS, and create an S3 bucket, and IAM user to use in our pipeline.
Qubula is a puzzle game where puzzles are generated from a gene and a random seed. An Elixir program generates the puzzles, and outputs level files in JSON. The frontend of the game is built in ReactJS, with the frontend state management written using Mobx-state-tree.
Quiqup is a realtime delivery platform. Quiqup provides a customer-facing iOS application which allows customers to order from any restaurant or store in London and get it delivered within minutes. In addition, Quiqup provides a B2B web application and a RESTful API for integrating their delivery platform into any eCommerce system. I joined Quiqup in 2015 as a senior full-stack developer as we…
FlexibleConfig promotes good OOP design, and the separation of logic and configuration in your Ruby classes. FlexibleConfig allows you to set class constants cleanly in ruby with the heirarchical structure and clean workflow of YML config, without sacrificing the flexibility and immediacy of ENVironment variables.
The AST Guidelines ruby gem gem analyses Ruby module heirarchies to ensure you do not violate bounded context design. A bounded context is a concept of domain driven design which dictates the design of complex software systems.
The Ruby on Rails framework often gets a lot of hate over the years. Rails makes it easy to get up and running quickly . Unfortunately, its beginner-friendly approach leaves you high and dry months later when you have thousands of lines of code. Rails applications of this type are often referred to as Rails monoliths . One of the best ways to refactor and save an aging Rails monolith, is to…
Until you have found product-market fit, your production environment is often just another test environment. It’s not testing your code, it’s testing your customers. At a previous startup company, we had a few hundred thousand users. Not all that many, but enough to get some interesting data and be in a position to use it to optimize the business. We had previously built a…
Grouper is an “Offline Social Club” who joined YCombinator in 2012. In 2013 Grouper decided to pivot towards a mobile-first experience, and I was brought onboard contracting as a senior full-stack developer. I worked under the guidance of Tom Blomfield , Tom Brown and Michael Waxman to deliver the backend services that powered the platform.
RSpec Describe Method is a ruby gem that provides a shorthand for testing specific methods of classes. It supports both instance methods and class methods, with or without arguments.
ActiveHash is a simple base class that allows you to use a ruby hash as a readonly datasource for an ActiveRecord-like model. ActiveHash assumes that every hash has an :id key, which is what you would probably store in a database. This allows you to seamlessly upgrade from ActiveHash objects to full ActiveRecord objects without having to change any code in your app, or any foreign keys in your…
Adds a super simple method to describe RSpec situations in terms of smaller situation blocks. Define a situation with the ‘situation’ method. Add a symbol key to identify the situation, and add an optional description if you like, and pass in a block creating the situation.
Grouper is an “Offline Social Club” who joined YCombinator in 2012. In 2013 Grouper decided to pivot towards a mobile-first experience, and I was brought onboard contracting as a senior full-stack developer. I worked under the guidance of Tom Blomfield , Tom Brown and Michael Waxman to deliver the backend services that powered the platform. As part of an ongoing initiative, we…
Elixir Phoenix is a powerful framework for building web applications. It is a modern, functional, and performant framework that is easy to learn and use. Elixir and Phoenix excel at highly-concurrent, real-time applications. They are a great fit for building web applications that require low-latency and high-availability.
Cloud costs can be a major expense for businesses. I can help you reduce your cloud costs by up to 90% by identifying and optimizing areas of your infrastructure that are costing you money.
Gitlab has quickly become the de-facto standard for code building sophisticated CI/CD pipelines, due to it’s flexible nature and diverse feature set. However, managing Gitlab workflows across multiple projects and teams can be challenging. This is where I can help.
Kubernetes is the platform for buliding platforms. In the right hands, it is an incredibly powerful and versitile tool for building scalable, resilient, and efficient systems. Unfortunately, Kubernetes comes with a steep learning curve and requires a lot of time and effort to master. If you need a certified Kubernetes Administrator, get in touch.
Has your development velocity plateaued? Are you struggling to keep up with the demands of your project? I can help you optimize your developer workflow to improve productivity.
Your email Your message Which services are you most interested in? Platform Engineering CI/CD & DevOps Kubernetes Orchestration Developer Workflows Cloud Infrastructure Backend Software Frontend Software Systems Architecture Consulting Security & Data Protection Other Send