Using and testing Vapor Queues

When you’re working on a backend application, you want your response time to be as low as possible, which is complicated when the server has to interact with third party services to send emails, process files and so on. Vapor provides a library that allows you to move this work out of the request’s critical path by dispatching jobs into queues and processing them in the background. Let’s see how to integrate it into a simple project and what are our options for testing.

Continue reading

Adding A Form Inside Another Form In HTML

I recently shipped a new feature on Comics Outmash called “polls”. Each month or so, the admin can open a new “poll period” where people can suggest a title they’d like to read next. Once there has been enough suggestions, the admin flips a switch and the users can vote on the titles they’re interested in reading. Unsurprinsingly, the title with the most votes wins. As part of this feature, I went through a tiny rabbit hole of at least 4 internet searches and discovered that it’s not possible to add an HTML form inside another. Or, is it?

Continue reading

I’m looking for a job as a software engineer

Stunning view of Vancouver, Canada from an elevated vantage point. The foreground features evergreen trees, while the middle ground showcases the city's skyline with its numerous skyscrapers and high-rise buildings clustered near the waterfront. A large suspension bridge, likely the Lions Gate Bridge, connects the mainland to a forested peninsula. The scene is framed by the expansive waters of Vancouver Harbor and English Bay, with distant mountains visible on the horizon under a partly cloudy blue sky.

A few months ago, I announced that I’d decided to leave my position as a software engineer at Apple. After 7 years working on various projects, like Xcode Cloud and that cool hang detection indicator for iOS 16, I felt it was time for me to move on, not without giving myself a few months to rest and hang out with visiting family first. Now, I’m ready to start working again, so I’ve started looking for a position as a senior/staff backend software engineer.

Continue reading

Using Kotlin to build Comics Outmash

The Kotlin logo (a cat-like figure with a head shaped like a rotated uppercase K) wearing a super-hero mask and standing talk on top of a building. In the background is the moon and a bunch of tall buildings.

In 2022, a colleague of mine asked if I’d be able to help write a Swift on server demo for a WWDC session. At the time, I remember answering to their Slack message with something like “if you cut me I will bleed Swift on server” which, at the time, was probably true. Knowing this, and if you know me at all, you might have been slightly surprised when I mentioned that I decided to use Kotlin for the Comics Outmash project.

Continue reading

Colorful updates

This image shows a serene coastal scene with two tall, stylized sculptures resembling sail-like structures placed on a rocky shoreline. The sculptures feature bold, abstract designs in shades of white and red. Behind them, calm waters stretch toward a mountainous landscape partially obscured by low-hanging clouds. The overall atmosphere is tranquil, with muted colors from the overcast sky enhancing the peacefulness of the natural setting.

I have used the same theme for this blog for the past few years and it was due for a refresh. While I have gotten pretty good at fighting urges to move to a different platforms, I spent Saturday in cloudy Squamish adding a dash of colour here and there, as well as some new pages.

Continue reading