written by Eric J. Ma on 2025-12-25 | tags: blogging retrospective coding agents llms bayesian biotech career writing marimo modal data science
Reflecting on my second year of weekly blogging, I published 50 posts in 2025, bringing my two-year total past 100. This year was dominated by coding agents and AI-assisted programming, with extensive writing on AGENTS.md, autonomous agents, and productive patterns for working with AI. I also explored Bayesian methods for biological applications, got excited about Marimo and Modal, and wrote about data science leadership and career development. Two years of consistent writing has reinforced that writing clarifies thinking, consistency compounds, and the best posts come from problems you're actively solving.
Last year, I challenged myself to write one blog post per week, and I hit 53 posts by the end of 2024. This year, I doubled down on that commitment and wrote 50 posts in 2025. Including this one, it's 51, bringing me to 104 blog posts over two years.
Looking at my 2025 posts, one theme dominates: coding agents. I wrote extensively about how to work with AI coding assistants, from teaching them with AGENTS.md files to letting them work autonomously. This reflected a shift in how I work day-to-day.
Some highlights from this theme:
The shift from "AI as a tool" to "AI as a collaborator" captures how my practice evolved this year. I've gone from cautiously experimenting with Cursor to having established patterns for multi-repository agent workflows.
My work continued to inform my writing, with several posts on applying Bayesian statistics to real lab problems. The R2D2 prior posts were particularly satisfying to write because I felt equipped with new theoretical knowledge that was directly applicable, and I appreciated the mathematical aesthetics behind the approach:
I also explored the challenges of working with lab data, including why preclinical experiments make ML challenging and how to communicate effectively with lab scientists.
Every year brings new tools that change how I work. In 2025, two stood out.
Marimo is a reactive notebook tool that I wrote about with enthusiasm, and followed up with practical guidance on using coding agents to write Marimo notebooks. The reactive execution model aligns well with how I think about data exploration.
Modal is cloud computing that actually feels Pythonic. My "Wow, Modal!" post captured the delight of finding infrastructure that doesn't fight against my workflow.
I continued writing about the human side of data science work, including standardizing ways of working, communicating with lab scientists, and navigating the biotech industry's ups and downs. The year ended with The selfish reason to do your best work, which synthesized lessons from a challenging year in biotech.
After two years of writing almost weekly on whatever is on my mind, I am adjusting my goals. Next year, my attention shifts towards (a) learning the fundamentals of quantum computing through an ultralearning project, (b) writing more on data science leadership and career development to encourage colleagues navigating similar paths, and (c) building out at least 10 experimental things with AI. I am also dropping the goal of "one blog post per week" to four per month, which brings me to a goal of 48 for 2026. I am giving myself space to rest and strategically plan out writing going into 2026.
Merry Christmas and a happy new year to all my readers!
| Date | Title | Categories |
|---|---|---|
| 2025-01-04 | What makes an agent? | LLMs, Data Science Tooling, Biology & Chemistry |
| 2025-01-10 | A practical guide to securing secrets in data science projects | Data Science Practice & Leadership, Data Science Tooling |
| 2025-01-13 | Writing at the speed of thought | Data Science Tooling, Career Advice |
| 2025-01-19 | Why data from preclinical biotech lab experiments make machine learning challenging | Data Science Practice & Leadership, Data Science Tooling, Biology & Chemistry |
| 2025-01-31 | PyData Boston/Cambridge Talk @ Moderna: What makes an agent? | LLMs, Data Science Tooling, Data Science Practice & Leadership |
| 2025-02-07 | Lightening the LlamaBot | LLMs, Data Science Tooling |
| 2025-02-17 | Let me ship you the Python you need | Data Science Tooling |
| 2025-02-23 | Reliable biological data requires physical quantities, not statistical artifacts | Data Science Practice & Leadership, Biology & Chemistry, Data Science Tooling |
| 2025-03-01 | How to fix PyPI upload errors related to license metadata | Data Science Tooling |
| 2025-03-06 | A blueprint for data-driven molecule engineering | Data Science Practice & Leadership, Data Science Tooling, Biology & Chemistry |
| 2025-03-16 | The art of finesse as a data scientist | Data Science Practice & Leadership |
| 2025-03-17 | Why you should take part in the SciPy sprints! | Data Science Practice & Leadership, Data Science Tooling, Career Advice |
| 2025-04-02 | How to standardize Data Science ways of working to unlock your team's creativity | Data Science Practice & Leadership, Data Science Tooling |
| 2025-04-03 | Bayesian Superiority Estimation with R2D2 Priors: A Practical Guide for Protein Screening | Data Science Practice & Leadership, Data Science Tooling, Biology & Chemistry |
| 2025-04-05 | From data chaos to statistical clarity: A laboratory transformation story | Data Science Practice & Leadership, Data Science Tooling, Biology & Chemistry |
| 2025-04-08 | Wow, Marimo! | Data Science Tooling, LLMs |
| 2025-04-19 | Good practices for AI-assisted development from a live protein calculator demo | Data Science Practice & Leadership, Data Science Tooling, Biology & Chemistry |
| 2025-04-26 | Wow, Modal! | Data Science Tooling, LLMs |
| 2025-05-08 | Why I'm excited for SciPy 2025! | LLMs, Data Science Practice & Leadership, Data Science Tooling, Career Advice |
| 2025-05-24 | Supercharge your coding agents with VSCode workspaces | LLMs, Data Science Tooling |
| 2025-05-25 | The invisible polish of automatic model routing | LLMs, Data Science Tooling |
| 2025-06-07 | Principles for using AI autodidactically | LLMs, Data Science Practice & Leadership |
| 2025-06-14 | Rethinking LLM interfaces, from chatbots to contextual applications | LLMs, Data Science Tooling |
| 2025-06-27 | Build your own tools! | LLMs, Data Science Practice & Leadership, Data Science Tooling, Biology & Chemistry |
| 2025-07-01 | One hour and eight minutes: Building a receipt scanner with the weirdest tech stack imaginable | LLMs, Data Science Tooling |
| 2025-07-07 | The job your docs need to do | Data Science Practice & Leadership |
| 2025-07-13 | Earn the privilege to use automation | LLMs, Data Science Practice & Leadership, Data Science Tooling |
| 2025-07-14 | Reflections on the SciPy 2025 Conference | LLMs, Data Science Practice & Leadership, Data Science Tooling, Biology & Chemistry, Career Advice |
| 2025-07-15 | How to use xarray for unified laboratory data storage | Data Science Tooling, Biology & Chemistry |
| 2025-07-21 | From nerd-sniped to shipped using AI as a thinking tool | LLMs, Data Science Practice & Leadership, Data Science Tooling |
| 2025-08-06 | Stop guessing at priors: R2D2's automated approach to Bayesian modeling | Data Science Practice & Leadership, Data Science Tooling |
| 2025-08-15 | Data scientists aren't becoming obsolete in the LLM era | LLMs, Data Science Practice & Leadership, Data Science Tooling, Career Advice |
| 2025-08-23 | Wicked Python trickery - dynamically patch a Python function's source code at runtime | LLMs, Data Science Tooling |
| 2025-08-24 | How to communicate with lab scientists (when you're the data person) | Data Science Practice & Leadership, Biology & Chemistry |
| 2025-09-01 | How to use AI to accelerate your career in 2025 | LLMs, Career Advice |
| 2025-09-02 | The Data Science Bootstrap Notes: A major upgrade for 2025 | Data Science Practice & Leadership, Data Science Tooling |
| 2025-10-01 | How data scientists can master life sciences and software skills for biotech using ultralearning | Data Science Practice & Leadership, Biology & Chemistry, Career Advice |
| 2025-10-04 | How to teach your coding agent with AGENTS.md | LLMs, Data Science Tooling |
| 2025-10-10 | How to use multiple GitHub accounts on the same computer | Data Science Tooling |
| 2025-10-14 | How to Use Coding Agents Effectively | LLMs, Data Science Tooling |
| 2025-10-18 | A practical comparison of DSPy and LlamaBot for structured LLM applications | LLMs, Data Science Tooling |
| 2025-10-19 | How to expose any documentation to any LLM agent | LLMs, Data Science Tooling, Data Science Practice & Leadership |
| 2025-10-20 | Exploring Skills vs MCP Servers | LLMs, Data Science Tooling |
| 2025-10-28 | Use coding agents to write Marimo notebooks | LLMs, Data Science Tooling |
| 2025-11-08 | Safe ways to let your coding agent work autonomously | LLMs, Data Science Tooling |
| 2025-11-16 | How I Replaced 307 Lines of Agent Code with 4 Lines | LLMs, Data Science Tooling |
| 2025-11-17 | How to Reference Code Across Repositories with Coding Agents | Data Science Tooling, LLMs |
| 2025-12-02 | What does it take to build a statistics agent? | LLMs, Data Science Tooling, Biology & Chemistry, Data Science Practice & Leadership |
| 2025-12-10 | Productive Patterns for Agent-Assisted Programming | LLMs, Data Science Tooling |
| 2025-12-17 | The selfish reason to do your best work | Career Advice, Data Science Practice & Leadership |
@article{
ericmjl-2025-two-years-of-weekly-blogging-and-what-2025-taught-me,
author = {Eric J. Ma},
title = {Two years of weekly blogging and what 2025 taught me},
year = {2025},
month = {12},
day = {25},
howpublished = {\url{https://ericmjl.github.io}},
journal = {Eric J. Ma's Blog},
url = {https://ericmjl.github.io/blog/2025/12/25/two-years-of-weekly-blogging-and-what-2025-taught-me},
}
I send out a newsletter with tips and tools for data scientists. Come check it out at Substack.
If you would like to sponsor the coffee that goes into making my posts, please consider GitHub Sponsors!
Finally, I do free 30-minute GenAI strategy calls for teams that are looking to leverage GenAI for maximum impact. Consider booking a call on Calendly if you're interested!