Developer Experience Matters
Contents
Developer Experience (DX) Matters, especially for side projects, non-profitable open-source projects, and early staged bootstrapped business.
I Can NOT Stop Working on Day Job
Recently, when I have extra energy after day job, I noticed that I prefer to spend time on my day job project, then the open source project, and finally the side project. But hold on, I have already completed the planned work for the day job project, and based on the importance, I should spend time on the side project first, then the open source project, and finally maybe some leisure time.
What’s wrong with me?
Finally, I noticed that the day job project is soo attractive to me, over others.
My Story
I am a typical passionate guided developer and I love to build things. I have a full-time job, at the same time, I run a few side projects.
A designer and me run a app development studio called Boring Design, we have made several macOS App products, like Haye AI, a in-context AI assistant; Bridge, the human-centric timezone tools; Aeir, a Youtube Music Player that would not distract you.
I am also one of the maintainer of Chaos Mesh. Although the maintainer team is not bring lots of feature into it, we’re still working on PR reviewing, make we’re not left behind the industry. I never stop thinking about what Chaos Mesh could be, with the background as more and more AI coding adopted in more and more companies.
When building with Haye AI, at the first months, one of my friends suggested me that do not use storybook for quick iteration. I did listen to him, and it did work well in the first several months. But after that, more and more features added, also more projects started, context switching between projects and features, I found that I spend more and more time on reproduce the environment, and the iteration speed is getting slower and slower.
Also, the most important, my passion and energy on the project is getting lower and lower.
I need something better to make me deliver more features, also make me enjoy the process.
Systems are Better than Goals
The best definition of “Developer Experience(DX / DevEx)” relates to following factors:
- Productivity: how quickly or simply a change can be made to a codebase
- Impact: how frictionless it is to move from idea to production
- Satisfaction: how the environment, workflows, and tools affect developer happiness
A project with Google DX would be like a perfect system to push the product forward, keep delivering new features and avoid burnout.
It’s not only about the coding, but also with the final products and user feedbacks that inspire builders to keep building. But in this post, I will focus on the coding part.
A Little Trick on Projects
So, what should I do now?
Without specific tech words, I need something that could help me profile the correct place to make changes, also let me see the results of changes quickly.
As we did use Storybook, but it’s not easy to use, its introduce too many extra and unnecessary concepts into my job.
After working on SwiftUI projects and drawing inspiration from SwiftUI Preview, I realized that rendering a basic preview without controls or additional complexity is precisely what I needed.
I tried with Dumi and React Cosmos, and finally I found that React Cosmos is the best fit for me.
At the End
Now I still split the UI part into 3 parts, one is something like <Component>UIView
the pure UI code, and <Component>Preview
with React Cosmos for quick developing, and final <Component>
with view model and business logic.
BTW, I find that
- Much of JavaScript developers seem dedicated to delivering low-quality code, showing little concern for best practices and caring about nothing, which is reflected in the overall JavaScript ecosystem.
- I enjoy the Apple SwiftUI/AppKit/Cocoa ecosystem, more and more; Just like Java, it’s not the fanciest, but it is stable and reliable, lots of SOPs and best practices. With some patient and humble, I could build a great product with it, also enjoy the process.