diff --git a/sessions/contributing-to-gerrit.md b/lightning-talks/contributing-to-gerrit.md
similarity index 89%
rename from sessions/contributing-to-gerrit.md
rename to lightning-talks/contributing-to-gerrit.md
index bb23b97..87ab34c 100644
--- a/sessions/contributing-to-gerrit.md
+++ b/lightning-talks/contributing-to-gerrit.md
@@ -7,4 +7,4 @@
 aspects, including the vibrant community and the impact of collaborative
 development.
 
-*[Antonio Barone](../speakers.md#abarone)*
\ No newline at end of file
+*[Antonio Barone, GerritForge](../speakers.md#abarone)*
\ No newline at end of file
diff --git a/schedule.md b/schedule.md
index 4e707ce..86fa498 100644
--- a/schedule.md
+++ b/schedule.md
@@ -18,11 +18,13 @@
 | -------- | ---------------------------------------------------------------------------------------------------------------- |
 | 10:00    | Registration & breakfast                                                                                         |
 | 11:00    | [Welcome to the Gerrit User Summit 2025](lightning-talks/welcome.md)                                             |
-| 11:15    | [Harnessing the power of AI in the Gerrit Code Review process](sessions/harnessing-ai-in-code-review.md)         |
+| 11:15    | [The reftable backend: What it is, where it's headed, and why should you care?](sessions/reftable-backend.md)    |
+| 11:45    | [JGit reftable in Gerrit: past, present and future adoption](sessions/reftable.md)                               |
 | 12:10    | [How to do code review like a pro (15 mins)](lightning-talks/how-to-code-review.md)                              |
 | 12:40    | Lunch & Networking                                                                                               |
 | 14:10    | [Characterizing the Prevalence, Distribution, and Duration of Stale Reviewer Recommendations](sessions/characterizing-stale-reviewer-recommendations.md) |
-| 15:00    | [Contributing to Gerrit: challenges and rewards of Open Source development](sessions/contributing-to-gerrit.md). |
+| 15:00    | [GitButler](sessions/gitbutler.md)                                                                               |
+| 15:30    | [Contributing to Gerrit: challenges and rewards of Open Source development](sessions/contributing-to-gerrit.md)  |
 | 15:45    | Break                                                                                                            |
 | 16:00    | Q&A with the maintainers                                                                                         |
 | 16:45    | [Scaling Gerrit: JVM Tuning, Upgrades, and Architecture Enhancements from the SRE Perspective](sessions/scaling-gerrit.md)|
@@ -34,14 +36,13 @@
 | -------- | ----------------------------------------------------------------------------------------------------------------- |
 | 10:00    | Registration & breakfast                                                                                          |
 | 11:00    | [Pushing Git repos over the speed limit](sessions/pushing-git-over-the-limit.md)                                  |
-| 11:45    | [What's new on Gerrit v3.13](sessions/whats-new-3.13.md)                                                          |
+| 11:30    | [Everything Counts in Large Amounts](sessions/everything-counts-in-large-amounts.md)                              |
+| 12:00    | [What's new on Gerrit v3.13](sessions/whats-new-3.13.md)                                                          |
 | 12:40    | Lunch & Networking                                                                                                |
-| 14:10    | [Hands-On Workshop: Building Custom Plugins for Gerrit](sessions/workshop-building-custom-plugins.md)             |
-| 14:45    | [git-toprepo - Monorepo when your company won't let you](sessions/git-toprepo.md)                                 |
-| 15:15    | Break                                                                                                             |
-| 15:50    | [Git reftable: past, present and future adoption](sessions/reftable.md)                                           |
-| 16:30    | [Gerrit User Summit 2025 wrap-up and feedback session]()                                                          |
-| 17:00    | End of the day                                                                                                    |
+| 14:10    | [Harnessing the power of AI in the Gerrit Code Review process](sessions/harnessing-ai-in-code-review.md).         |
+| 14:40    | [git-toprepo - Monorepo when your company won't let you](sessions/git-toprepo.md)                                 |
+| 15:10    | [Gerrit User Summit 2025 wrap-up]()                                                                               |
+| 15:20    | Break/End of the day                                                                                              |
 
 
 
diff --git a/sessions/everything-counts-in-large-amounts.md b/sessions/everything-counts-in-large-amounts.md
new file mode 100644
index 0000000..9d826e4
--- /dev/null
+++ b/sessions/everything-counts-in-large-amounts.md
@@ -0,0 +1,12 @@
+# Everything Counts in Large Amounts
+
+The story of some foibles and successes in scaling jgit, H2Caches, and Gerrit,
+in both time and space. This will cover many smaller and some larger
+improvements which have been merged in the last year, along with some
+experiments and designs which I hope can bring some more improvements to these
+systems in the next year. This includes some very deep reaching attempts at
+improving the speed and memory utilization of large fetches/clones, along with
+some attempts and ideas on how to improve the bottlenecks with large pack ref
+files.
+
+*[Martin Fick, NVIDIA](../speakers.md#mfick)*
\ No newline at end of file
diff --git a/sessions/gitbutler.md b/sessions/gitbutler.md
new file mode 100644
index 0000000..adf194d
--- /dev/null
+++ b/sessions/gitbutler.md
@@ -0,0 +1,3 @@
+### GitButler
+
+*[Scott Chacon, GitButler](../speakers.md#schacon)*
\ No newline at end of file
diff --git a/sessions/reftable-backend b/sessions/reftable-backend
new file mode 100644
index 0000000..c77e6b3
--- /dev/null
+++ b/sessions/reftable-backend
@@ -0,0 +1,10 @@
+# The reftable backend: What it is, where it's headed, and why should you care?
+
+With release 2.45, Git has gained support for the "reftable" backend to read and write
+references in a Git repository. While this was a significant milestone for Git, it wasn't the
+end of GitLab's journey to improve scalability in repositories with many references.
+In this talk you will learn what the reftable backend is, what work we did to improve it
+even further and why you should care.
+
+
+*[Patrick Steinhardt, GitLab](../speakers.md#psteinhardt)*
\ No newline at end of file
diff --git a/speakers.md b/speakers.md
index 6e6a1b1..bf105c9 100644
--- a/speakers.md
+++ b/speakers.md
@@ -55,4 +55,41 @@
 Fredrik is the Lead Architect at Meroton, focusing on improving developer
 experience by finding the bottlenecks in the build, test and bug-fixing flows.
 He has used Gerrit and Zuul since 2013, Bazel since 2017 and is a maintainer of
-Buildbarn.
\ No newline at end of file
+Buildbarn.
+
+### Martin Fick - Senior Software Configuration Management Engineer - NVIDIA {#mfick}
+
+I was the first person (along with Saša Živkov) to be appointed as a Gerrit
+maintainer by Shawn in 2011 while working for Qualcomm, and I have been
+contributing and working in the Gerrit ecosystem ever since. While working at
+NVIDIA, I also recently became a jgit committer and hope to contribute a lot
+more to both for another decade at least.
+
+At Qualcomm I helped design many of the plugin extensions such as the ability to
+tie in plugin arguments to ssh commands and to add search operators and search
+output from plugins. I also did most of the development of the task plugin and
+designed most of the batch plugin. I significantly helped push many
+multi-primary technologies forward, including guiding how to make jgit accurate
+and performant on NFS in these situations. I helped reduced the memory
+consumption of cached index files to help servers scale better with thousands of
+repositories, and more recently I have helped significantly improve the
+performance of fetches and H2 caches.
+
+### Scott Chacon - CEO - GitButler {#scachon}
+
+Scott Chacon is the former cofounder of GitHub; now cofounder of GitButler, a
+next generation version control client, based in Berlin. Scott helped grow
+GitHub from 4 cofounders to 450 employees over 8 years, eventually being
+acquired by Microsoft for $7.5 billion. Scott is also the author of Pro Git,
+published by Apress and found online at git-scm.com. In unrelated news, he holds
+a WSET Level 3 certification in Wines and Spirits and owns a dog rescue outside
+of Berlin.
+
+### Patrick Steinhardt, GitLab {#psteinhardt}
+
+I have started contributing to Git and libgit2 more than 10 years ago and am
+nowadays one of the core Git contributors. I care deeply about the whole Git
+community and have contributed to large projects like the reftable backend and
+pluggable object databases, but also to countless other smaller projects.
+Nowadays I am employed by GitLab as engineering manager of the Git team, where I
+coordinate our upstream contributions into the Git project.
\ No newline at end of file
