RSSAmplifier

Blog

RayGervais

Recent content on RayGervais

/RSS feed ↗132 posts

Latest posts

Utilizing the Agentic Lifecycle for Improved Generative Results

It’s so easy to jump into the deep end, to vibe. With the rise of modern editors with agentic capabilities such as Cursor, Zed and of course Visual Studio Code, it’s never been easier to jump into the craze of vibe coding . We have never had it so easy to jump straight into agent mode! What many have come to learn the hard way is, this can lead to many unanticipated changes or assumptions,…

Using Trivy to Scan Images for CVEs

A local AquaSec tool for securing our precious containers, filesystems and git repositories! CI/CD Pipelines Are Often Slow Like any modern enterprise solution, my projects are built and bundled into a container image to be deployed into a cloud environment. In this process, there is often automated scans to check for linting & formatting, code quality, tests, hard-coded secrets, and CVEs. These…

Using The Pomodoro Technique to Focus

Because we all get distracted and need a hand focusing, sometimes Over the past couple of years, I’ve noticed a severe degrade in my ability to focus. More so, I’ve found myself struggling to complete tasks if they didn’t have a burning interest deep within me. ADHD? Perhaps, but as I found out over the pandemic, inconclusive. So, without having that to blame, I opted to explore…

The Anne Pro 2 Replacement Project

_Because preferences of a Linux user don’t stop at the software I’ve used the Anne Pro 2 since 2016, and though it has served me well -even better since I had installed the OpenQMK alternative firmware on it, I decided to replace it. Why? Well, like all good things, we begin to show our age; both the USB-C connection and space bar began to become flaky, which are rather important…

That Time A Penguin Performed at a Wedding

A story about Love, Dance, and Linux Last year, two of my childhood friends got married just outside of Ottawa in the small town of <>. It was a beautiful outdoor ceremony beside a lake, picturesque through and through. The reception was also held in the same area, which leads to my story of how a penguin named Tux got to perform a wedding. The couple kept the attendance small, it was only close…

On Developers and Engineers

Recently, a conversation I was part of involved a casual sharing on what the metaphorical difference was between someone who had the mindset of a software developer compared to one with the mindset of a software engineer . As someone who’s never cared for details such as to have the engineer or developer domain within someone’s “designation”, I have been curious why the two exist and where the…

Rationalizing Gopher War-crimes

With all the recent drama around Rust and Typescript, I thought why not join in the fun and share some additional atrocities in another language common to my blog, Go! Specifically, these are super unidiomatic helper functions which can be found over all of my modern projects that I thought you may find humorous. More so, you&rsquo;ll notice that all of my war-crimes here make heavy use of Go…

Locally Testing Kubernetes Operator Webhooks in Go

Last week, I was tasked with implementing Kubernetes admission webhooks for a brand new [[Go]] Operator which would interact with both internal and external APIs, so I thought why not document how to develop and test operator webhooks locally using what we&rsquo;ve already learned in my post Setting up a Local Developer Environment for K8s ? Setting Up the Local Environment The TLDR , install…

Checking Out The Rust Powered IDE, Lapce - Pre-Alpha

Another article about a text editor? Really Ray? Yes. Because, choice. Like any good *nix user, I’ve found enjoyment in following and eventually testing out projects straight from someones basement while avoiding both commitment and technical norms! But on a more serious note, I do enjoy watching the landscape shift and grow around the tools that I use daily such as text editors. Though I am a…

Some Tips I learned from 100 Mistakes in Go

Recently I finished reading Teiva Harsanyi&rsquo;s 100 Mistakes and How To Avoid Them , and instead of writing a review (TLDR, everyone working with Go should read this), I thought I&rsquo;d share four mistakes which I found interesting and didn&rsquo;t know before. #13. Creating Utility Packages So, I have an incredibly-stubborn approach of writing utilitly packages in most of my projects the…

On Learning To Standardize Development Semantics

I&rsquo;ve been working in the Cloud Native space for over 1.5 years, and in that time I&rsquo;ve had weekly chances to succeed and conquer what defeated me previously; I leveled up. Yet, in order to succeed, you also have to fail and learn from those failings. Luckily, I&rsquo;ve never felt that failing was a consequence of not being good enough on my team, nor was there ever any concerns that I…

Quick Tip: Get, Describe, and Explain; a kubectl Command Summary

