I decided to go freelance even though I didn’t have concrete projects lined up at resignation time. I wasn’t sure it would work out, but I quit thinking, “It’ll work out somehow.”
After that, people I met at conferences and former colleagues introduced me to projects, and I started freelancing smoothly.
Most of my work has come through acquaintances or people I met through work. To freelance, it seems important to first build relationships by spending time inside a company.
As a freelancer I took a “I’ll do anything” stance and got to touch many kinds of projects, for example:
- Mobile app development with React Native
- Mobile app development with Flutter
- Rails backend development
- API development in Python
- Backend APIs in Go
- Website development with Next.js
- AWS infrastructure with Terraform
- Machine learning / AI features
Early on I also did advisory/assessment work, but I find writing code myself more fun and impactful, so I’ve shifted away from purely advisory roles.
Unlike being an employee, nearly all of my working hours as a freelancer are programming, which suits me well.
While freelancing has gone better than expected, my original goal—personal projects—has often been pushed aside.
I planned to work three days a week on client work and spend four days on my own development, but I sometimes found myself effectively working seven days a week. That’s my big reflection over the past two years.
First, when schedules get tight, I tend to increase my hours out of a sense of service. Second, personal products may or may not make money, and even if they do, that’s in the future—so paid work naturally takes priority.
My software side projects often stalled and I lacked strong ideas, so recently I’ve focused more on hardware, aiming to build a mini‑robot.
I’ve also been involved in the MIA project since last year, working on a hardware product there too.
Going forward I plan to work as a software engineer who can also do hardware development.