DevOps Engineer • Full Stack Developer
I incorporated Domainscanners as a small hosting company that I also use to complete freelance projects and contract assignments. Originally, I single-handedly provisioned and managed all co-located servers. I migrated all server workloads into the Cloud in 2018; first into Azure based VM’s (IaaS), then later I split the workloads into Azure / GCP PaaS and SaaS environments freeing me from VM maintenance.
DevOps Engineer Experience
As a DevOps engineer, I enjoy building automated software delivery pipelines. I have built custom pipelines using Tmux, Bash scripting, Node, TypeScript and JavaScript as well as using more conventual DevOps tools such as GitLab, Jenkins and Azure DevOps:
• Building custom CI/CD Pipelines for automated build, test, deployment and integration• GitLab deployment pipelines to 3rd party app stores
• Jenkins declarative Pipelines with Groovy and bash shell scripting
• Azure DevOps and Arm templates
• SCM using Git, GitHub, Git hooks
• System Administration and Configuration Management with Ansible
• Continuous Integration, testing, and delivery
• Infrastructure as Code (IaC) with Terraform
• Docker and containers
• Microservice orchestration with Kubernetes and Azure Service Fabric
• Vagrant provisioning of development and test environments
• Implementing monitoring and alerting within a cloud environment
• Notification integration using Microsoft Teams, Slack and Azure DevOps hooks and APIs
• Linux fundamentals and excellent bash scripting skills
• Comfortable working in Linux, MacOS or Windows environments with Windows Subsystem for Linux
Full Stack Development Experience
As a developer I have been writing code for over 30 years and have used many languages, libraries, frameworks and technology stacks.
I am an advocate of Software Craftsmanship best practices and continuously strive at keeping code bases clean, DRY and free from technical debt:
• I call upon and implement tried and tested design patterns where possible• General programming experience with Go, Rust, C#, TypeScript, JavaScript, Swift and Python.
• I especially enjoy designing and developing microservice architectures.
• Architecting microservices using Event Storming and Miro
• Domain-Driven Design (DDD) and Command Query Responsibility Segregation (CQRS)
• Microservices development using Golang, Rust, TypeScript, JavaScript, C#, .NET Core and Node
• Event driven microservices with message queues (RabbitMQ and ZeroMQ)
• gRPC, Protobuffers 3 with Golang and C#
• Cloud native modern web 12-factor app development
• Web Components and Polymer Elements
• Progressive Web App development (PWAs)
• Rust and WebAssembly development (Yew framework)
• AMP website and AMP web story development
• TDD and BDD
• MS SQL, MySQL and NoSQL (MongoDB) and Redis
• Azure Serverless Function and Logic App Development
• Next.js and React.js
• .NET Core, MVC and C# dynamic web sites
Notible achievements and experience include…
✓ Became an Automation SME using Jenkins and Azure DevOps CI/CD Pipelines✓ Extended existing system provision and management experience
✓ Learnt to break monolithic systems into de-coupled microservices architectures
✓ Architected and implemented Domainscanners multi-cloud (Azure / GCP) hosting platform
✓ Successful cloud migrations for almost 100 projects
✓ Azure Serverless Function App Development
✓ Microservices Event Storming with Miro
✓ DNS Management
✓ Office 365 provision and management
✓ Microsoft Phone System management and Office 365 integration
✓ Microsoft Teams management
✓ Dynamics 365 provision, management and app development
✓ AMP website / story development
✓ Technical SEO
Partner / Lead Developer
Delivered Safenames International Domain Name Registration Portal (IDP) used to consolidate international domains.
Stack: ASP.NET, C#, SQL.Lead Developer
Worked on Vodafone's mobile portal. I was responsible for writing web based mobile apps that consumed various data feeds such as news, weather, sports scores etc. and delivering a compelling UX for mobile consumers.
Stack: WAP, WML, Java, JSP, ASP, C#Developer (Contract)
Designed and coded internal systems including a company wide telephone contact system that included a WAP access layer so that users could browse intranet contacts on their Nokia 7110 phones. I later extended the system so that users could read and send emails from their phones.
Stack: WAP, WML, ASP, VB