<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>tech on Puzzmo Blog</title>
    <link>/tags/tech/</link>
    <description>Recent content in tech on Puzzmo Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 14 Dec 2025 12:00:22 +0000</lastBuildDate><atom:link href="/tags/tech/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>9 Months of Claude</title>
      <link>/posts/2025/12/14/six-months-of-claude/</link>
      <pubDate>Sun, 14 Dec 2025 12:00:22 +0000</pubDate>
      
      <guid>/posts/2025/12/14/six-months-of-claude/</guid>
      <description>I try to commit to things. My relationship with the craft of programming is significantly more intense than most of people I have worked with in my career. This isn&amp;rsquo;t a slight to others, a more diverse set of interests makes for more well-rounded people and there&amp;rsquo;s a lot of things to do as a human in a lifetime! My commitment to the craft comes with a cost - I am extremely wary of adding dependents and taking on responsibilies which do not give me maximal time and space to further the work on my craft.</description>
    </item>
    
    <item>
      <title>Puzzmo Tech Stack: 2025</title>
      <link>/posts/2025/12/9/tech-2025/</link>
      <pubDate>Tue, 09 Dec 2025 00:11:39 +0000</pubDate>
      
      <guid>/posts/2025/12/9/tech-2025/</guid>
      <description>It&amp;rsquo;s just over two years since Puzzmo&amp;rsquo;s launch, which means its time to continue my tradition of talking through the technical changes under the hood!
I was a very early GitHub user, signing up in the first 50k users in 2009, and for the first few years the interface and platform was changing very drastically as a user. Then in 2012, GitHub took venture capital and changes to the daily experience of being a GitHub user effectively stopped.</description>
    </item>
    
    <item>
      <title>6 Weeks of Claude Code</title>
      <link>/posts/2025/07/30/six-weeks-of-claude-code/</link>
      <pubDate>Wed, 30 Jul 2025 00:53:23 +0100</pubDate>
      
      <guid>/posts/2025/07/30/six-weeks-of-claude-code/</guid>
      <description>It is wild to think that it has been only a handful of weeks.
Claude Code has considerably changed my relationship to writing and maintaining code at scale. I still write code at the same level of quality, but I feel like I have a new freedom of expression which is hard to fully articulate.
Claude Code has decoupled myself from writing every line of code, I still consider myself fully responsible for everything I ship to Puzzmo, but the ability to instantly create a whole scene instead of going line by line, word by word is incredibly powerful.</description>
    </item>
    
    <item>
      <title>Offline in Progress</title>
      <link>/posts/2025/06/08/offline-wip/</link>
      <pubDate>Sun, 08 Jun 2025 01:13:00 +0100</pubDate>
      
      <guid>/posts/2025/06/08/offline-wip/</guid>
      <description>For both Zach and I, working offline was one of the core tenets of &amp;ldquo;being an app&amp;rdquo;. So, perhaps the majority of the four months I worked on the app was within this space.
There is no such thing as just &amp;ldquo;add offline mode&amp;rdquo; though, its like a tonne of small systems that all together interlock to get you a tight experience when you&amp;rsquo;re on the subway and/or off wifi. It&amp;rsquo;s really something that needs to be thought of from the get-go and constantly kept up to date.</description>
    </item>
    
    <item>
      <title>On Coding with Claude</title>
      <link>/posts/2025/06/07/orta-on-claude/</link>
      <pubDate>Sat, 07 Jun 2025 06:26:14 +0100</pubDate>
      
      <guid>/posts/2025/06/07/orta-on-claude/</guid>
      <description>Alright, that&amp;rsquo;s a very straight faced title. Might force more folks to read the contents.
When I was planning on leaving working on TypeScript full-time, I looked around for a few interesting places to work in Microsoft/GitHub instead of founding Puzzmo with Zach. One of the teams I had interacted with a bit during my time at Microsoft was the GitHub Copilot team, they had just finished up LiveShare and were really starting to see some interesting results in the auto-complete space.</description>
    </item>
    
    <item>
      <title>Shipping the iOS App</title>
      <link>/posts/2025/06/01/ios-app-architecture/</link>
      <pubDate>Sun, 01 Jun 2025 10:00:38 +0100</pubDate>
      
      <guid>/posts/2025/06/01/ios-app-architecture/</guid>
      <description>Well, &amp;ldquo;finally&amp;rdquo; we got a Puzzmo iOS App. From day 1, I had been anticipating needing to build a native app for Puzzmo eventually, in part because of Zach&amp;rsquo;s rich history of shipping iOS games but also when you tell someone you make games one of the first questions they ask is &amp;ldquo;do you have an app?&amp;rdquo;.
