Before 2026 kicks off, I want to get clear, both privately and publicly, about what I'm aiming at. Each week, I'll post a short update on what I've been working on: projects, school, networking, health, life, and whatever else feels important.
This is week 0, so I meander quite a bit... call it a pilot episode.
Projects
My current work centers on three interrelating software applications:
- Synaps.ing, a local-first digital Zettelkasten. Building this tool became necessary as I found myself struggling more and more to organize my thinking with notecards, and every note-taking software I've used (Obsidian, Notion, The Brain) fails to store, manage, and make notes useful. Typing once and forgetting, or implementing some hierarchical naming convention to maintain "zettel-like" creates graveyards of information... Synaps.ing tries to leave thoughts in context and build structure implicitly (through hierarchy) and explicitly (through linking).
- Spiketra.in, a local-first project management application. I became deeply frustrated with slow, bloated, fully featured project management apps, and simple, low-bloat apps didn't meet my general requirements. Spiketra.in organizes tasks the way my brain implements behavior... in loosely organized piles that contribute to common goals (no wonder I suck at math).
- Brodmann Explorer is my answer to the question, "What tool could help labs, researchers, and students model neural activity, analyze datasets, and communicate research across disciplines in neuroscience?" In my head, I'm building Blender for neuroscience, however ambitious a goal that may be.
I of course am always updating the Ticket to Ride tracking and analysis (update: now includes a minimal Jupyter notebook pipeline) project. I have begun spreading this game to the masses (three different friend groups through three different friends) and as such have gotten a few people I know poking around, breaking things, and ultimately helping me make it more robust. Eventually that Reddit post is gonna land and blow some nerds mind. So much more to do than I've done too- people with better chops in sports analytics would have a blast.
There are many other projects I am working on- many will be shared in the coming weeks as progress is made.
University
I have made the difficult decision to drop the custom major. It became clear that a four-year slog through mathematics was a journey I could not complete. The pivot is majoring in Psychology with minors in Cognition and Language, and Behavioral Neuroscience. This effectively performs as a B.S. in cognitive science/cognitive psychology and leaves me with enough bandwidth to keep building tools, working on projects, and participating in research.
I'm also continuing with SEJF for another year. That means reviewing project proposals and voting on funding for projects led by people trying to improve Western's campus and Whatcom County. I was hesitant at first, but after watching layoffs and budget cuts hit Western, I felt a pull to stick around and support a program that can help fill at least some of the gaps. SEJF keeps me close to community-scale work and decision-making.
Learning (and dev log)
This week I've been diving further into software architecture. Most of what I've built previously has been websites and web apps using basic HTML, CSS, and a JS framework. Before this, WordPress with some PHP, and a little C# from Unity3d. Python seems the de facto 'powerful' programming language in science, Julia and R may have more elegance but seemingly lack versatility. Native Qt/C++ may ultimately replace parts of the architecture, but using the PySide6/Python binding makes the most sense at this time.
The framework for running "simulations" for Brodmann Explorer has shaped up to be rather complex. The original conception was that 'tools' create 'objects' and objects can be arranged into 'pipelines' that use previous objects outputs as inputs, and then renders the chosen outputs by the tool specifications. Data was interoperable and had tracked 'expressions' (branching versions datasets, tracking how they were manipulated and by what tool; built in provenance), but the visualizations were independent to each tool, and thus not able to be layered and manipulated so easily.
I have decided to explore creating a general 'canvas' which maintains a multi-object simulation in the same, or in dynamically orderable and transformable states. In other words, its a 3D renderer with a coordinate space that lets difference data representations interact (both through operations and the now given visual canvas). PyVista has been my go to answer for this problem, however, PyQtGraph and VisPy have some strengths which may ultimately prove them more useful. Update: No, PyVista is the move for 3d and PyQtGraph will do well for 2d tool visualization- VisPy is immature at this time and would require far too much low level tooling to be worth the benefit of lower infrastructural debt.
The other projects are all running on PySide6 as well- some part of me that comes from UX wants to make a design system of components I can use and recycle in the software I build. This calling is annoying, but, it certainly would save time in the long run and allow sharing of primary components... to be determined. Priorities matter, and all things cost time. This decision is unneccesary until I have a functional app to lock down the pattern for UI componentization.
Overall, software development is hard. This has proven to be a sufficiently difficult task. Luckily I'm in the right time to be doing this, while in university studying the thing I'm building for while learning how to build... I feel this is proving a good way to make progress toward this task.
On the neuroscience side, interoperability is core to BE. I've been making sense of the datasets, shapes, standards, and formats within the field of neuro. Speaking with Saskia de Vries at the end of November, I gained some insight into a multiregional Neuropixels and behavioral dataset that is soon to be released by the Allen Institute for Neural Dynamics. Having access to Spikeinterface, I am getting a sense for how Neuropixel data works. Over the next few months, I'm focusing on building to fit that dataset so the tool is ready for use as soon as it's released.
I've been leaning on the books:
- Create GUI Applications with Python & Qt6 (PySide6 Edition) by Dr. Martin Fitzpatrick
- Fundamentals of Software Architecture by Mark Richards & Neal Ford
- Balancing Coupling in Software Design by Vlad Khononov
- Data Science for Neuroimaging by Ariel Rokem and Tal Yarkoni
- Databasing the Brain by Stephen Koslow & Shankar Subramaniam
- Electronic Collaboration in Science by Stephen Koslow² and Michael F. Huerta