I worked on multiple projects in parallel, so I ended up touching a fairly wide range of technologies. Here’s a rough list from memory.
- Mobile apps
- Flutter
- React Native, Expo
- Frontend
- Next.js (TypeScript)
- Astro
- Tailwind CSS
- Backend
- Go (echo)
- Python (FastAPI)
- Ruby (Rails)
- Embedded
- PlatformIO (C++)
- ESP32
- Cloud services
- AWS (ECS, IoT Core)
- GCP (Cloud Run)
- Firebase (Auth/Firestore)
- PlanetScale (MySQL)
- Cloudflare
- Other
- Graph DB (Neo4j)
- gRPC (Go, Flutter)
- MQTT (ESP32)
- Terraform
- Chrome Extension
- Figma (web design)
In recent years I did a lot of mobile work; lately there’s been more backend too.
The most challenging has been C++ firmware (I’m still doing it). Debugging is tough, root‑causing errors takes time, memory has to be carefully managed, and you can’t always lean on libraries—so things take longer than expected. More practice needed.
I’d mainly used React Native for mobile, but started using Flutter heavily last year. Hard to pick a favorite for cross‑platform apps, but Flutter feels stable and solid.
For backend, there are many choices. When I don’t have a strong reason otherwise, I gravitate to Go because it’s fast in many senses and leaves fewer things to agonize over. A few days ago I built a small personal API and went with Go again.
For my dev environment, I use IntelliJ or CLion (for C++). Most people around me use VS Code now, but JetBrains IDEs still fit me better.