Recently, I had the (not-so) fun experience of porting custom resource definitions from their YAML manifests into Go structs, to which I had the interesting discovery of the following CLI functions and how they may help my task. The commands are: kubectl get kubectl describe kubectl explain Breaking Down the Commands Get According to the [official Kubernetes…

Technical Interests for 2023

Ray, what are your goals? What are your aspirations for 2023? Where do you want to take your career next? How’s the music coming along? I cannot express the number of times I’ve been asked questions like these, and sadly I never could give a good answer to them, it was simply something that I didn’t have the mental capacity or energy to think of at the time. Over the Christmas holidays, whereas I…

Leveraging Python Virtual Environments in VS Code

This past week, I learned an interesting trick which completely changed how I&rsquo;ll approach writing Python projects in VS Code. See, my previous workflow was the following, which all things considered I&rsquo;d like to think is sane: # Create a new directory for the project, let's name it `example` in this case mkdir example cd example mkdir src # Create a virtual environment python3 -m venv…

What Does "Cloud Native" Even Mean?

What is Cloud Native ? This question has popped up in conversations at least a dozen times every month, and even I find myself wondering what the absolute definition and understanding is of the term is. So, let’s see how the big-tech companies describe the term, followed by my opinion on said term in the current context of things. How Microsoft’s Documentation Defines Cloud Native Cloud native is…

Setting up a Local Developer Environment for K8s

The first in a series of kubernetes wisdom nuggets that I wish I had when I started working with Kubernetes in both a professional and hobby manner. All instructions are relative to Fedora and the Red Hat Enterprise Linux family using dnf , but should be applicable to all distributions and MacOS Setting Up podman, containerd, go, and kind On Fedora, podman is the default daemonless container…

An Introduction to Git Worktrees

For when experience leads you having a PTSD-like relationship with the command git stash Let me give you a scenario, and I’ll let you tell me if it’s one which you’ve encountered before. Simple deal I think, so let’s get on with painting a picture: It’s late on a Monday night, you’re in the zone working on a pivotal feature for the sprint which touches ten files to handle parsing a new data format…

Writing an Awesome List using the GitHub API

One morning, I decided that I wanted to highlight the importance of a project claiming to be blazingly fast A recent trend you may have noticed on GitHub and other Git-based platforms is the concept of the [awesome-list](https://github.com/topics/awesome-list) , and being the cynical one that I can be at times, I wanted to create a list to announce a very important aspect of open source software…

Setting up Fedora 36 From Scratch

For the first time in years, I managed to break my Fedora installation to the point where I thought, “hey, why not install from scratch and start fresh?” So I did. Evaluating Fedora Media Writer Recently, I decided to change it up and also use the offical Fedora Media Writer, which replaced Rufus , Linux Live USB , and Balena Etcher as my Installation Media creator of choice for the past few…

Exploring Github Copilot During a Hackathon

Or, how to distract yourself with technology while trying to build new technology at breakneck speeds Building a Golang-powered Back-end I can remember it like it was just yesterday, I had a long weekend to myself planned to the brim with music and binging Lego Star Wars: The Skywalker Saga. It was the mental and youthful release that I was looking forward to after doing what felt like two weeks…

Interesting Go Environment Variables

Recently, while extending our CI/CD to support go Modules which pull from our private repository, I ran into an issue which resulted in me mucking around with the go environment variables in my Dockerfile . The issue itself involved how we handled and retrieved private vs public go modules, but also gave me a chance to evaluate our configuration settings. I thought I’d share a few common (and not…

Engineering Let Go of Me

As of December 31st, 2021, Tori V’s latest track, Let Go of Me was released to all streaming platforms, including: Spotify , Apple Music ! This track, which does feature my alias Losing Signals was both recorded, engineered, mixed and mastered by yours truly over the course of three months and 32+ emails later! Ironically, the work started on my 2015 Macbook Pro and Ableton stock instruments while…

Learning Python with Doom, Part 2

Continuing on with our Death Counter Application, or, how, many times can a floating skull kill me? In the previous segment, which I can apologetically say was released just over month ago, we started on a death counter terminal application. I thought, let&rsquo;s continue on explaining the application and expand on the following topics: Getting setup with the Pyright LSP Prompting the user for…

Learning Python with Doom, Part 1

Or, how to teach a newer language to someone acquainted with Visual Basic while keeping the interest relatable For the past month, I&rsquo;ve been living at my dad&rsquo;s after a retinal detachment surgery left him both unable to drive or conduct detail sensitive work for a few weeks. In that time, he&rsquo;s been asking me about how the modern technical landscape compared to his previous…

Fonts and Themes for my Linux Environment

Or, how to waste hours a week making the same codebase you looked at in the last hour appear different I decided to write this after managing what would be considered a hell of a move: bringing down an entire cluster along with two months of the team&rsquo;s work with a single command. After all the humour, sometimes it&rsquo;s best to learn, document and move on from the experience itself so you…

Bringing Colors to a Rusty Editor

TIL: Vim uses 8-bit or 24-bit color schemes For a few of my Hacktober contributions, I wanted to add a few small tweaks which would help integrate the Helix text editor better into my desktop&rsquo;s colorscheme. See, for the past while I&rsquo;ve been testing out different terminal-based text editors to see if any could sway me away from my beloved Neovim -an experiment which I may add, broke all…

Transcribing a Podcast for Hacktoberfest 2021

Or, how to stretch a one-hour Podcast into a multi-hour listening experience While discussing a plan of attack regarding finding and implementing Open Source issues which would count towards Hacktoberfest 2021, I was forwarded an idea which I never thought about from an open source & data perspective: validating the transcription of a Podcast episode. The Podcast? Software Engineering Unlocked…

Automating Fedora Developer Desktop Onboarding using Ansible

Nothing screams confidence like being able to setup your Fedora Linux desktop with a few lines of SHELL script and offloading to a dedicated tool About once a year, I typically wipe out both my Windows and Linux systems, do a clean install and setup them up again with a fresh outlook on the needs of their uses. I find this to be a sane practice given that in a year, there&rsquo;s a whole bunch of…

A Busy August

A Busy August Previously, I had written about some lessons I wanted to share from my time at Scotiabank as I made my exit, but left out a few other items which made my August (and by extension, summer) packed. That’s what this separate read is for good reader, join me as I recount some interesting experiments, experiences and projects! Vancouver Earlier in the year, the roommates and I managed to…

Leaving the Campsite Cleaner Than You Found It

Would you believe me if I said I had rewritten this one article five times? Today marks my last day working as a Cloud Engineer at Scotiabank, and I thought that in this bittersweet reminiscence, I&rsquo;d like to share a few lessons and initiatives which the team and I observed as we went about cleaning the campsite . See, I&rsquo;ve had the chance to work with incredible people here at…

Re: My Most Notable Failures

Remember when response videos where a thing? Here&rsquo;s mine: So this week, Mr James Inkster (grommers) himself graced us with the first look into his thoughts for the past year in the form of a blog post titled, My Most Notable Failures. It was a damn good read; full of honesty and admittance not to actually making mistakes, but realizing that there&rsquo;s still so much more learning to do.…

Getting Started with Neovim’s LSP

Or how to alienate yourself in the world of VS Code In my previous exploits around the terminal-based workflow -which, you can read about more here , I had setup a workflow with tmux , alacritty , and vim to great success for my average day tasks. Over the past while, I&rsquo;ve wondered how I could further improve the setup and remove the context-switch which often occurred when working with…

Learning Rust with Exercism

The path to staying sharp means always learning I&rsquo;ve wanted to try out Rust for the past few months, my curiosity deriving from it&rsquo;s rise in systems programming and being rated the number one developer loved language for the fifth year in a row. A friend had pointed me towards Exercism.io , which is another take on the LeetCode and HackerRank style coding challenges with their own rust…

Lessons from Developing the GopherNotes 0.1.0 MVP

A quick CLI notetaking application written in Go. Logo TBD I&rsquo;ve wanted to write a Go-based application for a while now; the problem was always how to approach it without following the suspected purpose of said language: networking. See I&rsquo;ve for a while been wanting to develop tooling which doesn&rsquo;t have to rely on API calls to provide value. A local note-jotting application made…

Getting AWS SAM Running on Fedora 33

Or, how SELinux and Docker can destroy a weekend of ambition Context My WSL 2.X setup finally kicked the bucket when Windows was acting far too slow as of recent, so I opted to reset everything and pursue a dual-boot configuration; my logic being that having dedicated systems for games/music and software development being easier to manage. On the Linux side, as the title suggests I decided to…

A Year of Journaling and Written Todos

Since January 2020, I&rsquo;ve (for the first time) managed to use my preferred notebook as a daily todo list and (small) journal. I thought I&rsquo;d share my opinions and some of the thoughts I&rsquo;ve had on the subject. It should be no surprise to anyone that I attempt to write physical todo lists wherever possible given my relationship with writing and committing a task or thought to page ,…

Understanding Go Project Structures

A Cheatsheet which I hope to reference until memorized. So I wanted to publish this in attempt to further my own understanding of proper Go project file structures, especially after writing side projects with varying inflexible and incoherent file structures. I will not in any form claim to understand what I&rsquo;m talking about, and instead share this as if it were my own notes in attempts to…

Four Rules for Writing Scripts in Enterprise Environments

What three years working in Enterprise Environments has Taught Me About Scripts Always Provide Confirmation Prompts You&rsquo;ve heard the term fat-fingering, which implies the slip of a key leading to production going down when you accidentally click said button which runs the destory_production.sh script lurking on your desktop terminal. Well, here&rsquo;s a great way to remove such a risk which…

Embracing Terminal-Centric Workflows using Alacritty, Tmux, and Vim

Or, How To Look Like A Hacker at Starbucks I&rsquo;ve long been inspired by the often beautiful -yet vastly nonfunctional- desktop setups found on /r/UnixPorn and other Linux-based forums. Often, starterpacks describe a aesthetic and futuristic configuration to comprise of Arch Linux , i3-gaps , terminal-based interfaces, and Vim . The terminal applications have intrigued me for as long as…

Building A Hardened Docker Image Using Modern Infrastructure Tooling

Hey friend, it&rsquo;s been a while since I last posted here -soon to be four months had I not started writing this article. It&rsquo;s been quite the past few months, but I thought about this subject quite a bit recently as enterprise lessons on design and iteration have prompted me wanting to explore similar practices. What am I exploring -as the title suggests, building Docker images leveraging…

Writing Go Tests for an Alcoholic REST API

func TestHelloWorld(t *testing.T) {} is so well engrained into my muscle memory Continuing on with last week&rsquo;s Athenaeum post, I mentioned that I wanted to explore easily overlooked processes or topics that junior developers don&rsquo;t always have the chance to dive into. The original intent being to allow the project to grow in such a way that it would demonstrate through it&rsquo;s…

Why You Need A Dog's Opinion For Code Review

An introduction to Hound, The Code Review CI Tool and Testing in Golang Conceptualizing Athenaeum James Inkster write up the best description of Athenaeum, which I&rsquo;ll share here. Sharing your favorite books has never been easier. What Athenaeum brings to the table is the ability to login and create a repository of your favorite books, you will be able to share your favorite books with other…

Following The Tomato Timer

My experience with Pomodoro, 9-5 I&rsquo;ve always had terrible luck focusing when not in the office, I believe the cause rooting from the environment itself implying that &ldquo;work gets done&rdquo; here vs at home. With that being said, it&rsquo;s easy to imagine the past eight weeks that I&rsquo;ve been &ldquo;attempting&rdquo; to work from home have been quite difficult. After acknowledging…

Being Apart of the Telescope Open Source Project

I&rsquo;ve probably rewrote aspects of this post three times, let&rsquo;s see how the fourth turns out. Reflecting on Telescope, Version 1.0 David Humphrey&rsquo;s (and Seneca&rsquo;s) open source project, titled Telescope ( for those who&rsquo;ve been living under a rock ) has reached the end of semester milestone goal of 1.0! Along with that, the 1000th issue and pull request was created,…

End-to-End Telescope with Docker, WSL2 and Windows 10

This is a true story of pain and beating the odds. Not for the faint of heart. TLDR at the bottom for those looking for the exact workflow. Nothing Says Spring Cleaning Like Blowing Away Your System! So on April 3rd, I managed to completely blow up my Pop!OS installation beyond repair. I blame Nvidia drivers and permissions, but it&rsquo;s also a reminder to never fix what's not broken . For the…

Why I Got Into Programming

Despite my constant drift to different technologies, operating systems and languages (which, to be fair is rather natural with the given task, ever-changing preferences, etc), I&rsquo;ve found the motivation and drive behind has never changed. So I decided to write about it. I&rsquo;ll warn now, this isn&rsquo;t written in an anthology way and simply is a cluster of thoughts which relate to each…

Adding Stats To Telescope's Banner Component in React

Preface: I have no idea what I&rsquo;m doing, but the best way to learn is through example and imitation. I&rsquo;ve Never Worked With React Before Before crossing over to the cloud engineering title, I was a front-end developer primarily with a hint of full-stack to spice up the mix. At that time, I was working with Angular 2+ / MEAN stacks for both work and Seneca College projects. Later on,…

Determing Average Storage Costs via Azure with Python

Enabling you to say &ldquo;I saved us $3,000 per subscription!&rdquo; with ease. About a month ago, a photographer (and filmmaker in the making) friend approached me about hosting in Azure a copy of his media for safekeeping, and wanted to also understand an average cost over time as they&rsquo;d add more files to the Storage Account. Funnily enough, this is a small application script that I had…

Experiment: Moving to Pop!OS For A Month

Lets See if Ray Can Avoid Starting a Flame War Before The Third Paragraph! The One Year Experiment Around the beginning of 2019, I opted to use Windows 10 as the only operating system on my desktop -an unheard-of choice for those who know me best. My outlook on the challenge could be summed up into the following thought questions and points: Well, I&rsquo;ll finally be able to game with the…

Reduced Container Sizes With Multi-Stage Docker Builds

RUN export context=&ldquo;this&rdquo; In my free time, I&rsquo;ve tried to contribute some of my Docker and development experience to @humphd &rsquo;s Telescope project, a recent contribution that I&rsquo;m proud is helps reduce the space complexity of the production and development images for the overall platform. Before my work, A local Docker container of telescope would weigh ~2GB and comprise…