i hate my users
context: i am a self taught dev, and a little slow
I recently got put in a very very weird position, I built my
βfirstβ production website, with around 100 internal users, for an org
that will be leaving in 2 months. At my previous company I had max 3
internal users, and everything was very static. I had a set of
requirements, I would build it, and either send them the files over
email, or bring them a usb stick. It was a small company. but now,
completely on my own, I have shipped an extremely useful tool (users
words not mine), with zero experience running any kind of
project with a prod. I have learned so much, too much. I
am scared.
What have I learned?
- I hate my users
- I don't hate my users
- I don't know how to maintain my code
- Its all learning, learning hurts
- I love my users
I hate my users
Users are always complaining, what the hell, don't they know I am busy?
always asking questions, oh how do i input the thing in the thing so i
can do the thing? and suggesting ideas, what if the foo and the bar was
actually boo and far? oooh i didnt think about it like that. They are
constantly pestering me, and I am busy, working on a million things they
can't even see. my RLS policies aren't going to vibe code themselves.
I don't hate my users
This is legitimately how I felt for about the first week of the project.
very lame of me. I literally forgot all about the reason I did the
project, it was to help these people. and all they are
trying to do is help me help them make the site better. maybe foo being
boo is actually more beneficial to the people. the real problem is that
i am not a fan of maintaining and shipping updates to my project
i dont know how to maintain my code
My background in coding is personal tools that solve my problems,
internal tools that solve 1-3 other people's problems, and research
tools to solve my curiosity. this is non of those three, first of all
its web dev, which i suck at, second, i have a prod, which is something i
have never had to deal with before, and i have definitely not had to fix
something during my lunch break because i broke it the night before
(not very good at git).
Its all learning, learning hurts
The frustration I was feeling was not from my users, it was from the
learning process. for some reason, I was treating this project like a
one and done, instead of what all projects should be, which is a
continuous learning experience. especially because these were all new
concepts to me. Well now i know that pushing to prod is
not the move, i know what branches are now, i have
implemented tests for the first time, and continuous feedback from users
is amazing to have, and i am very fortunate to be able to have such vocal
users.
I love my users!
Aw man⦠one more thing
This org is completely non-technical, and I leave in 2 months. I host
the server on my dime (free tier baby wooo), with my logins (login with
gmail booo), and no one else knows anything about any of it. This problem
i have yet to solve. How does one make a program that is stable forever
and never requires any maintenance at all? That one may be beyond my
reach, the project might just be cooked. But I feel bad for leaving all
my peers hanging, giving them this program, only for it to be taken away
by my greed for time to work on cooler, world saving stuff, like ai
generated ads and ai agents for customer service. nah i am prolly gonna
make some crazy ass anti-fingerprinting stuff, watch out for that.
I Hated My Users. π³ There. I Said It. 5 Lessons From Shipping My First Production Application As A Self-Taught Engineer.
This is going to be a vulnerable one. π«£
Some context, because I think it matters: I'm self-taught. No CS degree. No bootcamp cohort. No mentor walking me through my first code review.
Just me, documentation, and a truly heroic amount of patience with myself. π
Six months ago I shipped my first real production application. ~100 internal users. An organization I care deeply about. Zero prior experience running anything with a live environment.
For context on the leap: at my previous company, my "deployment strategy" was emailing a zip file. Sometimes I walked a USB stick down the hall. πΎ
Three users. Static requirements. Ship and forget.
Now? 100 people. Live. Every day. Depending on something I built alone.
The users called it "extremely useful." Their words, not mine. π₯Ή
I have learned so much. Honestly? Too much.
And I'll be transparent with my network: I'm scared. π°
Here's everything I learned, in order π
1οΈβ£ I hated my users
2οΈβ£ I didn't hate my users
3οΈβ£ I don't know how to maintain my code
4οΈβ£ It's all learning, and learning hurts
5οΈβ£ I love my users β€οΈ
Let's get into it.
1οΈβ£ I hated my users π€
I'm not proud of this. But growth requires honesty.
The tickets never stopped. The questions never stopped. The feature requests never stopped.
"How do I input the thing into the thing so I can do the thing?" π
"What if the foo was actually a boo, and the bar was actually a far?"
...oh. π That's actually a better information architecture than what I shipped.
But in the moment? All I could see was interruption. I was heads-down on a hundred things they would never see, could never see, and would never thank me for.
My RLS policies were not going to write themselves. π
2οΈβ£ I didn't hate my users π‘
That mindset lasted about a week.
Then I caught myself. And I asked the question every builder needs to ask more often:
Why did I start this?
Not for the architecture. Not for the stack. Not for a line on my resume.
For them. π«±π½βπ«²πΌ
Every "annoying" question was a usability gap I shipped. Every "annoying" suggestion was free, unsolicited, high-signal product feedback that companies pay six figures a year to a research team to obtain.
They weren't pestering me. They were trying to help me help them. π€
The friction was never the users.
3οΈβ£ I don't know how to maintain my code π§―
Here's the uncomfortable truth I had to confront about my own background.
Everything I'd built before fell into three buckets:
πΉ Personal tools that solved my problems
πΉ Internal tools that solved 1-3 other people's problems
πΉ Research tools that solved my curiosity
This was none of those.
First, it's web development, which is genuinely not my strength. π
Second, it has a production environment. A living system. With real users and real consequences.
I have fixed a live outage during my lunch break because I broke it the night before.
I did not fully understand git. πΏ
Nobody tells you that "shipping" is 10% of the job and "the next 18 months" is the other 90%.
4οΈβ£ It's all learning, and learning hurts π
This was the real unlock, and I want to sit with it for a second.
The frustration was never coming from my users. It was coming from the learning curve.
Read that again.
I was treating this project as a one-and-done deliverable. A finish line.
But that's not what software is. Software is a continuous learning engagement with the people who use it. π
Once I reframed it, everything changed:
β
I learned that pushing directly to prod is not the move
β
I learned what branches are (yes, really)
β
I wrote my first tests. Ever. π§ͺ
β
I stopped treating feedback as noise and started treating it as a roadmap
Do you know how rare vocal users are? Most builders are shipping into total silence. π
I have a hundred people who care enough to complain.
That's not a burden. That's a gift. π
5οΈβ£ I love my users β€οΈπ
Truly. Every one of them.
Ok, one more thing. π¬
I need to be honest about where this story actually ends, because I don't believe in posting the highlight reel.
This organization is entirely non-technical.
I leave in two months.
The server runs on my account. On the free tier. Authenticated through my personal login.
Nobody else knows anything about any of it. Not the deployment. Not the database. Not the domain.
The bus factor on this project is one. And I'm the bus. π
I have not solved this problem.
So I'll open it up to my network, because I genuinely don't have the answer:
How do you build software that remains stable forever and requires no maintenance at all? π€
I suspect that may be above my current level. I suspect the honest answer is that the project may not survive me.
And that sits heavy. These are people I care about. I handed them something that made their week easier, and I may be taking it back purely so I can go chase more scalable, higher-leverage, world-changing problems.
Like AI-generated advertising creative. And autonomous AI agents for customer service. π
...
Just kidding. I'm going to go build some genuinely unhinged anti-fingerprinting tooling instead. π
Watch this space. π₯·
What's the most useful thing you've ever built that nobody could maintain after you left? Drop it below π I want to know I'm not alone in this.
β»οΈ Repost if you've ever been the bus factor.
#SelfTaught #SoftwareEngineering #WebDevelopment #FirstProductionApp #Vulnerability #Growth #LessonsLearned #TechnicalDebt #BusFactor #UserFeedback #ImposterSyndrome #Grateful #DevOps #Privacy #BuildInPublic #NonTraditionalBackground