<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: James Gibbard</title>
    <description>The latest articles on DEV Community by James Gibbard (@jgibbarduk).</description>
    <link>https://dev.to/jgibbarduk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1052886%2F6764effb-5147-4f2d-ac58-f77687b51ae1.jpeg</url>
      <title>DEV Community: James Gibbard</title>
      <link>https://dev.to/jgibbarduk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jgibbarduk"/>
    <language>en</language>
    <item>
      <title>Why I Built Clearminutes: A Privacy-First Meeting Assistant</title>
      <dc:creator>James Gibbard</dc:creator>
      <pubDate>Sat, 04 Apr 2026 21:32:57 +0000</pubDate>
      <link>https://dev.to/jgibbarduk/why-i-built-clearminutes-a-privacy-first-meeting-assistant-3km7</link>
      <guid>https://dev.to/jgibbarduk/why-i-built-clearminutes-a-privacy-first-meeting-assistant-3km7</guid>
      <description>&lt;p&gt;Like many developers, I spend hours in meetings every week. And like many developers, I've tried various meeting transcription tools: Otter.ai, Fireflies, Granola. They all share one thing in common: they send your audio to the cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Cloud Transcription
&lt;/h2&gt;

&lt;p&gt;Every time a meeting bot joins your call, it's recording everything. Your strategy&lt;br&gt;
discussions. Your 1:1s with reports. Your sales calls with prospect data. All of it uploaded to servers you don't control.&lt;/p&gt;

&lt;p&gt;For most meetings, that's probably fine. But what about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Healthcare professionals discussing patient information (HIPAA)&lt;/li&gt;
&lt;li&gt;Lawyers in privileged client conversations&lt;/li&gt;
&lt;li&gt;Financial advisors discussing sensitive portfolio details&lt;/li&gt;
&lt;li&gt;Startup founders in investor meetings with proprietary information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The "just don't use it for sensitive meetings" argument doesn't hold up. You can't always predict which meeting will discuss something sensitive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Local-First
&lt;/h2&gt;

&lt;p&gt;I built Clearminutes with a simple principle: your audio never leaves your machine.&lt;/p&gt;

&lt;p&gt;We use Whisper.cpp running locally on your Mac or Windows PC. The transcription happens entirely on-device, using your GPU (Metal on Mac, CUDA on Windows) or CPU. No cloud services see your audio. Ever.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;You start a recording in Clearminutes&lt;/li&gt;
&lt;li&gt;Audio is captured from your microphone (and optionally system audio)&lt;/li&gt;
&lt;li&gt;Whisper processes it locally on your device&lt;/li&gt;
&lt;li&gt;The transcript and AI summary stay on your machine&lt;/li&gt;
&lt;li&gt;You own everything: no server copies, no training data&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Privacy Advantage
&lt;/h2&gt;

&lt;p&gt;Because processing happens locally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Healthcare professionals can transcribe patient sessions without HIPAA concerns&lt;/li&gt;
&lt;li&gt;Lawyers can use it in privileged conversations&lt;/li&gt;
&lt;li&gt;Anyone can transcribe confidential business meetings&lt;/li&gt;
&lt;li&gt;No internet required: it works offline&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Beyond Privacy: Speed and Cost
&lt;/h2&gt;

&lt;p&gt;Local processing isn't just about privacy. It's also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster: No upload/download latency. Real-time transcription.&lt;/li&gt;
&lt;li&gt;Cheaper: No per-minute fees. No subscription for basic features.&lt;/li&gt;
&lt;li&gt;More accurate: Use the largest Whisper model without cloud costs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Free
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://clearminutes.app" rel="noopener noreferrer"&gt;Clearminutes&lt;/a&gt; is free to try with local transcription using Whisper Small. Download it for Mac or Windows and see what private meeting transcription feels like.&lt;/p&gt;