My theory on blogging has always been write what I wish I had read at the start of a project.</description>
    </item>
    
    <item>
      <title>Introducing: Clue Glossary Popovers</title>
      <link>/posts/2025/05/24/clue-glossaries/</link>
      <pubDate>Sat, 24 May 2025 16:16:03 +0100</pubDate>
      
      <guid>/posts/2025/05/24/clue-glossaries/</guid>
      <description>This is kinda an off year for working on the parts of puzzmo.com which users see for me, followers of Puzzmo in the discord might note that Saman and Lilith have been the vanguard on the big, now shipped, re-design effort focusing on the navigation, today page and the play game page.
Me? I was working on the iOS app, which is mostly invisible work but my main focus is ole&amp;rsquo; bizdev.</description>
    </item>
    
    <item>
      <title>Puzzmo Perf Wins</title>
      <link>/posts/2025/02/06/digging-into-perf/</link>
      <pubDate>Thu, 06 Feb 2025 02:29:23 +0000</pubDate>
      
      <guid>/posts/2025/02/06/digging-into-perf/</guid>
      <description>Like many companies, we schedule by quarters. So far, we&amp;rsquo;ve had a tick-tock strategy of a game launch with a lot of application and API infrastructure and one with less, this gives us a chance to release some big changes and then refine and try apply it to the back catalogue.
For 2025, we broke this pattern for Q1 because of three major factors:
I agreed to focus almost solely on writing an iOS app for Puzzmo Saman, who normally heads up our game efforts felt like it was time to take a serious look at design of puzzmo.</description>
    </item>
    
    <item>
      <title>Settling in to a monorepo</title>
      <link>/posts/2025/01/22/turborepo/</link>
      <pubDate>Wed, 22 Jan 2025 12:58:51 +0000</pubDate>
      
      <guid>/posts/2025/01/22/turborepo/</guid>
      <description>One of my goals with blogging for the last decade has been to write the blog post I wish I had had. So, with Puzzmo now migrated to two monorepos (&amp;ldquo;app&amp;rdquo; and &amp;ldquo;games&amp;rdquo;) I&amp;rsquo;d like to go through the process of setting up a monorepo and a few of the interesting trade-offs we&amp;rsquo;ve made now it&amp;rsquo;s fully settled. This post includes all the config files which makes our monorepo work and a bit of a narrative about how they came together.</description>
    </item>
    
    <item>
      <title>Puzzmo Tech Stack: 2024</title>
      <link>/posts/2024/10/30/tech-stack/</link>
      <pubDate>Wed, 30 Oct 2024 11:01:48 +0000</pubDate>
      
      <guid>/posts/2024/10/30/tech-stack/</guid>
      <description>We&amp;rsquo;re just over a year since Puzzmo was launched to the public, and it&amp;rsquo;s time to pull out an old Artsy tradition: writing up some of our technical choices for the year.
This builds on the prior &amp;ldquo;what did we launch&amp;rdquo; blog post, but with a significant slant towards the tech powering instead of user-facing features.
Team wise, today, we have two engineers solely focused on the games (and occasionally touching the front-end of the app), an engineer focused on the API and then me, who will do a bit of everything.</description>
    </item>
    
    <item>
      <title>Making the launch: How we handled releasing Pile-Up Poker</title>
      <link>/posts/2024/09/19/plugins-are-back-in-style/</link>
      <pubDate>Thu, 19 Sep 2024 00:56:14 +0100</pubDate>
      
      <guid>/posts/2024/09/19/plugins-are-back-in-style/</guid>
      <description>Aspects of the launch When we were spec&amp;rsquo;ing out what the Pile-Up Poker launch would look like, it was a pretty overwhelming list:
