Adam Guest

Making Software Better

I design, architect, and build software that is robust, maintainable, and usable. I also work to build and develop teams that reliably and sustainably deliver working software.

If software quality is bad, it won't be able to keep up with the needs of its users. If a team doesn't have a solid foundation both in technical excellence and working effectively together, they won't be able to produce quality software reliably. I like to work hands-on with both aspects to ensure that we can produce working software now and in the long term.

Delivering value from software often relies on more than a single team, I am passionate about finding ways for systems and people to communicate effectively across boundaries to produce the best outcomes possible.

I'm based in Copenhagen 🇩🇰, speak fluent Danish and English, and I'm excited to see how we can work together to make software better.

hi@chamook.lol | @chamook | Adam Guest

Skills

Programming Languages

C# F# Swift HTML JavaScript Rust CSS

Focus Areas

  • Domain Driven Design
  • Functional Programming
  • .NET
  • AWS/GCP/Azure
  • Kubernetes & Containers
  • Continuous Integration/Deployment
  • Unit Testing/Property Based Testing
  • Git
  • Liberating Structures
  • Residuality
  • Event-based systems
  • Mentoring
  • Htmx

Employment History

Software Architect Oct 2024 - Present

Senior Consultant Jan 2022 - Oct 2024

Copenhagen Software/itm8
C# Azure Bicep Git Mentoring Htmx Swift

JAN 2022

NOW

I have worked across a range of client projects working on .NET backend services, web frontends, and an iOS app. Some projects have been developed from scratch, where others have involved improving and developing on an existing codebase. For new projects I have worked to strict quality standards from the start and sought to ensure clear guidelines and documentation for other developers. On some existing projects I have been added to the team specifically to improve code quality.

Across several projects I have mentored junior developers while making my own code contributions. By involving them in the full development process, I have worked to improve their understanding of different tools and technologies while ensuring that they can continuously contribute to a project.

I run the recruiting process for our team including writing job postings, reviewing candidates and running interviews with them - this has led to several successful new hires. I also joined a technical interview for another team so they could learn to use the same model for interviewing. Additionally I have taken responsiblity for running internal retrospectives to improve our ways of working and ensure a positive working environment across the team.

Cloud Developer

DFDS
C# Swift Rust Kubernetes Kafka

NOV 2019

DEC 2021

I worked as part of a team developing a solution for monitoring and instructing autonomous vehicles working at DFDS locations in collaboration with other companies. The software solution comprised mainly of several .NET core microservices running in Kubernetes and communicated primarily via Kafka events, the team and I had a strong focus on using DDD techniques to establish bounded contexts and make use of a ubiquitous language across the project. As well as the backend part of the solution, I also contributed to the frontend monitoring page developed using React.

To facilitate demonstrations to stakeholders and to provide another option for testing the system, I developed an iOS app using SwiftUI and LocationKit that allowed me to simulate an autonomous vehicle operating in a given area - this provided both automatic position updates over SignalR as well as user defined actions.

As part of internal knowledge sharing activities I was actively involved in the developer book club, reading and discussing a number of books focused on software development. I also made several contributions to the internally developed, open-source library for working with Kafka events - Dafda.

Software Developer

Storytel/Mofibo
F# C# Swift GCP

NOV 2017

OCT 2019

Originally working as a backend developer building microservices running in docker containers on Kubernetes on Google Cloud Platform. I developed several services in F# and C# - both HTTP APIs and services consuming Pub/Sub messages. Over time I moved into a more "full stack" role continuing to develop microservices in the backend, but also working on the iOS app (after teaching myself Swift) building functionality that made use of the new backend APIs (in Swift, using MVVM) and integrating it with some of the older parts of the codebase written in Objective C. As part of changing CI provider, I was extensively involved in improving the build automation for both backend services and the iOS app.

As I introduced F# to the tech stack, I also worked heavily with training and mentoring other developers - both to teach them a new programming language and a new approach to solving problems, but also helping to develop their existing skills. I was one of the co-creators of the dotnet template that allowed developers to get a new microservice up and running with standard configuration in either F# or C# with minimal effort. I also was a member of the API Standards group within the tech department that worked towards creating guidelines for how the API surface across many microservices should work.

Additionally, I was involved in several recruitment processes, including reviewing applications and running both social and technical interviews leading to several good hires.

Developer

24/7 Entertainment

APR 2015

OCT 2017

Working in both frontend and backend teams to deliver a range of solutions for media streaming platforms.

On the frontend team working with C#, MVC, WebAPI, and Angular JS to build a single page media streaming application.

On the backend team working on a range of APIs using: C#, F#, WebAPI and more to deliver a level 3 REST Hypermedia API with a comprehensive test suite including xUnit unit tests, property-based tests with FsCheck; and a custom pure dependency injection setup and some use of Azure Service Bus to communicate between different services.

Additionally involved in the development of a functional programming library for C# to allow faster, more robust development - now open source and available on GitHub.

Developer

Eksponent

SEP 2013

APR 2015

Projects included a large site upgrade from Sitecore 6 to 7, and a large media site built on ASP.NET MVC, integrated with several data providers and funnelling data into a responsive, JavaScript based front end. Also worked on developing internal tools including a bot for HipChat that provides integration with the project planning system.

Sitecore Developer

GF Forsikring

DEC 2012

AUG 2013

Refactored the entire codebase for two separate solutions running on different versions of Sitecore into a unified solution, running on Sitecore 6.5, with a more clearly defined and logical structure. Involved in the implementation of TFS from the development team. Developed several landing pages and other smaller projects.

Developer

Cabana

AUG 2011

DEC 2012

Worked on a variety of new or existing Sitecore solutions, often in collaboration with other developers. Gained comprehensive knowledge of Sitecore and experience using a variety of technologies to meet goals across a range of scenarios within stringent deadlines.

International CRM Developer

FOSS

OCT 2007

AUG 2011

Responsible for development of FOSS’s CRM system, including User Interface design and usability assessments. Also developed solutions for integration with both internal and external applications.

Testimonials

Adam is highly skilled within software development, software architecture, etc. Moreover, he is curious about technology, society, and everything in between, and he is happy to share his knowledge and competencies to the benefit of colleagues, customers, and mentees.

My favorite thing about having Adam as a colleague is his willingness and ability to explain and teach others.

Adam is a passionate and skilled developer, who always strives for learning new things and finding better ways of working. I've seen him being a great mentor to those less experienced, as well as being a quick learner himself and appreciating the feedback. Adam has a lot of empathy for his coworkers and he would be a great asset to any team!

Adam is a very experienced developer who is passionate about developing good quality software. At Storytel he was very engaged in recruiting and onboarding/mentoring new colleagues, active in the tech community (giving tech talks, writing blog posts) and he enriched our tech stack with new technologies like F#. He is a person with very high integrity and his contributions generally went well beyond what was expected of him.

Adam's unrelenting search for better ways to develop software has pushed the team to the bleeding edge of software development.