&lt;p&gt;Your meetings belong to you. Keep them that way.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>privacy</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>MeetUp Overview - Building &amp; Scaling Game Dev in the Cloud</title>
      <dc:creator>James Gibbard</dc:creator>
      <pubDate>Fri, 09 Aug 2024 13:00:12 +0000</pubDate>
      <link>https://dev.to/jgibbarduk/meetup-overview-building-scaling-game-dev-in-the-cloud-4io6</link>
      <guid>https://dev.to/jgibbarduk/meetup-overview-building-scaling-game-dev-in-the-cloud-4io6</guid>
      <description>&lt;p&gt;I recently had the pleasure of presenting at a meet-up where I delved into a topic that's both exciting and challenging: moving AAA game development into the cloud. For those who missed it, I wanted to take this opportunity to share some of the key insights and solutions discussed.&lt;/p&gt;

&lt;p&gt;You can catch the recorded session on YouTube here:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/qKDjQN4tFVs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The Evolution of Game Development
&lt;/h2&gt;

&lt;p&gt;Game development has come a long way from its early days. Today’s AAA games are akin to blockbuster movies, characterised by their massive budgets, global reach, and complex production processes. The development of these high-profile games typically happens in dedicated studios equipped with cutting-edge hardware. These studios invest heavily in powerful gaming PCs, extensive graphics design tools, and vast amounts of storage.&lt;/p&gt;

&lt;p&gt;However, as technology evolves, there’s an increasing push to leverage the cloud for game development. The cloud offers scalability, flexibility, and the potential for significant cost savings. But moving such a complex and resource-intensive process to the cloud presents its own set of challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current State of AAA Game Development
&lt;/h2&gt;

&lt;p&gt;To set the stage, let’s clarify what a AAA game is. AAA games are high-profile, high-budget titles developed by major studios with the expectation of global success. They require extensive localisation, support for multiple platforms (such as Xbox and PlayStation), and involve large teams working on everything from graphics and coding to complex game logic.&lt;/p&gt;

&lt;p&gt;Traditionally, the development of these games occurs in physical studios, where developers use high-spec gaming PCs. These machines come equipped with powerful GPUs, ample RAM, and fast CPUs, necessary to handle the enormous data volumes and intricate processes involved. Game development is often done in silos, with studios working in isolation to create content that eventually gets integrated into the final product. The development cycle is lengthy, sometimes taking years, and involves managing terabytes to petabytes of data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges &amp;amp; Solutions for Cloud-Based Game Development
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Challenge 1 - Handling High Demands of Game Development
&lt;/h3&gt;

&lt;p&gt;The Challenge: Game development requires high-performance, low-latency hardware. Developers, artists, and testers need access to powerful PCs with fast disk speeds, high-end GPUs, and substantial CPU resources. They also need peripherals and controllers to test and interact with the game seamlessly.&lt;/p&gt;

&lt;p&gt;Our Solutions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AWS EC2 GPU-Based Machines: We utilised powerful EC2 instances like G4 and G5, which provide the necessary computing power and graphics capabilities. These instances help deliver a desktop-like experience for game developers and artists working remotely.&lt;/li&gt;
&lt;li&gt;Parsec: This technology enables low-latency remote desktop access by creating a peer-to-peer network between the host PC and the remote machine. Using UDP traffic, it streams data efficiently, minimising latency.&lt;/li&gt;
&lt;li&gt;Architecture Design: We set up a Virtual Private Cloud (VPC) in AWS, with GPU EC2 machines and Parsec High Performance Relay integrated into the architecture. This setup ensures secure and efficient routing of traffic to minimise latency for users across different regions.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Challenge 2 - Data Transfer and Bandwidth
&lt;/h3&gt;

&lt;p&gt;The Challenge: AAA games generate vast amounts of data. Managing this data, providing fast access to shared storage, and dealing with high CPU demands for compilation are crucial. Additionally, accessing physical gaming consoles for remote testing poses a significant challenge.&lt;/p&gt;

&lt;p&gt;Our Solutions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;EC2s &amp;amp; SN DBS: We employed SN DBS technology to allow for distributed compilation by sharing CPU resources across multiple machines. This reduces build times significantly.&lt;/li&gt;
&lt;li&gt;FSx for Cache: AWS FSx provides high-speed, managed storage that can be mounted to EC2 instances. This solution addresses the need for fast data access and cache management.&lt;/li&gt;
&lt;li&gt;Site-to-Site VPN: To integrate with physical studios and consoles, we used a VPN to connect AWS infrastructure with on-premises systems, allowing remote access and testing.&lt;/li&gt;
&lt;li&gt;Global Network Setup: AWS Transit Gateway with inter-region peering was used to create a global network. This setup enabled us to connect distributed development teams and studios effectively.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Challenge 3 - Building the Game
&lt;/h3&gt;

