Posts

A New Collection of Thoughtful Learning Apps — Now Available on iOS & Android

Image
I’m excited to share a set of mobile apps I’ve recently completed and published on both the Google Play Store and the Apple App Store. These apps are designed with a simple goal in mind: to make meaningful, structured content more accessible, whether you’re studying theology or improving your English vocabulary. 📱 Now Available on Both Platforms All apps are live and available for download: Google Play Developer Page: https://play.google.com/store/apps/dev?id=5835943159853189043 Apple App Store Developer Page: https://apps.apple.com/ca/developer/q-z-l-corp/id1888794100 📖 Theology & Confession Study Apps For those interested in Reformed theology and classical Christian teachings, I’ve developed a series of apps that present foundational texts in a clean, focused reading format: The Belgic Confession Canons of Dort Heidelberg Catechism Westminster Shorter Catechism Each app is designed to provide a distraction-free experience, making it easier to read, reflect, and revisit these im...

Why Your GitHub PR Checks Get Stuck Forever and The Fix

Image
Why Your GitHub PR Checks Get Stuck Forever and The Fix TL;DR If you open a pull request against one branch (for example, develop ) and later retarget it to another branch that has GitHub rulesets requiring specific workflows (for example, main ), the newly required checks can become stuck showing: Expected — Waiting for workflow to run Not queued . Not in progress . Just permanently stuck, with no workflow run ever created for that check. The fix is simple: push a new commit (even an empty commit) . However, understanding why this happens can save a lot of debugging time. The Setup We use an organization-level GitHub ruleset to enforce that certain workflows must run and pass before a PR can be merged into protected branches. Example: target: branch conditions: ref_name: include: - "~DEFAULT_BRANCH" rules: - type: workflows parameters: workflows: - repository_id: <container-build-repo-id> path: .github/workflows/ruleset_build.yaml ref: refs/tags/v1 The reusable wor...

Building a GitHub Copilot Skill for Spring Boot Modernization at Scale

Image
Building a GitHub Copilot Skill for Spring Boot Modernization at Scale What starts as a simple prompt for one application quickly becomes an engineering process problem at scale. This post shares the design principles behind a reusable GitHub Copilot skill that standardized Spring Boot upgrades across dozens of services while reducing manual effort and review overhead. The Real Challenge of Framework Modernization Upgrading a single Spring Boot application is usually straightforward. An experienced engineer can handcraft a prompt, point GitHub Copilot at a repository, review a few changes, and work through the upgrade. The challenge isn't upgrading one application. The challenge is upgrading the next ten, twenty, or forty applications with the same level of quality, consistency, and safety. That is where a reusable GitHub Copilot Skill becomes valuable. Rather than relying on engineers to repeatedly write the "perfect upgrade prompt," a skill encodes the entire moderniza...

2026 September 6th - Afternoon Sermon Reflection: Seeing Christ in All of Scripture

Image
One of the things I sometimes struggle with when reading the Bible is feeling a little lost. It can feel like the first day of school. You open the textbook, look at the material, and wonder, “Where do I start? What is this really about?” Some parts of the Bible are especially difficult. We read the prophets, or some of Paul’s letters, and we know there is something important there, but we are not always sure how everything fits together. This sermon reminded me of a simple but very important truth: The Bible is about Jesus Christ. Lord’s Day 6 asks who the mediator is who is both truly God and truly righteous man. The answer is our Lord Jesus Christ. He came to bear the burden of God’s wrath in His human nature and, through His divine nature, to accomplish what we could never accomplish ourselves. That is the gospel revealed throughout Scripture. From the beginning, God promised a Saviour. The sacrifices and ceremonies of the Old Testament pointed forward to Christ. The prophets spoke...

2026 September 6th - Morning Sermon Reflection : The School of Christ

Image
  This Sunday’s sermon from Proverbs 8 gave me a helpful way to think about wisdom, learning, and how we live in God’s world. The sermon’s main theme was simple: To get wisdom, you must go to the school of Christ. When we think of wisdom, we often think about being intelligent or having a lot of knowledge. But biblical wisdom is more practical. Wisdom is the skill of living rightly in God’s world. We may know many things, but knowing how to live faithfully before God is something we need to learn. Proverbs reminds us that we are not naturally wise. We need instruction. We need someone to teach us. The sermon described two “schools” presented in Proverbs: the school of Wisdom and the school of Folly. Every day, we are being taught by something. The question is: Who are we listening to? Who is shaping our minds, desires, and decisions? What especially stood out to me was the connection between Wisdom and Christ. The New Testament tells us that Christ is the wisdom of God. In Him are...

2026 August 30th - Afternoon Sermon Reflection: Christ in You, the Hope of Glory

Image
One illustration from this sermon stayed with me: the difference between a pilot and a paratrooper . When we travel by airplane, passengers can easily become anxious. We sit in our small seats, looking out the window, wondering what is happening. Is the flight delayed? Will the weather affect us? Why is there turbulence? But the pilot has a different perspective. He knows much more about what is happening. He can see the bigger picture and has information that the passengers do not have. The Apostle Paul also had this kind of perspective. Earlier in Colossians 1, he reminds us of the greatness of Jesus Christ. Christ is before all things. All things were created through Him and for Him. In Him all things hold together. Christ is Lord over everything. Paul also understood the reality of this fallen world. He knew that human beings were once "alienated and hostile in mind, doing evil deeds" (Colossians 1:21). He was not surprised by sin, suffering, rejection, or opposition. ...

2026 August 30th - Morning Sermon Reflection: Well Done, Good and Faithful Servant

Image
This Sunday, I was reminded again of Jesus' Parable of the Talents in Matthew 25:14–30. The parable takes place as Jesus prepares His disciples for His departure and for His eventual return. The message is clear: Jesus is coming back. We do not know exactly when. Therefore, we must be ready. But this parable also teaches us something very practical: How should we live while we wait? The answer is found in the Master's words to His faithful servants: “Well done, good and faithful servant.” Everything We Have Belongs to the Master In the parable, a master goes on a journey and entrusts his property to his servants. One receives five talents, another two, and another one. A talent was a very large amount of money. Even the servant who received only one talent received something extremely valuable. This is important. Sometimes we look at other people and think: They are more gifted than I am. They have more opportunities. They can do more for God's kingdom. Perhaps that is tru...

2026 August 23rd - Afternoon Sermon Reflection:Paid in Full: When Our Debt Could Never Be Paid

Image
  Paid in Full: When Our Debt Could Never Be Paid There are some moments in life when justice and mercy seem to stand on opposite sides of the courtroom. In 1780, George Washington faced one of those moments. During the American War of Independence, a young British officer named John André was captured behind American lines. He had been wearing civilian clothes and carrying maps and other incriminating documents. He was guilty, and Washington had the responsibility of signing his death warrant. It was a painful responsibility. Washington reportedly carried out his duty with great reluctance. Justice demanded a sentence, even though he took no pleasure in carrying it out. That story gives us a small glimpse into the problem we face before God. The Problem: We Are Guilty The Heidelberg Catechism begins its section on deliverance by asking how we can be delivered from God's just judgment. That question is important because we often think about salvation in terms of the things Jesus sa...