mirror of
https://github.com/idanoo/m2.nz.git
synced 2024-11-22 08:15:13 +00:00
Update CV, Post
This commit is contained in:
parent
05e6ef5958
commit
19b490635e
4
README.md
Normal file
4
README.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# m2.nz
|
||||||
|
|
||||||
|
Hugo
|
||||||
|
Theme: https://github.com/vaga/hugo-theme-m10c
|
43
config.toml
43
config.toml
@ -1,9 +1,12 @@
|
|||||||
baseURL = 'https://m2.nz/'
|
baseURL = 'https://m2.nz/'
|
||||||
languageCode = 'en-us'
|
languageCode = 'en-us'
|
||||||
title = 'Daniel Mason'
|
title = 'm2.nz'
|
||||||
|
|
||||||
theme = "m10c"
|
theme = "m10c"
|
||||||
|
|
||||||
|
[markup.goldmark.renderer]
|
||||||
|
unsafe = true
|
||||||
|
|
||||||
[menu]
|
[menu]
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
identifier = "home"
|
identifier = "home"
|
||||||
@ -15,11 +18,11 @@ theme = "m10c"
|
|||||||
name = "Tags"
|
name = "Tags"
|
||||||
url = "/tags/"
|
url = "/tags/"
|
||||||
weight = 2
|
weight = 2
|
||||||
# [[menu.main]]
|
[[menu.main]]
|
||||||
# identifier = "about"
|
identifier = "about"
|
||||||
# name = "About"
|
name = "CV"
|
||||||
# url = "/about/"
|
url = "/cv/"
|
||||||
# weight = 3
|
weight = 3
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
author = "Daniel Mason"
|
author = "Daniel Mason"
|
||||||
@ -29,13 +32,25 @@ theme = "m10c"
|
|||||||
favicon = "/favicon.ico"
|
favicon = "/favicon.ico"
|
||||||
|
|
||||||
[[params.social]]
|
[[params.social]]
|
||||||
icon = "gitlab"
|
icon = "git-pull-request"
|
||||||
name = "GitLab"
|
name = "GitLab"
|
||||||
url = "https://gitlab.com/idanoo"
|
url = "https://git.m2.nz/idanoo"
|
||||||
|
[[params.social]]
|
||||||
|
icon = "send"
|
||||||
|
name = "Mastodon"
|
||||||
|
url = "https://mastodon.nz/@idanoo"
|
||||||
|
[[params.social]]
|
||||||
|
icon = "camera"
|
||||||
|
name = "Pixelfed"
|
||||||
|
url = "https://pixelfed.nz/idanoo"
|
||||||
|
[[params.social]]
|
||||||
|
icon = "message-square"
|
||||||
|
name = "Matrix"
|
||||||
|
url = "https://matrix.to/#/@idanoo:mtrx.nz"
|
||||||
|
|
||||||
[params.style]
|
[params.style]
|
||||||
darkestColor = "#242930"
|
darkestColor = "#242930"
|
||||||
darkColor = "#353b43"
|
darkColor = "#353b43"
|
||||||
lightColor = "#afbac4"
|
lightColor = "#afbac4"
|
||||||
lightestColor = "#ffffff"
|
lightestColor = "#ffffff"
|
||||||
primaryColor = "#57cc8a"
|
primaryColor = "#57cc8a"
|
||||||
|
98
content/cv.md
Normal file
98
content/cv.md
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
+++
|
||||||
|
title = "Employment History"
|
||||||
|
|
||||||
|
+++
|
||||||
|
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="flex-direction: row; margin-right: 20px">
|
||||||
|
<img alt="ezyVet Logo" title="ezyVet Logo" src="/ezyvet_logo.png">
|
||||||
|
</div>
|
||||||
|
<div style="flex-direction: row">
|
||||||
|
<h3 style="margin-top: 5px">ezyVet</h3>
|
||||||
|
<h4 style="margin-top:-16px; color: #afbac4">Site Reliability Engineer</h4>
|
||||||
|
<p style="margin-top:-20px;">August 2019 - Current</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
My role at ezyVet is primarily focused on improving performance and response time across the full stack from PHP, MySQL and ElasticSearch improvements to optimizing AWS usage and cost.
|
||||||
|
|
||||||
|
- Pushing for latest versions of services to keep frameworks up to date and utilize any performance improvements (PHP, MySQL, Elasticsearch, Redis upgrades)
|
||||||
|
- Building automation pipelines through GitLab CI
|
||||||
|
- Experience building a cross-platform Go application utilizing Websockets with AWS API Gateway and SQS/SNS/DynamoDB/Lambda/Terraform
|
||||||
|
- Creating a full docker development environment for engineers to improve development workflows
|
||||||
|
- Reducing RDS load and improving SQL query response time via query restructuring to make better use of compound indexes and foreign keys
|
||||||
|
- Rebuilding Elasticsearch clusters to improve redundancy and response time with optimised indexes
|
||||||
|
- Writing custom service monitoring tools in Go that interface directly with Docker, ElasticSearch and PHP-FPM
|
||||||
|
- Optimising MySQL parameter groups to get the most out of each instance
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="flex-direction: row; margin-right: 20px; margin-left: 5px">
|
||||||
|
<img alt="Catalyst IT Logo" width="90" title="Catalyst IT Logo" src="/catalyst_logo.png">
|
||||||
|
</div>
|
||||||
|
<div style="flex-direction: row">
|
||||||
|
<h3 style="margin-top: 5px">Catalyst IT</h3>
|
||||||
|
<h4 style="margin-top:-16px; color: #afbac4">Devops Engineer</h4>
|
||||||
|
<p style="margin-top:-20px;">October 2018 - August 2019</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
At Catalyst, I worked directly with several large corporate clients doing routine patching, performance improvements and general BAU. While primarily configuring CI/CD pipelines for full automated tested and deployments, I also gained experience with helm chart deployments into Kubernetes clusters hosted on OpenStack.I have also had the opportunity to gain more experience working with Puppet, Ansible and GitLab CI.
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="flex-direction: row; margin-right: 20px">
|
||||||
|
<img alt="ezyVet Logo" title="ezyVet Logo" src="/ezyvet_logo.png">
|
||||||
|
</div>
|
||||||
|
<div style="flex-direction: row">
|
||||||
|
<h3 style="margin-top: 5px">ezyVet</h3>
|
||||||
|
<h4 style="margin-top:-16px; color: #afbac4">Cloud Environment and Application Engineer</h4>
|
||||||
|
<p style="margin-top:-20px;">August 2017 - October 2018</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
At ezyVet, I was primarily in charge of reviewing and merging code into our production environment as well as being our in-house DevOps/Infrastructure person. I occasionally did development work as well. In this position I gained vast experience in multiple areas as outlined below.
|
||||||
|
|
||||||
|
The position currently included the following responsibilities:
|
||||||
|
- Setting up and improving our CI/CD processes.
|
||||||
|
- Maintaining and constantly improving our environment. (AWS/Terraform)
|
||||||
|
- Setting up custom alerts / metrics with Cloudwatch & Grafana.
|
||||||
|
- Responding proactively to the above alerts to fix potential issues.
|
||||||
|
- Heavily involved in rolling out new technologies to our stack.
|
||||||
|
- Revision, escalation and resolution of tickets and other critical issues.
|
||||||
|
- Mentored Junior Developers through their induction into ezyVet.
|
||||||
|
|
||||||
|
DevOps:
|
||||||
|
- AWS: Consistently Improving our infrastructure to be efficient and reliable
|
||||||
|
- Linux: Daily experience with Debian, Ubuntu and Arch.
|
||||||
|
- CI / CD: Setting up and maintaining GitLab runners to run our Unit Tests / Automatic deploy pipelines inside docker containers.
|
||||||
|
- Packer/Chef/Vagrant: Building custom AMI images for AWS & Vagrant for our development machines.
|
||||||
|
- Terraform: Assisted migration of our AWS environments to code.
|
||||||
|
- Virtualization: Setting up Vagrant / Virtual Box environments that mock our production environment.
|
||||||
|
|
||||||
|
Programming:
|
||||||
|
- PHP: Building small features and day-to-day bug fixes as well.
|
||||||
|
- MySQL.
|
||||||
|
- Shell / Bash: Created custom scripts to achieve specific goals.
|
||||||
|
- Python / Node.js: Lambda functions in serverless.
|
||||||
|
- HTML / CSS / JS / jQuery.
|
||||||
|
|
||||||
|
Management:
|
||||||
|
- Code Review: In charge of reviewing all code before it gets merged in to our production branches.
|
||||||
|
- JIRA / Confluence / Freshdesk: Primarily used JIRA for ticket-tracking and Confluence for In-house documentation.
|
||||||
|
- Mentoring: I have taken on several junior developers over the 2 years to train them and assist them in becoming familiar with out code-base and work-flow.
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="flex-direction: row; margin-right: 20px">
|
||||||
|
<img alt="ezyVet Logo" title="ezyVet Logo" src="/ezyvet_logo.png">
|
||||||
|
</div>
|
||||||
|
<div style="flex-direction: row">
|
||||||
|
<h3 style="margin-top: 5px">ezyVet</h3>
|
||||||
|
<h4 style="margin-top:-16px; color: #afbac4">Full Stack Developer</h4>
|
||||||
|
<p style="margin-top:-20px;">March 2016 - August 2017</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
Focused on building new features and improving our cloud environment. Primarily working in PHP.
|
24
content/posts/proxmox_rm_recovery.md
Normal file
24
content/posts/proxmox_rm_recovery.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
+++
|
||||||
|
title = "Recovering from a root 'rm' and why you need backups"
|
||||||
|
tags = ["recovery", "backup", "proxmox"]
|
||||||
|
date = "2021-02-06"
|
||||||
|
description = "test"
|
||||||
|
+++
|
||||||
|
|
||||||
|
Last week I was finally getting around to fixing my backup tooling and validating the recovery procedures. I thought it would be a good idea to have rolling nightly backups on a secondary ZFS pool with weekly syncs to an external disk. I ended up using this exact command to purge the rolling backups:
|
||||||
|
|
||||||
|
> `$ find ${BACKUP_FOLDER}/* -mtime +${DAYS_TO_KEEP} -exec rm {} \;`
|
||||||
|
|
||||||
|
Before we go any further, I want to point out that I was using the variable `${BACKUP_DIR}`, not `${BACKUP_FOLDER}`.
|
||||||
|
Can you see where this is going? Yeah.. I didn't pick that up before running my new majestic backup script. Half an hour later I came back to pages of ssh logs resembling `/bin/rm: command not found`. Oops. I instantly knew what had happened, I'd completely written off my Proxmox host and I was lucky it removed the `/bin/rm` binary before removing any actual data.
|
||||||
|
|
||||||
|
Further investigation showed that I'd wiped most of /bin and the system was barely usable, I still had rsync.. yay! I quickly shutdown all of my containers/vms and rsync'd `/etc` to my primary ZFS cluster before rebooting to a fresh Proxmox install. After reformatting my root drive and reinstalling from scratch, I copied `/etc/pve/lxc` and
|
||||||
|
`/etc/pve/qemu-sever` back into place, ran zpool import `{data,storage}` and gave it one more reboot.
|
||||||
|
|
||||||
|
I have never been so relieved to check and see all of my containers booting up back to their normal state. There was one or two other small things I had to fix up post-install such as reinstall `nfs-kernel-server` and several other packages. Overal I was pretty lucky I could copy my container configs before reinstalling and total downtime was under an hour.
|
||||||
|
|
||||||
|
### Backups are important
|
||||||
|
|
||||||
|
**Test your backups.**
|
||||||
|
|
||||||
|
Don't get caught out and expect everything to be there when you really need it.
|
BIN
static/catalyst_logo.png
Normal file
BIN
static/catalyst_logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
BIN
static/ezyvet_logo.png
Normal file
BIN
static/ezyvet_logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 93 KiB |
Loading…
Reference in New Issue
Block a user