AWS Community Builder, holding Terraform and AWS certifications, with over 20 articles in the last year published to leading tech publications; leveraging AWS, scripting, and Infrastructure as Code to manage architecture, CI/CD pipelines, and automation. Currently transitioning from a lifelong career in music to the world of Cloud DevOps, avid to bring a fresh perspective to cloud technology and automation; having amassed a prolific body of work and knowledge in the last 14 months, demonstrating rapid skill acquisition and dedication to excellence.
- Provides a comprehensive walkthrough on internal application load balancer access through API Gateway via VPC link.
- Discusses using API as a CloudFront origin
- Guidance on how to provision a Lambda authorizer to limit API access to CloudFront URL
- Custom header used in CloudFront, with Lambda authorizer checking for presence of required header
- Load balancer and autoscaling group provisioned in private subnets for added security
- Infrastructure Provisioned:
- Comprehensive guidance on provisioning a CI/CD pipeline with CodePipeline and CodeBuild using Terraform
- Utilized a bash script for unit testing and status check on pull requests
- Deployment pipeline runs on merge, deploying to the dev environment
- A manual approval stage is implemented for deployment to the prod environment
- Inludes unit testing to check for HTML elements
- Developed and maintained a custom music player using Django, Docker, Nginx, and Gunicorn.
- Utilized Python, JavaScript, and HTML for the application
- Orchestrated robust and scalable AWS infrastructure with Terraform:
- Implemented a blue/green deployment strategy via DNS routing for seamless updates
- Integrated a CI pipeline using GitHub Actions:
- Built modular 2-tier AWS architecture using 3 reusable Terraform modules:
- Integration of Terraform Cloud with GitHub for continuous integration
- Enhanced module reusability with specific functionalities
- Resources created:
- In depth discussion on the creation of Terraform modules
- Explanation of how and why to use S3 as a backend for Terraform state
- Resources created:
- Documented tests for functionality and accessibility:
- Details the creation of an event-driven architecture in AWS, as well as the benefits of the design pattern
- Utilizes Lambda, API Gateway, SQS, and SNS
- Python with boto3 used for the Lambda functions
- Discussion of a potential roadblock when using boto3 to publish SNS messages
- Utilized a Python Boto3 script for time and cost-saving automation of DynamoDB operations
- Demonstrates enhanced efficiency and reduced manual workload
- Automates parsing of text files and distribution of data to DynamoDB table
- Constructed a 3-tier AWS architecture with CloudFormation.
- Provisioned resources such as:
- Includes a discussion of cross-stack referencing for a more modular approach
- Load balancer troubleshooting
- Implemented a secure 3-tier AWS cloud architecture, isolating presentation, application logic, and data tiers
- Demonstrates deployment security, efficiency, scalability, and ease of management
- Provisioned resources:
- Explanation of how to test connectivity between tiers
- Leveraged CloudFormation for the creation of an EC2 autoscaling group, involving the setup of essential AWS resources
- Provisioned resources:
- Thorough documentation on successful setup of custom GitHub Actions workflows to streamline CI process
- Includes unit testing, linting, building Docker images, and a variety of Python scripts to automate resource management in AWS
- Stages of Pipeline:
- Provisioning of an EC2 autoscaling group with application load balancer
- Adds necessary security groups for HTTP and SSH access
- Creation of a launch template with user data that installs an Apache web server
- Inclusion of a dynamic scaling policy, tested with stress tests
- Details necessary steps to get started with Ansible, including:
- Installation and starting of services like Nginx, and copying files to managed nodes
- Discussion of Terraform basics
- Details setting up AWS Cloud9 for development
- Resources created:
- Basic discussion of Jenkins as a CI tool
- Discusses the creation of a Jenkins container with Docker
- Utilizes a Docker volume for persistent data
- Makes use of Docker Compose and Dockerfiles
- Basic explanation of setting up a Docker Swarm on an EC2 fleet
- Explanation of SSH related actions:
- Discusses the initiation of a swarm manager and joining worker nodes
- Includes a boto3 script that:
- Explanation of deploying services to Docker swarm
- Discusses the use of a compose file to deploy multi-container stacks
- Explanation of the basics of containerization, and Docker specifically
- Details setting up a Docker environment in VS Code and remote EC2 servers
- Employs a Docker container to host a web server
- Walks through the process of creating custom Docker images and pushing to Docker Hub
- Details the creation of a Python script for cataloging files and directories through the use of a Python dictionary
- Discusses the use of a recursive function to obtain directory sizes
Kristoffer’s journey into the world of tech has been filled with determination and embracing new challenges. With a vibrant history in music, including live performances, education, composing, and recording, with one album even being nominated for a Grammy, Kristoffer's innate creativity seamlessly translated into the realm of DevOps.
His passion for solving problems with technology began when he started using Kontakt, a software sampler with the ability to programmatically manipulate sounds, to create his own virtual instruments, blending scripting with sound design to create new and innovative sounds. Around this same time he was growing increasingly frustrated with the scheduling demands of the music industry, frequently having to be away from his family on nights and weekends. This marked the beginning of a career transition driven by a desire to prioritize family and explore new avenues.
Approximately 6 months later, he enrolled in Level Up In Tech, an intensive 6 month Cloud DevOps training program. During this time he immersed himself in Linux, AWS, Python, Infrastructure as Code, CI/CD, and containerization, documenting every project he completed, to emerge as a competent and forward thinking engineer, proving his willingness to tackle any challenge placed in front of him.
Driven by a desire to broaden his understanding of the software development lifecycle, he has since dipped his toe into web development, exploring HTML, CSS, JavaScript, and Django. Through continuous learning and hands-on projects, every opportunity has been embraced to deepen his understanding of tech; from exploring configuration management with Ansible to refining his knowledge of server technologies like Nginx and Apache.
In just over a year, his knowledge of DevOps has gone from barely knowing that it has something to do with development and operations, to implementing complex CI/CD pipelines, designing scalable and fault-tolerant infrastructure in AWS with Infrastructure as Code, designing basic web applications, and becoming an AWS Community Builder.