CINXE.COM
Dr Sarah Gibson | Home
<!doctype html><html dir=ltr lang=en data-theme class="html theme--light"><head><meta charset=utf-8><title>Dr Sarah Gibson | Home </title><meta name=generator content="Hugo 0.135.0"><meta name=viewport content="width=device-width,initial-scale=1,viewport-fit=cover"><meta name=author content="Dr Sarah Gibson"><meta name=description content="Open Software - Open Infrastructure - Open Science"><link rel=stylesheet href=/scss/main.min.36cc347f9ef17e6277665cea4826f9446016e7a324f22a9b3679ba8895381662.css integrity="sha256-Nsw0f57xfmJ3ZlzqSCb5RGAW56Mk8iqbNnm6iJU4FmI=" crossorigin=anonymous type=text/css><link rel=stylesheet href=/css/markupHighlight.min.73ccfdf28df555e11009c13c20ced067af3cb021504cba43644c705930428b00.css integrity="sha256-c8z98o31VeEQCcE8IM7QZ688sCFQTLpDZExwWTBCiwA=" crossorigin=anonymous type=text/css><link rel=stylesheet href=/fontawesome/css/fontawesome.min.137b1cf3cea9a8adb7884343a9a5ddddf4280f59153f74dc782fb7f7bf0d0519.css integrity="sha256-E3sc886pqK23iENDqaXd3fQoD1kVP3TceC+3978NBRk=" crossorigin=anonymous type=text/css><link rel=stylesheet href=/fontawesome/css/solid.min.e65dc5b48fb5f39b142360c57c3a215744c94e56c755c929cc3e88fe12aab4d3.css integrity="sha256-5l3FtI+185sUI2DFfDohV0TJTlbHVckpzD6I/hKqtNM=" crossorigin=anonymous type=text/css><link rel=stylesheet href=/fontawesome/css/regular.min.6f4f16d58da1c82c0c3a3436e021a3d39b4742f741192c546e73e947eacfd92f.css integrity="sha256-b08W1Y2hyCwMOjQ24CGj05tHQvdBGSxUbnPpR+rP2S8=" crossorigin=anonymous type=text/css><link rel=stylesheet href=/fontawesome/css/brands.min.e10425ad768bc98ff1fb272a0ac8420f9d1ba22f0612c08ff1010c95080ffe7e.css integrity="sha256-4QQlrXaLyY/x+ycqCshCD50boi8GEsCP8QEMlQgP/n4=" crossorigin=anonymous type=text/css><link rel="shortcut icon" href=/favicons/favicon.ico type=image/x-icon><link rel=apple-touch-icon sizes=180x180 href=/favicons/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicons/favicon-16x16.png><link rel=canonical href=https://sgibson91.github.io/><link rel=alternate type=application/rss+xml href=/index.xml title><script type=text/javascript src=/js/anatole-header.min.f9132794301a01ff16550ed66763482bd848f62243d278f5e550229a158bfd32.js integrity="sha256-+RMnlDAaAf8WVQ7WZ2NIK9hI9iJD0nj15VAimhWL/TI=" crossorigin=anonymous></script><script type=text/javascript src=/js/anatole-theme-switcher.min.d6d329d93844b162e8bed1e915619625ca91687952177552b9b3e211014a2957.js integrity="sha256-1tMp2ThEsWLovtHpFWGWJcqRaHlSF3VSubPiEQFKKVc=" crossorigin=anonymous></script><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="https://sgibson91.github.io/images/profile_pic.jpg"><meta name=twitter:title content="Home"><meta name=twitter:description content="Sarah Gibson is an Open Source Infrastructure Engineer at 2i2c, an open source contributor and advocate. She holds more than two years of experience as a Research Engineer at a national institute for data science and artificial intelligence, as well as holding a core contributor role in the open source projects Binder, JupyterHub, and The Turing Way. Sarah is passionate about working with domain experts to leverage cloud computing in order to accelerate cutting-edge, data-intensive research and disseminating the results in an open, reproducible and reusable manner. Sarah holds a Fellowship with the Software Sustainability Institute and advocates for best software practices in research. She is a member of the mybinder.org operating team and maintains infrastructure supporting a global community in sharing reproducible computational environments. She has also mentored projects through two cohorts of the Open Life Science programme, imparting lived experience of her skills participating and leading in open science projects."><meta property="og:url" content="https://sgibson91.github.io/"><meta property="og:site_name" content="Dr Sarah Gibson"><meta property="og:title" content="Home"><meta property="og:description" content="Sarah Gibson is an Open Source Infrastructure Engineer at 2i2c, an open source contributor and advocate. She holds more than two years of experience as a Research Engineer at a national institute for data science and artificial intelligence, as well as holding a core contributor role in the open source projects Binder, JupyterHub, and The Turing Way. Sarah is passionate about working with domain experts to leverage cloud computing in order to accelerate cutting-edge, data-intensive research and disseminating the results in an open, reproducible and reusable manner. Sarah holds a Fellowship with the Software Sustainability Institute and advocates for best software practices in research. She is a member of the mybinder.org operating team and maintains infrastructure supporting a global community in sharing reproducible computational environments. She has also mentored projects through two cohorts of the Open Life Science programme, imparting lived experience of her skills participating and leading in open science projects."><meta property="og:locale" content="en_gb"><meta property="og:type" content="website"><meta property="og:image" content="https://sgibson91.github.io/images/profile_pic.jpg"><script type=application/ld+json>{"@context":"http://schema.org","@type":"WebSite","name":"","url":"https:\/\/sgibson91.github.io\/","description":"Open Software - Open Infrastructure - Open Science","thumbnailUrl":"https:\/\/sgibson91.github.io\/","license":"Dr Sarah Gibson, 2019-{{ YEAR }}"}</script></head><body class=body><div class=wrapper><aside class=wrapper__sidebar><div class="sidebar animated fadeInDown"><div class=sidebar__content><div class=sidebar__introduction><img class=sidebar__introduction-profileimage src=/images/profile_pic.jpg alt="profile picture"><div class=sidebar__introduction-title><h1><a href=/>Dr Sarah Gibson</a></h1></div><div class=sidebar__introduction-description><p>Open Software - Open Infrastructure - Open Science</p></div></div><ul class=sidebar__list><li class=sidebar__list-item><a href=https://github.com/sgibson91 target=_blank rel="noopener me" aria-label=GitHub title=GitHub><i class="fab fa-github fa-2x" aria-hidden=true></i></a></li><li class=sidebar__list-item><a href=mailto:drsarahlgibson@gmail.com target=_blank rel="noopener me" aria-label=e-mail title=e-mail><i class="fas fa-envelope fa-2x" aria-hidden=true></i></a></li><li class=sidebar__list-item><a href=https://orcid.org/0000-0003-0356-2765 target=_blank rel="noopener me" aria-label=ORCID title=ORCID><i class="fab fa-orcid fa-2x" aria-hidden=true></i></a></li><li class=sidebar__list-item><a href=https://linkedin.com/in/drsarahlgibson/ target=_blank rel="noopener me" aria-label=LinkedIn title=LinkedIn><i class="fab fa-linkedin fa-2x" aria-hidden=true></i></a></li></ul></div><footer class="footer footer__sidebar"><ul class=footer__list><li class=footer__item>© Dr Sarah Gibson, 2019-2025</li><li class=footer__item><a class=link href=/license/ title>License</a></li></ul></footer><script type=text/javascript src=/js/medium-zoom.min.1248fa75275e5ef0cbef27e8c1e27dc507c445ae3a2c7d2ed0be0809555dac64.js integrity="sha256-Ekj6dSdeXvDL7yfoweJ9xQfERa46LH0u0L4ICVVdrGQ=" crossorigin=anonymous></script></div></aside><main class=wrapper__main><header class=header><div class="animated fadeInDown"><a role=button class=navbar-burger data-target=navMenu aria-label=menu aria-expanded=false><span aria-hidden=true class=navbar-burger__line></span> <span aria-hidden=true class=navbar-burger__line></span> <span aria-hidden=true class=navbar-burger__line></span></a><nav class=nav><ul class=nav__list id=navMenu><li class=nav__list-item><a class=nav__link--active href=/ title>Home</a></li><li class=nav__list-item><a href=/blog/ title>Blog</a></li><li class=nav__list-item><a href=/portfolio/ title>Portfolio</a></li><li class=nav__list-item><a href=/adventures/ title>Adventures</a></li><li class=nav__list-item><a href=/tags/ title>Tags</a></li><li class=nav__list-item><a href=https://sgibson91.github.io/cv/ target=_blank rel="noopener noreferrer" title>CV</a></li></ul><ul class="nav__list nav__list--end"><li class=nav__list-item><div class=themeswitch><a title="Switch Theme"><i class="fas fa-adjust fa-fw" aria-hidden=true></i></a></div></li></ul></nav></div></header><div class="post animated fadeInDown"><div class=post__content><p>Sarah Gibson is an Open Source Infrastructure Engineer at <a href=https://2i2c.org>2i2c</a>, an open source contributor and advocate. She holds more than two years of experience as a Research Engineer at a national institute for data science and artificial intelligence, as well as holding a core contributor role in the open source projects <a href=https://jupyter.org/binder>Binder</a>, <a href=https://jupyter.org/hub>JupyterHub</a>, and <a href=https://the-turing-way.netlify.app/><em>The Turing Way</em></a>.</p><p>Sarah is passionate about working with domain experts to leverage cloud computing in order to accelerate cutting-edge, data-intensive research and disseminating the results in an open, reproducible and reusable manner. Sarah holds a <a href=https://software.ac.uk/programmes-and-events/fellowship-programme>Fellowship</a> with the <a href=https://software.ac.uk>Software Sustainability Institute</a> and advocates for best software practices in research. She is a member of the <a href=https://jupyterhub-team-compass.readthedocs.io/en/latest/team/index.html>mybinder.org operating team</a> and maintains infrastructure supporting a global community in sharing reproducible computational environments. She has also mentored projects through two cohorts of the <a href=https://openlifesci.org>Open Life Science programme</a>, imparting lived experience of her skills participating and leading in open science projects.</p><p>You can follow Sarah’s work on GitHub: <a href=https://github.com/sgibson91>@sgibson91</a>.</p><hr></div></div><div class="post animated fadeInDown"><div class=post__content><h2>Read the latest blog posts here</h2></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/2i2c-ci-cd-improvements/>TECH UPDATE: MULTIPLE JUPYTERHUBS, MULTIPLE CLUSTERS, ONE REPOSITORY.</a></h3><p><blockquote><p>This blog was <a href=https://2i2c.org/blog/2022/ci-cd-improvements/>originally posted by 2i2c</a> and represents a project Sarah lead and developed.</p></blockquote><p>2i2c manages the configuration and deployment of multiple Kubernetes clusters and JupyterHubs from <a href=https://github.com/2i2c-org/infrastructure>a single open infrastructure repository</a>. This is a challenging problem, as it requires us to centralize information about a number of <em>independent</em> cloud services, and deploy them in an efficient and reliable manner. Our initial attempt at this had a number of inefficiencies, and we recently completed an overhaul of its configuration and deployment infrastructure.</p></p><a href=/blog/2i2c-ci-cd-improvements/>Read more</a></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2022-05-12 </span><span><a class=tag href=/tags/continuous-integration/>continuous-integration</a><a class=tag href=/tags/continuous-deployment/>continuous-deployment</a><a class=tag href=/tags/github-actions/>github-actions</a><a class=tag href=/tags/devops/>devops</a></span></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/til-jan22/>THINGS I'VE LEARNED: JANUARY 2022</a></h3><p><ul><li>Nested build matrices are not (yet?) supported in GitHub Actions, but you can explicitly define a set of matrix parameters using YAML array syntax. See an example <a href=https://github.com/sgibson91/testing-gh-actions/blob/3a0fec6d59c933646e6c6b673e37cadf1dafb3a2/.github/workflows/includes-matrix-with-list.yaml>here</a>.</li><li>A pattern I often use to update my working branch with the default branch is:<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>git checkout main </span></span><span style=display:flex><span>git pull <span style=color:#75715e># Add `upstream main` if appropriate</span> </span></span><span style=display:flex><span>git checkout my_branch </span></span><span style=display:flex><span>git merge main </span></span></code></pre></div>Mostly this is fine, but occasionally merge conflicts happen. If I know I want to keep a specific version of a conflicting file from one of the branches (as opposed to finding a non-conflicting combination), <a href=https://nitaym.github.io/ourstheirs/><code>--theirs/--ours</code></a> can be used.<pre tabindex=0><code>git checkout --ours conflicting_filename # To keep the version from the current branch git checkout --theirs conflicting_filename # To keep the file from the incoming branch </code></pre>Note that behaviour can change depending on which branch is checked out and whether a merge or rebase is being performed, so I recommend to double-check online!</li><li>That the second <code>---</code> in YAML delimits as if what follows it is another YAML file. This can cause issues for command line YAML parsers like <code>yq</code> and made pulling the front matter from my Markdown files a little trickier than expected!</li><li>How to automatically tweet out new blog posts when they are merged into <code>main</code></li><li>How to use a GitHub App to generate tokens in GitHub Action workflows. The tokens can then be used to securely workaround the fact that GitHub Action workflows can’t be triggered by events that were authorised by the <code>GITHUB_TOKEN</code> in another workflow. There is a nice write-up that helped me <a href=https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens>here</a>.</li></ul></p></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2022-01-31 </span><span><a class=tag href=/tags/learning/>learning</a></span></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/test-this-pr/>HOW I AUTOMATED AUTHORISED CLOUD DEPLOYMENTS FROM PULL REQUESTS WITH GITHUB ACTIONS</a></h3><p><blockquote><p>This blog was originally posted on the Jupyter blog: <a href=https://blog.jupyter.org/how-i-automated-authorised-cloud-deployments-from-pull-requests-with-github-actions-13f890538e32>https://blog.jupyter.org/how-i-automated-authorised-cloud-deployments-from-pull-requests-with-github-actions-13f890538e32</a></p></blockquote><p>I recently did some work on the mybinder.org deployment infrastructure to solve a problem with testing Pull Requests before deployment. It had not been possible to test Pull Requests on our staging deployment because our automated workflows don’t have access to secrets. This resulted in my writing the <a href=https://github.com/sgibson91/test-this-pr-action><code>test-this-pr</code> action</a> and this blog is a retrospective of what I learned over that process.</p></p><a href=/blog/test-this-pr/>Read more</a></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2021-11-22 </span><span><a class=tag href=/tags/devops/>devops</a><a class=tag href=/tags/continuous-integration/>continuous-integration</a><a class=tag href=/tags/continuous-deployment/>continuous-deployment</a><a class=tag href=/tags/binder/>binder</a><a class=tag href=/tags/github-actions/>github-actions</a></span></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/hugo-tutorial/>CREATE A BLOG WITH HUGO AND GITHUB PAGES</a></h3><p><p>As a scientist in today’s ever connected, digital world, having a platform to talk about one’s work can be a really useful tool. Whether you’re looking to strike up new collaborations or promote your freshly published paper, a blog can help signal boost your work and function as an archive of your ideas (the developed and forgotten).</p><p>I put together a tutorial for building a blog site from scratch using <a href=https://gohugo.io/>Hugo</a> and <a href=https://pages.github.com/>GitHub Pages</a> - the same tools I use to host this site!</p></p><a href=/blog/hugo-tutorial/>Read more</a></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2021-06-24 </span><span><a class=tag href=/tags/lesson/>lesson</a><a class=tag href=/tags/website/>website</a><a class=tag href=/tags/hugo/>hugo</a><a class=tag href=/tags/continuous-integration/>continuous-integration</a><a class=tag href=/tags/continuous-deployment/>continuous-deployment</a></span></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/collabw21/>COLLABORATIONS WORKSHOP 2021</a></h3><p><p>At the end of March 2021, I attended the Collaborations Workshop hosted by the Software Sustainability Institute. The following is my round-up of what the event is, who runs it, and some of my highlights.</p><h2 id=what-is-the-ssi>What is the SSI?</h2><p>The <a href=https://software.ac.uk/about>Software Sustainability Institute</a> (SSI for short) is a network of UK universities, Research Software Engineering groups and policy makers dedicated in improving the quality, sustainability and recognition of research software. They help the members in their network learn software skills and best practices, and advocate for culture change in their organisations and institutions. I am also an <a href=https://software.ac.uk/programmes-and-events/fellowship-programme>SSI Fellow</a> and if anyone has any questions about the Fellowship round in the future, please do get in touch (unfortunately, applications have already closed for the 2021 round). And <a href=https://sgibson91.github.io/blog/ssi-fellowship/ title="Software Sustainability Institute Fellowship 2020">read my previous blog</a> to find out more about my Fellowship goals.</p></p><a href=/blog/collabw21/>Read more</a></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2021-04-15 </span><span><a class=tag href=/tags/conferences/>conferences</a><a class=tag href=/tags/ssi/>ssi</a></span></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/continuous-integration/>CONTINUOUS INTEGRATION: FAIL FAST AND FAIL FIRST</a></h3><p><p>Sarah and Graham have different career backgrounds - Sarah having come through academia whereas Graham earned his stripes in industry. However in their current roles, they often find themselves using the same tools, for example Continuous Integration. They have written this blog post to identify how academia and industry may use Continuous Integration in different ways, and what they might learn from one another.</p><h2 id=what-is-continuous-integration-and-why-do-we-use-it>What is Continuous Integration and why do we use it?</h2><p>In Continuous Integration (CI) and Continuous Deployment (CD), the key concept is “continuous”. That is where it departs from what software engineering teams were doing before: rather than <em>eventually</em> integrating, at the end of developing a feature, we do it <em>continuously</em>, as we’re working. Instead of <em>eventually</em> deploying, when we’ve got a collection of features built and bugs fixed, we do it <em>continuously</em>.</p></p><a href=/blog/continuous-integration/>Read more</a></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2020-02-27 </span><span><a class=tag href=/tags/continuous-integration/>continuous-integration</a><a class=tag href=/tags/tools/>tools</a><a class=tag href=/tags/devops/>devops</a></span></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/february-2020-update/>FEBRUARY 2020 UPDATE</a></h3><p><p>Hello friends! 👋 It feels like such a long time since I wrote a blog post but the truth is that I’ve just been up to so many exciting things! So this blog post will be a quick run down on everything I’ve been up to recently.</p><p>At the start of January, I helped organise and run the <a href=https://research-software-reactor.github.io/>Research Software Reactor</a> with <a href=https://twitter.com/ixek>Tania Allard</a> and <a href=https://twitter.com/gerardjgorman>Gerard Gorman</a>. Our topic was “<a href=https://research-software-reactor.github.io/blog/devops4rse>DevOps for better software and research reproducibility</a>”. We had around 30 attendees come together at the Turing Institute for 2 days and learn about <a href=https://github.com/features/actions>GitHub Actions</a> for automating their workflows. The aim was to produce reproducible software to support gold-standard research.</p></p><a href=/blog/february-2020-update/>Read more</a></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2020-02-23 </span><span><a class=tag href=/tags/update/>update</a></span></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/ssi-fellowship/>SOFTWARE SUSTAINABILITY INSTITUTE FELLOWSHIP 2020</a></h3><p><p>So 2020 is off to an incredibly exciting start!</p><p><strong>I have been awarded a Software Sustainability Institute 2020 Fellowship!!!</strong> 🎉 🎉 🎉</p><p>The <a href=https://software.ac.uk>Software Sustainability Institute</a> (SSI) is an organisation that facilitates the advancement of software in research by cultivating better, more sustainable, research software to enable world-class research (“Better software, better research”). Its mission is to become the world-leading hub for research software practice. The Institute is based at the Universities of Edinburgh, Manchester, Oxford and Southampton, and draws on a team of experts with a breadth of experience in software development, project and programme management, research facilitation, publicity and community engagement.</p></p><a href=/blog/ssi-fellowship/>Read more</a></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2020-01-10 </span><span><a class=tag href=/tags/update/>update</a><a class=tag href=/tags/community/>community</a><a class=tag href=/tags/binder/>binder</a><a class=tag href=/tags/ssi/>ssi</a></span></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/seasons-of-reflection/>2019: SEASONS OF REFLECTION</a></h3><p><p>As 2019 comes to a close, I have spent a full year as a Research Software Engineer (RSE) at The Alan Turing Institute. A lot has changed over the last 12 months and I’ve come a long way - sometimes surprising myself!</p><h2 id=winter-snowflake>Winter ❄️</h2><p>In February, I gave my first professional talk at the <a href=https://cloud.ac.uk/workshops/feb2019/>UKRI Cloud Working Group workshop</a> hosted by The Francis Crick Institute. It wasn’t the furthest I’ve travelled for a conference giving it’s next door to the British Library, but it was certainly good practice!</p></p><a href=/blog/seasons-of-reflection/>Read more</a></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2019-12-19 </span><span><a class=tag href=/tags/update/>update</a></span></div></div><div class="post animated fadeInDown"><div class=post__content><h3><a href=/blog/diving-into-leadership/>DIVING INTO LEADERSHIP TO BUILD PUSH-BUTTON CODE</a></h3><p><p><em>“Hi everyone, I’m Sarah! I’m a Research Data Scientist at the Alan Turing Institute and I’m also an operator of mybinder.org. It’s really cool seeing how many people here are interested in BinderHub!”</em></p><p>And it is cool. <em>Really</em> cool! But also a bit scary as a room full of Research Software Engineers (each of them much further on in their careers than I am) suddenly turn to me, eager for the knowledge I was surely about to impart to them.</p></p><a href=/blog/diving-into-leadership/>Read more</a></div><div class=post__footer><em class="fas fa-calendar-day"></em> <span class=post__footer-date>2019-10-17 </span><span><a class=tag href=/tags/hackathon/>hackathon</a><a class=tag href=/tags/sprint/>sprint</a><a class=tag href=/tags/binder/>binder</a><a class=tag href=/tags/binderhub/>binderhub</a><a class=tag href=/tags/leadership/>leadership</a><a class=tag href=/tags/microsoft/>microsoft</a><a class=tag href=/tags/azure/>azure</a><a class=tag href=/tags/cloud/>cloud</a></span></div></div><div class=pagination></div></main></div><footer class="footer footer__base"><ul class=footer__list><li class=footer__item>© Dr Sarah Gibson, 2019-2025</li><li class=footer__item><a class=link href=/license/ title>License</a></li></ul></footer><script type=text/javascript src=/js/medium-zoom.min.1248fa75275e5ef0cbef27e8c1e27dc507c445ae3a2c7d2ed0be0809555dac64.js integrity="sha256-Ekj6dSdeXvDL7yfoweJ9xQfERa46LH0u0L4ICVVdrGQ=" crossorigin=anonymous></script></body></html>