Welcome to my corner of the internet.

I am the co-founder and CEO of Powerweave, working relentlessly to bring local electricity market technology to North America. I also have a Ph.D. in ultrafast condensed matter physics. Here you can find more about what I do, my side projects, and what I think about.

If you were looking to read more specifically about my scientific research, you can do so on the Siwick research group page.

Recent posts

Starting a new adventure with Powerweave

I started a business, Powerweave. In this post, I explain what Powerweave is and why it is important to me.

Posted on 2024-06-05. Last updated on 2024-06-06.

Trading strategies with typed features using Haskell and type families

In this blog post, I show you the basics of defining typed features in trading strategies using Haskell.

Posted on 2024-02-04. Last updated on 2024-02-14.

The algebraic structure of a trading stop-loss system

I'm building a trading stop-loss system, and I have discovered that it forms a neat algebraic structure.

Posted on 2023-05-07.

Efficient rolling statistics

This post shows how to design efficient rolling statistics routine based on recurrence relations, as well as implementations in Haskell.

Posted on 2023-03-23. Last updated on 2023-07-17.

Filtering noise with discrete wavelet transforms

Data is often noisy, containing a meaningful signal component as well as undesired perturbations. Many filtering techniques can be used to filter away noise. In this post, we'll see how to use discrete wavelet transforms to de-noise data.

Posted on 2022-11-23. Last updated on 2024-06-05.

Chesterton's fence and why I'm not sold on the blockchain

Chesterton's fence is a principle which says that we should understand why things are the way, before we try to push for change. Cryptocurrencies based on the blockchain haven't demonstrated that they understand the reason for centralization of the current payment networks.

Posted on 2022-08-02.

Exploring the multiverse of possibilities all at once using monads

I'm working on a global optimization problem, trying to reduce the size of the solution set as much as possible. In this post, I'll show you how to build computations involving choices, such that we traverse the multiverse of possibilities all at once. This post gives an intuition behind the list monad in Haskell.

Posted on 2022-03-02. Last updated on 2023-03-30.

Can you make heterogeneous lists in Haskell? Sure — as long as your intent is clear

Haskell's type system might seem restrictive sometimes. For example, heterogeneous lists are not allowed. In this post, I show how to build heterogenous collections using existential quantification -- which requires us to be explicit about our intent.

Posted on 2021-09-26. Last updated on 2022-07-06.

In defence of the PhD prelim exam

The department of Physics at McGill University still requires PhD students to pass the old-school prelim exam. That may change in the near future. Here's why I think we should keep it.

Posted on 2021-06-12. Last updated on 2024-02-29.

Harnessing symmetry to find the center of a diffraction pattern

Diffraction patterns are very symmetric; how hard can it be to find its center?

Posted on 2021-01-23. Last updated on 2024-06-20.

…or you can find more in the archives.