&lt;p&gt;The Challenge: Building a game involves several time-consuming steps, including checking out the source code, compiling the Unreal Engine, cooking data assets, and packaging the game for distribution. Each step requires significant computational power and speed.&lt;/p&gt;

&lt;p&gt;Our Solutions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SN DBS with Autoscaling: We leveraged SN DBS for distributed compilation and autoscaling to dynamically adjust the number of machines based on the workload. This setup ensures efficient resource utilization and cost-effectiveness.&lt;/li&gt;
&lt;li&gt;FSx for Shared Storage: Fast access to storage is critical for game builds. FSx provided high-speed cache and storage solutions to support the compilation and packaging processes.&lt;/li&gt;
&lt;li&gt;TeamCity CI System: We used TeamCity for continuous integration and orchestration of the build process, enabling automated scaling and management of build resources.&lt;/li&gt;
&lt;li&gt;Cost Optimisation: To manage costs effectively, we utilised EBS gp3 volumes with storage-optimised machines. By stripping multiple volumes together, we achieved high IO performance at a lower cost.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Transitioning AAA game development to the cloud is a complex but rewarding endeavour. The benefits include dynamic scaling, global distribution, and overcoming physical limitations of traditional studios. However, challenges such as high data volumes, demanding hardware requirements, and the need for physical console access remain significant hurdles.&lt;/p&gt;

&lt;p&gt;Our approach involved a combination of advanced AWS technologies, strategic architectural design, and careful cost management to address these challenges. The result is a scalable, efficient cloud-based game development environment that can support multiple teams and global distribution.&lt;/p&gt;

&lt;p&gt;For those interested in exploring cloud-based game development or discussing these solutions further, feel free to reach out. I’m always happy to share more insights and experiences.&lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Currency Converter using Python 🐍 &amp; Steamlit</title>
      <dc:creator>James Gibbard</dc:creator>
      <pubDate>Fri, 09 Aug 2024 09:02:58 +0000</pubDate>
      <link>https://dev.to/jgibbarduk/currency-converter-using-python-steamlit-43ge</link>
      <guid>https://dev.to/jgibbarduk/currency-converter-using-python-steamlit-43ge</guid>
      <description>&lt;p&gt;Recently had reason to create a little currency converter app. I decided to do it it Python as I've not had the chance to use the language for a while.&lt;/p&gt;

&lt;p&gt;I didn’t want to have to build a whole UI or access a fully blown db as it was just overkill.&lt;/p&gt;

&lt;p&gt;After some research I decided on the following tech stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.10&lt;/li&gt;
&lt;li&gt;Poetry - for dependency management&lt;/li&gt;
&lt;li&gt;Streamlit - for the UI framework&lt;/li&gt;
&lt;li&gt;CVS &amp;amp; Pandas - for data storage&lt;/li&gt;
&lt;li&gt;APILayer.io - for the currency convert API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I certainly had fun solving this little challenge.&lt;/p&gt;

&lt;p&gt;Decided to spit the code architecture into sections to keep things neat and tidy.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;.&lt;br&gt;
└── currency-converter/&lt;br&gt;
    ├── api.py -- remote api cal related functions&lt;br&gt;
    ├── audit_log.py -- read/write from audit log&lt;br&gt;
    ├── common.py -- common lists, etc&lt;br&gt;
    └── currency_converter.py -- main python file&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;There is a live demo of the app available here: &lt;a href="https://jgibbarduk-currency-converter-currency-converter-v6ohj8.streamlit.app" rel="noopener noreferrer"&gt;https://jgibbarduk-currency-converter-currency-converter-v6ohj8.streamlit.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the source here: &lt;a href="https://github.com/jgibbarduk/currency-converter" rel="noopener noreferrer"&gt;https://github.com/jgibbarduk/currency-converter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you like the tech stack used or you have some suggestions, let me know in the comments.&lt;/p&gt;

</description>
      <category>python</category>
      <category>streamlit</category>
    </item>
  </channel>
</rss>
