<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Connor Charles</title><link>https://ccharlesgb.github.io/cc-portfolio/</link><description>Recent content on Connor Charles</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 20 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ccharlesgb.github.io/cc-portfolio/index.xml" rel="self" type="application/rss+xml"/><item><title>Identity stitching in a distributed environment</title><link>https://ccharlesgb.github.io/cc-portfolio/post/identity-stitching/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://ccharlesgb.github.io/cc-portfolio/post/identity-stitching/</guid><description>&lt;p&gt;In this post, I will discuss how we use the identifiers attached to Snowplow events to build a consistent view of a consumer as they move between browsers and devices. The goal is to provide a single identifier for each consumer.&lt;/p&gt;
&lt;h1 id="what-is-identity-stitching"&gt;What is identity stitching?&lt;/h1&gt;
&lt;p&gt;Identity stitching in this context is the process of linking identifiers together from consumer data to build a unified view of each individual. When a consumer interacts with a website or app in Snowplow, the events they generate contain various identifiers such as cookies, mobile device IDs, and, if they are logged in, their account ID. Identity stitching allows us to link these together so that we have a single event timeline and profile for each consumer, even if they use multiple devices or browsers.&lt;/p&gt;</description></item><item><title>Transferring billion row datasets from BiqQuery into Postgres</title><link>https://ccharlesgb.github.io/cc-portfolio/post/transferring-billion-row-datasets-from-bigquery-into-postgres/</link><pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate><guid>https://ccharlesgb.github.io/cc-portfolio/post/transferring-billion-row-datasets-from-bigquery-into-postgres/</guid><description>&lt;p&gt;A common challenge in data engineering is figuring out how to move a large dataset in one structure, format or cloud region and transform it into another without creating a large cloud bill or having to wait a long time for a batch job to complete. At Autotrader, we do a lot of batch processing using &lt;a href="https://www.getdbt.com/"&gt;dbt&lt;/a&gt; and BigQuery. This often results in datasets that we want to then export to operational datastores such as Postgres or Mongo. We then surface these datasets in embedded analytics products, which require the low latency that Postgres and Mongo can deliver.&lt;/p&gt;</description></item><item><title>About Me</title><link>https://ccharlesgb.github.io/cc-portfolio/about/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate><guid>https://ccharlesgb.github.io/cc-portfolio/about/</guid><description>&lt;p&gt;I am Connor Charles, a Technical Lead and Data Engineer with more than 11 years of experience building data-intensive applications, pipelines and machine learning products.&lt;/p&gt;
&lt;p&gt;I started my career as a Data Scientist at an energy company. I spent 5 years there building machine learning models and data pipelines that forecasted retail commodity demand for various European energy portfolios. I then started moving away from machine learning and data science
into a more data and software engineering focussed role.&lt;/p&gt;</description></item><item><title>Contact</title><link>https://ccharlesgb.github.io/cc-portfolio/contact/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate><guid>https://ccharlesgb.github.io/cc-portfolio/contact/</guid><description>&lt;p&gt;The best way to reach me is by email:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Email: &lt;a href="mailto:ccharles.gb@gmail.com"&gt;ccharles.gb@gmail.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Location: Toronto, Canada&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/ccharlesgb"&gt;github.com/ccharlesgb&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Hack Diary: Natural Language Queries of Data Using a Semantic Layer</title><link>https://ccharlesgb.github.io/cc-portfolio/post/natural-language-queries/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate><guid>https://ccharlesgb.github.io/cc-portfolio/post/natural-language-queries/</guid><description>&lt;p&gt;Recently, my team at Autotrader ran a hack on ways to improve the experience of the data platform for our colleagues. The aim of this hack wasn&amp;rsquo;t necessarily to produce production-ready software, but to give the team exposure to AI-based workflows and semantic layers. One of the biggest pain points we have is that we have a &lt;strong&gt;lot&lt;/strong&gt; of data, dashboards and reports and it can be hard to find the right one. Especially in meetings where sometimes someone will ask &amp;ldquo;How many X did we have last week?&amp;rdquo; and then someone might have to step back from the conversation and find the right dashboard by which point the meeting has already moved on.&lt;/p&gt;</description></item><item><title>Welcome!</title><link>https://ccharlesgb.github.io/cc-portfolio/post/welcome/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><guid>https://ccharlesgb.github.io/cc-portfolio/post/welcome/</guid><description>&lt;p&gt;Welcome to my portfolio! I want this site to be a place where I can share my work and side projects outside of the blog posts I have done on the medium &lt;a href="https://medium.com/@ccharles.blog"&gt;blog posts&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>