My Stack (2026)

Sean Daly Sean Daly
· · 8 min read

This is a summary of how my development stack and software stack has evolved since 2023, when AI arrived.

Before 2023

Before 2023, I don't have any really good points to pin memories to. I started my career as a Geotechnical Engineer, and I did a lot of statistics and linear algebra, and I did that with Python. From about 2015 on, I learned about neural networks and started to go deeper into machine learning in general.

In 2019 I worked for an investment firm, and did some full-stack development with NextJS, and that's where I came across R, and Quarto in particular. In 2021 I went back to do a Data Science Master’s, and that cemented a lot of what I had picked up myself in machine learning and took my statistics knowledge to the next level. I graduated from that in 2023, right when ChatGPT took off. I couldn't have been better placed to leverage it.

2023: Initial ChatGPT Wave

When ChatGPT first came out and I came to Boston, I found a group of Harvard and MIT students who were trying to make use of AI. We met every Thursday in Central Square in Cambridge to do 2 things: finish and launch last weeks app and decide on the new app we would work on that week. We built 10 apps over the summer, at a rate of one per week, and that was break-neck speed back then because we were still coding the apps by hand and using AI to generate content.

Aider came out during the summer, so we played around with that, and we used it a bit, but it wasn't until Cursor and Windsurf came out at the end of the year that vibe-coding started to generate useful apps. Up until then, I generally used Neovim as my IDE, using VSCode whenever I had to use jupyter notebooks. Neovim is by far the best experience I've found for coding by hand.

Anyway, back then I was a big python guy as I used to be a data scientist, and my typical stack was:

  • Python backend
  • FastAPI
  • Postgres Database
  • NextJS frontend with Tailwind
  • OpenAI API

For statistical work, I preferred R for basic statistical analysis work, particularly for the combination of the tidyverse (especially ggplot2), and the quarto publishing app. For more serious machine learning, I used PyTorch, and I was already using polars for data engineering/transformation type work wherever I had a greenfield opportunity.

2024: I work in Corporate

In 2024, I started working at a large enterprise. Things were slower there, with a lot more strategy and product development work, and I travelled around meeting a lot of the staff to try and unearth opportunities for unlocking breakthroughs with AI. In the end, I realized that the first step was to get ground-level chat functionality into people's hands. At the time, people had Microsoft Copilot available, and it was honestly so limited as to make it seem that AI wasn't that impressive. I gave a bunch of early-adopter types access to our corporate ChatGPT instance and they made some interesting progress there.

For the development work I did do, I started the year using Windsurf, but changed to Cursor as it seemed to be pulling away. It was super helpful to be able to autocomplete, or make targeted changes with cmd+k.

Anyway, I stuck to the same basic stack:

  • Python backend
  • FastAPI
  • Postgres Database
  • NextJS frontend with Tailwind
  • OpenAI API

In addition, I also did some work with AI avatars, so I was using ElevenLabs for voice generation and Heygen for video generation. That was a lot of fun.

2025: Shift from Corporate to Early Stage Startup

I was still using Cursor pretty heavily through 2025. It worked pretty well for targeted code generation, but for vibe-coding it was hit-or-miss.

For personal projects I used Jeremy Howard's FastHTML quite a bit. FastHTML is a frontend framework for python that uses HTMX. I think it was a victim of unfortunate timing; if it had come out in 2018 or so, it would probably be the de facto python frontend, but AI made it so much easier to just crank out a fronted with a javascript framework that python developers just started doing that instead of making python frontends. It's a shame because it's a really nice project.

Anyway, I started working for Skillcraft in the Spring. Initially, we were trying to figure out how to report on the questionnaire-style assessment we had. I built out a statistical analysis pipeline in python to run some AI question grading (some of the responses were verbal and we had to condense these into yes/no grades based on a rubric), and then run an IRT scoring model over the graded answers. For the IRT, I used JAX. At the time, things were looking really optimistic for the assessment, and I wanted to build a scalable scoring engine that could run on GPU eventually, so I built it out in JAX. I prefer JAX to PyTorch because it forces you to formally compile the vector calculations.

We did a lot of consulting-style analysis presentation as we tried to figure out what people would find useful in the results. For this I used R quite a bit. I really like the expressiveness of the tidyverse and ggplot creates some really beautiful plots. Additionally, the quarto markdown notebook is really something special. I can't believe people stick to jupyter when quarto is available, but I guess jupyter notebooks are just everywhere in learning material.

Like I said, vibe coding was hit-or-miss in 2025, and this bit me in the Fall. We came under pressure to build out a portal, and Cursor just couldn't stay on task. It would focus on over-engineering minor features and went down a few paths where I ended up throwing out 2 or 3 days of vibe coded work. Eventually, I just dumped Cursor totally and went back to Neovim and coded up the portal by hand over the Christmas break. It left a bad taste in my mouth, and I kept a very short leash on the AI going forward, especially since this code was being pushed into production now.

I found SvelteKit in the Fall though, which was really nice. It works out a few of the kinks that NextJS has, and it's structure takes a lot of the mental load, leaving the mental load to the actual logic of the app. I also took to DaisyUI, which wraps Tailwind into classes. That might seem to defeat the purpose of Tailwind, but it is really easy to work with.

I also found Litestar, which similarly has worked through a few of the kinks in FastAPI. I think it's far superior. Having used it for a few months and tried to go back to FastAPI, I suddenly felt like it was full of gaps with some features that agglomerated together without being refactored into something more coherent later. Litestar feels to me like it is that refactoring that FastAPI needs.

My stack evolved to something like:

  • Sveltekit
  • DaisyUI
  • Python
  • Litestar
  • Postgres
  • Valkey (this was around the time when Redis was talking about going closed-source)
  • JAX

Current Stack

This year, for development I use Claude Code. At the start of the year, while I was still using Neovim, I was using Claude Code in the terminal. Back in the Spring though, I found Zed and I really really like it. I feel like this is the year of the agentic harness, and Zed has a really good one with excellent integration into the IDE. It has a big problem though, in that it uses API credits. I was quickly hitting 1000/mo.Icangetthesamecodegeneratedonthe1000/mo. I can get the same code generated on the 1000/mo.Icangetthesamecodegeneratedonthe100/mo Claude Pro plan, and the difference just isn't justifiable. It does have good ACP integration, so that's what I'm using right now.

Zed also has decent devcontainer support, and with some ssh configuration (so it can push to github from inside the container), and a bit of care around mounting claude code directories, you can have a decently sandboxed claude code environment, so you can be a little more free with it.

As the year has worn on, I'm relying more on AI to generate code, with a fair amount of piloting as it goes and reviewing the outputs. It's not the same as coding by hand, and it feels like I'm starting to lose my sharpness, so I'm learning Rust and using it to build a side project by hand.

I'm not doing a lot of consulting-style analysis these days, but I still reach for quarto. Quarto supports python as well, and the python stack has gained plotnine. Plotnine is a python implementation of ggplot maintained by posit, who maintain the tidyverse. So, with Polars, the Python stack works pretty well in Quarto, and my familiarity with R is waning.

Still, my actual stack for a new project today would be:

  • SvelteKit
  • Shadcn
  • Postgres
  • Valkey
  • Python backend (if there's real business logic or calculation required)
  • Litestar

© 2026 Seán Daly. All rights reserved.

engle