The site for the calculator: https://minghz.github.io/canpension/
Canada offers Old Age Security (OAS) for Canadian residents over the age of 65. For those that qualify for this monthly payment, an additional monthly payment called the Guaranteed Income Supplement (GIS) may also apply.
Its hard to determine the actual amounts receivable for OAS and GIS using the available official sources. These sources are also not transparent over how the amounts are calculated. As a result, it prompted me to build an online “calculator” that should make the process simpler.
This write-up summarizes the process and discoveries I’ve encountered when building this calculator.
It has been exactly 6 months since my first post related to WFH during quarantine. I wanted to take a look back and reflect on which of my perspectives changed over the last 6 months.
In my previous post, my stance on focus was that it had improved with the removal of proximal co-workers and their potential to create distractions.
Now, I don’t feel a big difference in the quality of my focus on a day-to-day basis anymore. …
Focusing too much on the target makes hitting it less likely.
It was one of the strangest but most powerful lessons I learned during my archery practice. I shot Olympic Recurve for a period of about 2 years. I’m by no means a professional, but a key lesson stuck with me, and I often reflect on how that also applied to my life.
It is a strange phenomenon. While aiming at the target, if I were to concentrate solely on lining up my sight at the target, I was overall less likely to get accurate shots. …
This is a lighthearted write-up of my experiences learning Elixir coming from a Ruby background.
It all began early last year. A co-worker was talking about this programming language called Elixir, and a bunch of cool things it did .
I had never heard of it, but it sounded very exciting so I decided to read up. I was eventually lead down a learning adventure over the past year.
It has been my introduction to the Functional Programming paradigm. It taught me to think about code in a different way, and expand my understanding about programming.
I have always preferred…
First and foremost, this was a learning experiment — probably not something I would do on a production-level app given what I learned.
I was trying to create an API endpoint for serving Dungeons & Dragons (D&D) items data. My data would come from an existing JSON file.
I wanted to use the Phoenix framework to learn functional programming. My data would be read-only, but it had an irregular shape. Because of that I thought it would be best to use a NoSQL data store so to circumvent the complications of designing the schema for a relational database over a…
My repo where I keep my configs: https://github.com/minghz/vim-customization. This is the commit hash at the time of writing:
In my very first job as a young-grasshopper-intern (I think around 2011), I was given a Windows computer and spent most of my time VNC’ing and SSH’ing between Linux virtual machines.
gVIM became my go-to at the time because it was the only decent text editor with a GUI that was…
As a Software Engineer, I’m fortunate to have the option to work from home. My daily work doesn’t require a lot of interactions with other people, and when the need arises, there is always remote conferencing solutions like Zoom, Slack calls, and such.
For the past month since we closed the office, I have noticed a few changes to my daily work life. I would like to share some of my reflections on that.
As our application became more complex, we needed to expand beyond the default MVC model that Rails offers out of the box. Existing software architecture patterns are a great resource that would help in identifying the best strategy for the need. One of such patterns is called the DTO, or Data Transfer Object.
In this short excerpt I will be summarizing what a DTO is, as well as providing 3 examples of the DTO pattern written in Ruby. The reference to these notes are from Martin Fowler’s Patterns of Enterprise Application Architecture.
In summary, it is an object whose sole…
Somewhere in the middle of 2019, I transitioned from Senior Software Engineer to Tech Lead. I became accountable for a complex software system and also the work of half-a-dozen people working within it.
The bulk of my time was now no longer spent writing code. Instead, I spent my efforts in delegating work, coordinating with other teams, and mentoring the Engineers in my team.
Some of that work took the form of reviewing Pull-Requests (PRs) instead of writing them. Here are 15 things I learned about PR reviews.
Look for fundamental flaws as opposed to small things. Do you understand…
When I switched from Rspec to MiniTest I immediately noticed an unnerving lack of features from MiniTest when building complex test scenarios. Here is a simple guide to mold your MiniTest framework to “quack” a little more like RSpec.
I have provided examples for both vanilla
MiniTest as well as with Rails’s
ActiveSupport::TestCase that by default uses
MiniTest in the background.
One of the things I really appreciated with RSpec was how legible the DSL was. It abstracted class definitions, methods and assertions to make it read more like English rather than code.
When I moved over to MiniTest, I…
Software Engineer. Using this platform to share knowledge on software, and reflections in life.