A new, fully polished, game A &amp;ldquo;pro&amp;rdquo; version of the game A &amp;ldquo;series&amp;rdquo; infrastructure for games to account for many plays of one game per day A &amp;ldquo;go to next game&amp;rdquo; recommendation system A system for each player having a unique puzzle An early-access system for press A new system for marking games the next day as being &amp;ldquo;Fantasyland&amp;rdquo; Custom event hooks into the completion screen Custom event &amp;ldquo;secret leaderboards&amp;rdquo; Custom event leaderboards (&amp;ldquo;most contributions to pot&amp;rdquo; for example) The winnings being based on multipliers (which we can control and use to tweak timings) A community &amp;ldquo;pool&amp;rdquo; of winnings A set of unlockables based on the pool of winnings A new tutorial system for games A new side-quest system Revised club infrastructure Free 2 week trials The ability for a lifetime account to bought The Shopify integration for product discounts covered in this post A game early-unlock system based on a notable Avatar sets unlocked based on notables App / Game unlockables based on the community pool Then we shipped it, roughly two months after launch (June 10th) and only a few things from our original list were cut, and a few were added (club leaderboards, side quests, tutorials.</description>
    </item>
    
    <item>
      <title>Augmenting Puzzmo: Making weird possible</title>
      <link>/posts/2024/07/16/augmentations/</link>
      <pubDate>Tue, 16 Jul 2024 01:25:53 +0100</pubDate>
      
      <guid>/posts/2024/07/16/augmentations/</guid>
      <description>After we launched Puzzmo, there was this moment of &amp;ldquo;well&amp;hellip; what now?&amp;rdquo;. Zach and I had such a complete vision of what we wanted to build for v1 from the idea phase 3 years ago. We even got a bit of extra time for polish pass due to wanting the acquisition to happen before launch, so to a reasonable extent, we had a solid version 1 we were proud of. We&amp;rsquo;d never really talked about version 2 in concrete though, and on top of that, our team had just tripled in the last month.</description>
    </item>
    
    <item>
      <title>Using Shiki Syntax Highlighting in Hugo</title>
      <link>/posts/2024/06/23/shiki-hugo/</link>
      <pubDate>Sun, 23 Jun 2024 14:59:00 +0100</pubDate>
      
      <guid>/posts/2024/06/23/shiki-hugo/</guid>
      <description>When I decided on Hugo for this blog, I knew I was gonna have to take a hit on something I felt was very important to me and my writing: fancy tools for syntax highlighting.
I choose Hugo because it should be super easy for folks to contribute (no fancy Node tooling setup etc) - so I have Shiki being applied as an optional post build step.
First up, we need to disable the current syntax highlighting for codefences by editing hugo.</description>
    </item>
    
    <item>
      <title>Typing Schema-first GraphQL Resolvers in TypeScript</title>
      <link>/posts/2024/06/20/sdl-codegen/</link>
      <pubDate>Thu, 20 Jun 2024 14:18:32 +0100</pubDate>
      
      <guid>/posts/2024/06/20/sdl-codegen/</guid>
      <description>It was 8 years ago when I made my first change to a GraphQL API. My next, real schema change came along a bit later and looked like this:
name: { type: GraphQLString, }, + description: { + type: GraphQLString, + }, image: Image, artists: { type: new GraphQLList(Artist.type), We&amp;rsquo;re talking about the early days of GraphQL, and may even have pre-dated the Schema Definition Language (SDL) being in the spec.</description>
    </item>
    
    <item>
      <title>Making a shopify shop with per-user discounts</title>
      <link>/posts/2024/06/17/shopify-integration/</link>
      <pubDate>Mon, 17 Jun 2024 12:34:31 +0100</pubDate>
      
      <guid>/posts/2024/06/17/shopify-integration/</guid>
      <description>With the launch of Pile-Up Poker we knew that we wanted to sell a pack of cards. Systemically thinking, this meant a few requirements for what it would mean to buy a physical item from us:
We want admins to handle inventory We want to work with third party fulfillment tools We want people who sign up during the launch period to get the cards for free We want folks who had already signed up, to get it for a reasonable price Folks who don&amp;rsquo;t want a Puzzmo subscription could have a route to getting the cards There was a strong recommendation from the business side to use Shopify, and we didn&amp;rsquo;t have any argument against it on the technical side!</description>
    </item>
    
    <item>
      <title>Puzzmo v1 Launch Tech deep-dive</title>
      <link>/posts/2024/04/17/v1-launch/</link>
      <pubDate>Tue, 16 Apr 2024 12:56:32 +0000</pubDate>
      
      <guid>/posts/2024/04/17/v1-launch/</guid>
      <description>This blog post is trying to do a lot, I want to look back at the initial version of Puzzmo we shipped back in November and talk through what we built. It&amp;rsquo;s a very long read, and sometimes doesn&amp;rsquo;t flow too naturally - but it&amp;rsquo;s comprehensive and a very useful reference for noting a little slice of time when Puzzmo&amp;rsquo;s users were in the hundreds.
I&amp;rsquo;m mainly going to be concentrating on &amp;ldquo;Puzzmo&amp;rdquo; the system, e.</description>
    </item>
    
    <item>
      <title>How the Puzzmo API handles integrations on a per-game basis</title>
      <link>/posts/2024/03/28/an-ode-to-game-plugins/</link>
      <pubDate>Mon, 08 Apr 2024 12:00:32 +0000</pubDate>
      
      <guid>/posts/2024/03/28/an-ode-to-game-plugins/</guid>
      <description>Control At heart, programming is the art of deciding which systems interact with each other and where decision making happens.
This tension became very apparent as we started to first build out the leaderboard systems for Puzzmo. At the beginning, decision&amp;rsquo;s around control were easy as there was only 2 leaderboards for each game. The API would provide these two leaderboards for every game at the place where we kept the rest of the leaderboard infra.</description>
    </item>
    
  </channel>
</rss>
