Day 24 wrapped.
Login and registration are live.
JWTs are flowing. Sessions persist.
The app finally knows who is using it — and that changes everything.
#buildinpublic#vuejs#authentication#jwt#devjourney
Day 24. Time to add a front door.
Building authentication today — login, registration, and JWT-based sessions.
Because apps aren’t real until users exist.
#buildinpublic#vuejs#authentication#jwt#devjourney
Day 23 wrapped.
The dashboard finally has charts.
Hooked Pandas outputs into Chart.js and watched raw numbers turn into actual insights.
Seeing patterns visually hits different.
#buildinpublic#vuejs#dataviz#devjourney
Day 22 wrapped.
Category CRUD is live.
Built Vue screens to add, edit, and manage categories properly.
The app feels a lot more flexible now — fewer hard-coded decisions, more control.
Frontend shaping up nicely.
#buildinpublic#vuejs#frontend#devjourney
Valid Mountain Array
Solved this one twice today.
My first approach looked correct and passed all visible test cases.
But it failed on a custom edge case.
That’s the trap.
The logic was right locally, but brittle globally.
Switched to a single-pass pointer approach:
Walk strictly up
Ensure a peak exists
Walk strictly down
O(n) time, O(1) space.
More importantly, fewer assumptions.
Lesson:
Passing test cases ≠ correctness.
Edge cases expose how strong your logic really is.
Edge cases worth testing:
Strictly increasing → [1,2,3,4,5]
Strictly decreasing → [5,4,3,2,1]
Flat plateau → [1,2,3,3,2]
Peak at start or end → [3,2,1], [1,2,3]
Valid mountain → [0,3,5,4,2]
This is why I solve problems twice.
Day 22. Time to give categories their own space.
Building full Category CRUD today — Vue screens to add, edit, and manage categories properly.
No more hard-coded labels. Real control starts here.
#buildinpublic#vuejs#frontend#devjourney
They say if it were easy, everyone would do it.
What they forget is this:
we’re all given the same 365 days,
but not everyone walks them with the same intent.
Consistency, a little unhinged faith,
and the courage to keep moving… that’s the difference.
#HappyNewYear2026
Day 21. Time to narrow things down.
Building filters today — by category and date — so finding the right transactions doesn’t feel like a hunt.
Small feature. Big usability win.
#buildinpublic#vuejs#frontend#devjourney
Day 20.
Time to make the data readable.
Building the transactions table today, with pagination so it remains usable as data grows.
Less scrolling. More clarity.
#buildinpublic#vuejs#frontend#devjourney
Container With Most Water
Solved a classic MAANG problem today and implemented both approaches.
Brute force:
O(n²) time, checks every pair.
Works, but doesn’t scale.
Two pointers:
O(n) time, O(1) space.
Moves the smaller height inward because the width only shrinks.
This pruning is the real insight.
Same result.
Very different thinking.
DSA isn’t about writing code faster.
It’s about eliminating unnecessary work.
Day 19 wrapped.
Forms look simple… until you wire them to a real backend.
Built the Add Transaction form and connected it to POST /transactions.
Data now flows end-to-end without hacks or placeholders.
One less “todo”, one more real feature.
#buildinpublic#vuejs#frontend#devjourney
Day 19. Time to let users actually add data.
Building the Add Transaction form today and wiring it to
POST /transactions.
This is where UI meets backend for real.
#buildinpublic#vuejs#frontend#devjourney
Day 18 wrapped.
The backend finally has something to talk to.
Set up the Vue project, wired the router, and built the base layout.
Nothing flashy yet, but the structure is in place.
Frontend progress feels slow… until it suddenly isn’t.
#buildinpublic#vuejs#frontend#devjourney
Day 18.
Back on the timeline. Back to building.
Took a short pause from tweeting, but the project never stopped.
Today I’m switching gears to the frontend:
• Setting up a Vue project
• Configuring the router
• Building the base layout
This is where the Finance Manager App finally starts to look like an app.
Let’s bring the UI to life.
#buildinpublic#vuejs#frontend#devjourney
Day 17 wrapped.
Queues did their job: first in, first out.
Built a notification queue so events are handled in order, not whenever the code feels like it.
Simple structure, calmer system.
#buildinpublic#python#dsa#queues#devjourney
Day 17.
Order matters today.
Studying queues and building a notification queue for the app.
First in, first out — no skipping, no chaos.
#buildinpublic#python#dsa#queues#devjourney