I'm Tim Dennis. I've spent 26 years in the UC system building research data infrastructure that keeps running after the grant ends, after the staff turns over, after the priorities shift.
I run the UCLA Library Data Science Center. This is where I write about what that work actually takes.
Recent writing
-
Fall 2026 UC Carpentries: organizing, teaching, promoting
A two-week online Carpentries series across UC campuses this September: Software Carpentry, Library Carpentry, and a Sharing Research Software session. I built the site, ran instructor sign-up and outreach, and I'm teaching.
-
What I don't let an AI agent decide
A tool for building Carpentries workshop websites with any AI coding agent. The interesting design choice wasn't the automation. It was where the agent's judgment stops and a hard rule takes over.
-
Library Leadership Is Stewarding the Wrong Thing
Ask what a library leader is supposed to protect and the answers you get are a building, a budget, and a collection. Those are means, not the mission. The job is stewarding the conditions under which knowledge gets made.
-
Rebuilding a Carpentries lesson on software citation taught me that the reframe that mattered wasn't a new standard. It was retargeting the whole lesson from researchers publishing their own code to librarians advising other people's.
-
The prompt that makes a model disagree with me
A standing prompt template whose only job is to stop a second model from agreeing with my own diagnosis. Tested it on my own project-management setup and it found the weak joint in an argument I was ready to act on.
-
The single underscore that broke my task system
A CLI task manager that worked fine in my terminal silently failed inside Claude Code sessions. The cause wasn't a bug in the tool, it was a shell-snapshot mechanism that quietly drops single-underscore function names before the agent ever sees them.