This post is stimulated by my employer’s annual self-assessment process. It helps me to think about the last year holistically, and write things down. My brain doesn’t naturally attach calendar timeframes to my memories (weird memory stuff like this seems to be common for folks with autism), so I hope this will help. I’m going to try and do a post like this roughly every year! It’s going to be a long one, so if you’re reading this and you’re not future-me, I’m sure you’ve got better things to do 😉
This post covers July 1, 2023 to June 30, 2024.
matplotilib/viscm
Most of this work was finished before July 1, but I’m really proud of it and it spilled in to July, so I’m counting it! I was not part of the original development of viscm, but during my work on the QGreenland 2023 Researcher Workshop, I wanted to use viscm to generate educational materials and found it was in a broken state due to changes over time in the software ecosystem. The current maintainers didn’t have time to address these issues, so I fixed it up in my free time.
viscm is a tool for colormap analysis. It helps people generate colormaps that are accessible to people with color vision impairment and analyze the accessibility of colormaps they find in use in the wild.
I requested to join the maintainer team, and over the course of 13 pull requests in collaboration with Stefan van der Walt from the Matplotlib team, I restored it to functionality, refactored, and modernized the codebase to make it easier for future developers to build on it.
Weird ideas
Some ideas I recorded but didn’t start on … yet.
- The tine hat, inspired by Morgan Ågren’s Git-hat.
- The open organ, inpired by Zynthian
Communicating with people
I’ve had some recurring struggles communicating with someone in my life. As a neurodivergent person I often have to make significant adaptations to my communication style to communicate with people who think differently, which is most people. I’m fine with this, have accepted it, I adapt (and mask) all the time, and feel I’ve largely been successful figuring out how to communicate with everyone in my life.
But for a very small number of individuals, one in particular in my life right now, I find myself exerting tens to hundreds of times more effort than normal to adapt to their communication style. For example, I ask them for significantly more feedback, I reach out to the people they get along with to ask for advice, and I build a detailed set of mental rules for communication with that one person. This extra effort is required because they are very rigid in how they expect to be communicated with, and when that expectation isn’t met, they shut down communication. These incidents, maybe one or two a year, have a huge emotional impact on me. Therapy helps! But this is also not a productive communication pattern, and we need to work together to fix it.
I feel a good explanation may be the double empathy problem. The general idea is that any people with very different experiences will have difficulty empathizing with each other, which leads to a perception of defects or deficiencies, for example that neurodivergent people (whether they are known to be neurodivergent or not) are socially defective (for example, because they went in to deeper detail than was expected), or deficient in empathy (for example, because their facial expression is not what was expected).
To help myself navigate these situations better in the future, I will be taking a Crucial Conversations workshop offered by my university this coming year. In addition to learning new communication techniques, this workshop will offer the opportunity to practice with real people. I’m excited for the possibilities this will open up for me!
I am currently pursuing a neutral mediation with this person to attempt to come to a mutually agreeable way to continue to communicate productively. I expect we will both need to adapt and be a little bit uncomfortable. Solving communication issues shouldn’t be the sole burden of a single person!
Organizational strategy
Throughout this year, I was an active member of NSIDC’s open science working group.
I joined the newly established professional development working group, and led the effort to update its mandate to include autonomous innovation.
ProjForge
A free-time exploration with Sun Bak-Hospital at NOAA of writing a bespoke static site generator for generating a community-owned web user interface to the Proj geospatial coordinate reference system (CRS) database.
We hope that this effort could grow to also encompass community management of corrections and additions to the Proj database, upstream of the EPSG organization, which currently manages change requests to the EPSG database by private email.
We finished a prototype and deployed it to https://proj-forge.com/.
bump-my-version Conda Forge package
In August 2023, I helped the author of bump-my-version package it for Conda Forge and continue to help maintain it today.
conda/conda-lock
In August and September 2023, as a teaching exercise with two friends who are learning Python, fixed some unintuitive behavior that can lead to breakage. We also applied some tooling upgrades.
QGreenland
I was a core contributor to QGreenland v3, released in August 2023.
In the same month, I led the creation of a guest post in the Jupyter Blog about our experience bringing desktop GIS software to a cloud JupyterHub environment.
Openscapes, Carpentries Instructor certification, & earthaccess
In September (TODO: Accurate? September is my earliest data point) 2023, I was invited to join the NASA Openscapes Mentor team. In this role, I help researchers to adopt modern open source software development practice and learn to work with data in the cloud, especially data too large to use in the way they’re used to, downloading it to their personal computer.
Shortly after joining the NASA Openscapes Mentor team, I took Carpentries Instructor training and received my certification.
For the 2024 NASA Openscapes Champions Cohort, I taught a lesson on psychological safety (slides) and contributed to lessons led by other mentors.
Throughout 2023 and 2024, I have been a maintainer, core contributor, and community manager for the earthaccess project, which simplifies both download and cloud-based access to NASA Earth Observation data from a major hurdle to getting science done to 3 repeatable Python statements.
I co-facilitate bi-weekly earthaccess hack day events and have brought in several new members through outreach in other communities. My involvement in earthaccess is funded by my Openscapes salary allocation.
Better Scientific Software (BSSw) Fellowship application
In September 2023, I applied to the BSSw fellowship program but was ultimately not accepted.
Problems with credit in academia, open source mitigations
In the last quarter of 2023, I did very memorable work with a researcher that I consider to be my most impactful work (per unit time) of the year.
This researcher had developed algorithms that we wanted to execute operationally at NSIDC in partnership with the researcher. This researcher had experienced, like me, some negative events surrounding how credit is assigned for research support work. They had seen credit for significant work omitted or removed in final publications, and I have had similar experiences and could relate to their skepticism about working collaboratively from a shared repository.
However, after discussiong how Citation File Format and Zenodo archival could enable automated creation of permanent citable Digital Object Identifiers (DOIs), we found a way forward to working on the project together as a team while feeling safe and secure that we would all be properly credited for our work.
Finding comfort in shared hardships and solving problems together with this team was extremely rewarding, and I won’t forget it!
NSIDC technical blog
In May 2023, I worked with Robyn Marowitz to re-invigorate the NSIDC development team’s technical blog, contributing to three new posts.
Hiring a new Engineering Manager for NSIDC
In late 2023 I participated on a hiring committee that successfully hired a new Engineering Manager.
US Arctic Observing Network (AON) Benefit Tool
The Benefit Tool enables AON administrators to configure and distribute surveys to experts for the purpose of evaluating societal benefit of applications, data products, and observing systems. I developed a prototype in late 2023, and continued work with Robyn Marowitz to develop the version that’s currently live.
To help smooth over the departure of our outgoing engineering manager, I took on a new role of project manager for this project, given my established report with the client. I facilitated development of a service agreement, negotiated requirements and deadlines, took on new reporting duties, and additional accountability for the success of the project.
In this project, I led the team in working openly in all regards from the start. Not everyone had experience in working this way, but the team was excited to try. We manage our work openly in GitHub issues and Projects, we build high quality documentation aimed at the public, we manage our work in a way that makes it accessible to members of the public, and we create a welcoming environment for contributors. Our greatest measure of success is that we been receiving ongoing volunteer contributions from an unaffiliated member of the public over the last year, and that person has branched out to contributing to other NSIDC projects as well.
My first American Geophysical Union (AGU) presentation
In December 2023, I presented a talk at AGU session C22: Advancing Cryospheric Research and Community Engagement Through Open-Science Tools, Data, and Collaboration - C22A-07: QGreenland & CryoCloud: An open GIS collaboration for education and research. This was my first time presenting at AGU, and the scale of the conference was overwhelming! I often had to choose between two talks I really wanted to attend that were occurring at the same time. It was really valuable, but intents - I wouldn’t go every year.
My slides are available on GitHub, but the video is not publicly available.
Submission to White House Office of Science & Technology Policy Year of Open Science Recognition Challenge
In December, I led a submission to the Year of Open Science Recognition Challenge. Our team was not recognized. We are very proud of another NSIDC team, ELOKA, which was recognized!
Personal documentation
In late 2023, I started an effort to document my personal projects: a documentation website for my house; a documentation website for my home music studio; a documentation website for my technical infrastructure; and documentation websites for my personal projects, such as my effort to build a daxophone.
Quarto 1.4 on Conda Forge
In January 2024, I helped to release Quarto 1.4 on Conda Forge. Quarto is a technical publishing tool that I use to author this website, educational websites, slide decks, PDF documents, and more.
I’m not affiliated with the Quarto team, but I have maintained Quarto’s Conda Forge package for a year or so.
Releasing 1.4 on Conda Forge required some significant changes. This was a community effort involving myself, other Conda Forge maintainers, and the developers of Quarto. Some of our packaging patches were merged into the upstream Quarto codebase.
Snow Today Viewer enhancements
In early 2024, I started work on a project to update the Snow Today Viewer, a web application to interactively view various near-real time snow data variables, including snow cover percent, albedo, radiative forcing, and more, to support additional geographic regions. It was designed with the Western US in mind, to replace a legacy application, but I also designed it with extension in mind.
I worked with Sebastien Lenard of INSTAAR to develop new interface specifications for sending daily near-real-time data and metadata between an external supercomputer system and NSIDC’s private cloud infrastructure. We developed these interfaces in a way that the application could be extended to support new regions or data variables by sending different JSON data over the interface. This independence from the overhead of scheduling developers to make code changes and operators to do deployments met an unrealized critical need and the system we delivered pleasantly surprised the project’s funders and managers.
In April 2024, I gave a presentation to an NSIDC audience about the new functionality, architecture, and lessons learned.
Drip irrigation
In April 2024, I hired someone to lay out some mainline and teach us how to set up drip irrigation for our garden beds. My partner, Robin, set up drip irrigation for around 10 garden beds. This year we get to enjoy more time working with the plants and less time watering. What a difference; the garden is no longer a chore. I wish we had done this when I first moved in to this house!
Review of Python educational materials for Earth scientists
In May 2024, I responded to a solication for review for educational materials titled “Python for Earth Scientists”.
QGreenland-Net
From March to June 2024, I worked on a team to explore and prototype workflow technologies we will use to build cyberinfrastructure for community-managed geospatial research data transformation recipes which write output artifacts to DataONE. We found many similarities between our goals and those of Pangeo Forge, but after exploring collaboration with members of the Pangeo Forge team, we found timing and funding considerations would be major obstacles.
We explored several options for deployment on a pre-existing Kubernetes cluster at the Arctic Data Center (ADC), including Apache Beam, Argo Workflows, Parsl, and Ray. After in depth exploration, we built out several prototypes using Argo.
We applied deployability enhancements to back-end processing components within the ADC’s Permafrost Discovery Gateway, including dockerization and Conda Forge packaging.
A way to automate inclusive language checking
In May 2024, I set up a pre-commit “mirror” repository for Alex.js. This enables Alex.js, an inclusive language checker, to be run with pre-commit, an automation tool for Git, by copying a few lines of configuration, no extra installation required.
Here is how I use this automation to check for this blog for inclusive language.
NASA ROSES proposal to fund earthaccess sustainment
In May and June 2024, I co-authored a proposal under the NASA ROSES 2024: F.7 Support for Open-Source Tools, Frameworks, and Libraries solicitation to fund continued development of the earthaccess project.
Arctic Rain on Snow Study stations & events database
In a couple of days in June 2024, I built out a PostGIS database, software to load it with rain on snow events recorded by Automated Surface Observation Stations (ASOS), software to query the database through an HTTP API powered by FastAPI, and documentation fully-tested by a real user.
The database tables are modeled with SQLAlchemy 2 & GeoAlchemy2; other data models are managed with Pydantic.
We will soon build a UI for searching and visualizing these rain on snow events and make the API and UI available to the public.
NASA Space Apps Challenge
Reviewer and subject matter expert (SME) for 2024 Space Apps Challenge number 19.
Open communities & team/organizational culture development
In pursuit of a new passion for team culture, in late 2023 I started reading voraciously about the subject. I started Peggy Holman’s books Engaging Emergence and The Change Handbook, in addition to research papers by Holman, Julie Lowndes (a colleague through the NASA-Openscapes Mentor program), and Cat Hicks.
In December 2023, I attended the Center for Scientific Collaboration and Community Management (CSCCE) Enacting culture change: The Four-Frame Model workshop.
I established discussion groups in my work communities: the Openscapes psychological safety seaside chat with Sun Bak- Hospital in April 2024; and the NSIDC open science reading club with Robyn Marowitz in Feb & May 2024. In April 2024, I attended a presentation and small group follow-up discussion about implicit bias in the workplace, both led by CIRES DEI Director Becca Edwards. In June 2024 I also joined a CIRES neurodiversity bookclub led by Becca Edwards in which we will read Neurodiversity at Work: Drive Innovation, Performance and Productivity with a Neurodiverse Workforce.
Reflection
The past year has been a major growth year. I normally don’t do things this diverse. It’s been fun. But I’m also feeling constrained by my day to day work. I’m looking to change my $DAY_JOB
role a bit. I want to continue to do education and community work, like developing and facilitating workshops and hackathons. I want to do more community-first open source work, and less working alone. I want to maybe learn Rust! I want to do more work promoting psychologically safe and inclusive team culture.
I keep getting better at communicating with others, and while I continue to struggle with difficult emotions when that doesn’t work out, that keeps getting better too. I feel like I’m mellowing out more and more with age and therapy. I fondly remember a negative interaction at my first job, maybe 14 years ago, and a colleague understood on a deep level as shown by this sweet note she left under my mouse:
Allies are out there. I’m looking forward to taking Crucial Conversations this year!
Citation
@online{fisher2024,
author = {Fisher, Matt},
title = {2023 {Year-in-Review}},
date = {2024-06-26},
url = {https://mfisher87.github.io/posts/year-in-review-2023},
langid = {en}
}