Sign in

Bao Huynh

@bhuynh.dev
65 followers 136 following 150 posts

Backend Engineer Web-deving with React, Svelte, and a bunch of other stuff bhuynh.dev

PostsRepliesMedia
Bao Huynh @bhuynh.dev · 01/04/2026
Just discovered writing from Sean Goedecke, and I'm really enjoying it. Very insightful perspective into software engineering on a high-scale level; would recommend to any SWE. One thing I'd like to see more is solutions to the problems Sean raised, because these problems are very intriguing to me.
000
Bao Huynh @bhuynh.dev · 08/02/2026
Maybe it's just me but I am so sick of reading AI-touched-up articles. It's the same nauseous tone of sounding self-important with either short, choppy sentences, or tackling on with (And...) in parentheses. I read to enjoy human perspectives but now many times it's just the same AI-ish tones
100
Bao Huynh @bhuynh.dev · 28/01/2026
Been touching up on some Auth topic, and it truly is "Convenience is the enemy of Security" Specifically, I have been reading about how, JWT, for all its convenience benefits, actually has bad security - so it should never be a first option. And I am really convinced. redis.io/blog/json-we...
redis.io
JSON Web Tokens (JWT) are Dangerous for User Sessions—Here’s a Solution | Redis
Developers love Redis. Unlock the full potential of the Redis database with Redis Enterprise and start building blazing fast apps.
000
Bao Huynh @bhuynh.dev · 24/01/2026
With increased generative AI in software development, I reminiscence past times where I "handcraft" the code for a personal project I love, fighting through doc frustration and enjoying the little victories when things work. It's much more efficient now with AI, but I still love the manual way.
010
Bao Huynh @bhuynh.dev · 22/01/2026
I don't want to use Nextjs but my team is very good at Nextjs, partly due to AI, and so now I also have to use Nextjs
010
Bao Huynh @bhuynh.dev · 21/01/2026
One thing I have been adding more to my instructions when chatting with LLM: "Give me the command to do/check/verify it myself" instead of letting the LLM conclude on its own A deterministic command run prevents against LLM's outputting solution & conclusion using baseless and wrong assumptions.
010
Bao Huynh @bhuynh.dev · 20/01/2026
I actually kinda like Antigravity's name and logo. Functionality-wise, still testing out, but I have had decent result so far.
000
Bao Huynh @bhuynh.dev · 16/01/2026
Mini git tip of the day: When pushing a brand-new local branch to upstream (i.e. with `git push -u`, you don't have to type the whole branch name. You can either just type the first letters then use Tab to let the CLI autocomplete Or just use HEAD: git push -u origin HEAD Keystrokes saved!
000
Bao Huynh @bhuynh.dev · 15/01/2026
Incredible Vim tip I just learned today Use = to let Vim smartly auto-indent for you. Very useful when you copy-paste blocks of code and they become jumbled. Not sure how Vim knows where to indent, but it has been quite correct so far. I feel so stupid for all manual indentation I did in the past.
000
Bao Huynh @bhuynh.dev · 03/10/2025
Another day another being bitten by <button> elements having type="submit" by default if one forgets to do type="button"
000
Bao Huynh @bhuynh.dev · 23/08/2025
Man Svelte {@const} block is such a godsend. Being able to keep variables close to where they're actually needed feels so so elegant and powerful. And these variables are reactive too.
010
Bao Huynh @bhuynh.dev · 23/08/2025
Svelte snippet is becoming my new favorite way to organize long component/page. Snippet can access all of its parent data, making it a lot more convenient than separate components. I can easily split away part of the markup into separate snippets put at the end of the file to improve readability.
010
Bao Huynh @bhuynh.dev · 14/06/2025
I love and prefer to use built-in tools, but the `apt` package manager on Ubuntu very often will have outdated package versions. So I installed `brew` and have been enjoying it so far.
010
Bao Huynh @bhuynh.dev · 14/06/2025
Mini Git tip of Saturday: `git merge-base` finds the common ancestor between 2 branches: `git merge-base main branch-1` This is especially useful when you want to rebase/filter-branch from the branch's begin - change committer emails, remove files from history, etc. `git rebase -i <merge_base>`
020
Bao Huynh @bhuynh.dev · 28/05/2025
Unironically, I really love Svelte because its font choices are just so elegant. Fit very well with Svelte's motto to "optimizize for vibes"
010
Bao Huynh @bhuynh.dev · 24/05/2025
I think I will give up trying to make my dashboard web app mobile-friendly due to long tables. The intended use case is for desktop anyway - it's just for use by me and my small team occasionally and I know we wouldn't using phones. Trying to fit a table into mobile view looks negative ROI
000
Bao Huynh @bhuynh.dev · 22/05/2025
Really enjoying "Wild Courage" by Jenny Wood 📖 A quote I find very profound: "Success mindset precedes success". You need to have a winner mindset before you can succeed There's no magical turning point where everything will suddenly become perfect. Build success from the way you take action daily
100
Bao Huynh @bhuynh.dev · 13/05/2025
Reminding myself today to: Take voluntary struggles (in things I care about) so my mind is ready and prepared for involuntary struggles.
000
Bao Huynh @bhuynh.dev · 20/04/2025
Phoenix 1.80-rc now includes DaisyUI by default. Huge win for DaisyUI and I love Daisy!
000
Bao Huynh @bhuynh.dev · 30/03/2025
Modular Form and Tanstack Form both look so good I can't choose ahh. Tanstack is obviously powerful, well-designed, w/ a big community and clearer plans for SSR. But something about Modular Form just really hook me - maybe it's the simpler API for smaller use cases, or just the very nice looking doc
010
Bao Huynh @bhuynh.dev · 28/03/2025
Wow Phoenix changes so fast almost every tutorial I've seen has now been somewhat outdated. Good thing the docs are very well-written. Hard thing is knowing which doc to look for and seeing concrete examples.
000
Bao Huynh @bhuynh.dev · 26/03/2025
Today I learned: If you are using `createAsync` at the component level, your component should wrap the async access in a <Suspense>, or else SolidStart may cause some weird flash of content issue
000
Bao Huynh @bhuynh.dev · 24/03/2025
LLM is an incredible piece of technology, and good prompting seems to affect results a lot, but I'm often not patient enough to write a good long prompt myself with all needed context. I often rather code it myself, completed with small snippets from chatGPT instead of whole project generation.
000
Bao Huynh @bhuynh.dev · 15/03/2025
Recently I have seen my Git folder getting corrupted quite often in WSL2. Not sure why. Push your commits often everyone, even WIP commits (you can always rebase later)
000
Bao Huynh @bhuynh.dev · 08/03/2025
Man I love tailwind's Amber color. 300 and you got a pleasant yellow, and 500 you got a nice-looking orange. Not too overtly yellow nor orange - very easy on the eyes
000
Bao Huynh @bhuynh.dev · 06/03/2025
Honestly, not always. Reading a good doc feels amazing. When every problem you thought of they immediately solved it in the next sections, and you keep having moments of enlightenment "wow that's so cool". You glide on the sea of knowledge taking it all in. Writing the docs though...
000
Bao Huynh @bhuynh.dev · 21/02/2025
Today I finally reached the point where I typed ":w" in an Excel file
010
Bao Huynh @bhuynh.dev · 21/02/2025
TIL: `onpointerup` to make mobile-only click event. On mobile w/ limited horizontal space, I want to implement tapping on the row to show extra info. But on desktop with lots of whitespace, I prefer dedicated buttons. → Solution: Mobile-only clicking with `onpointerup` and `event.pointerType`
100
Bao Huynh @bhuynh.dev · 18/02/2025
This so much tbh. Esp when major versions can help with marketing too
000
Bao Huynh @bhuynh.dev · 14/02/2025
Man this was such an awesome read: The history of modern JavaScript tooling → How we went from <script> tags to all of the various tools we have today (each serves a very particular and useful purpose). It's a bit old but very good. Love articles that show the why. peterxjang.com/blog/modern-...
peterxjang.com
Modern JavaScript Explained For Dinosaurs
Learning modern JavaScript is tough if you haven’t been there since the beginning. The ecosystem is growing and changing so rapidly that…
010
Bao Huynh @bhuynh.dev · 13/02/2025
TIL: ESM Dynamic import has a cache! So if you're developing a module to be dynamically imported, and seeing that it keeps importing the old version, you can bust the cache by just adding a query string with `Date.now()`
000
Bao Huynh @bhuynh.dev · 07/02/2025
A lot of website accessibility can be achieved by just: - Using semantic HTML elements: nav, fieldset, dialog, label, etc. - And use ARIA attributes occasionally. Mostly aria-label, aria-labelledby, and role to give more context to things that screen readers may not understand: emojis, buttons, etc.
030
Bao Huynh @bhuynh.dev · 29/01/2025
Mini Git tip: Use github.new to quickly create new repository.
github.new
Build software better, together
GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.
010
Bao Huynh @bhuynh.dev · 29/01/2025
I wonder (and hope) if AI will make recruiting better for juniors, as CTO and HR realize one don't need years of exp in certain tools Talents only need strong conceptual knowledge, and quick thinking & analysis skills. Then AI will cover any syntax and intro knowledge on new language/topic/codebase
100
Reposted by Bao Huynh
† lucia scarlet 🏰 @lucia.red · 01/01/2025
looking for work (screenshot because yapping is not permitted on Bluesky)
screenshot of my own post on X:

“right I need to be Honest for a bit

I came to the final decision to drop out of university at the end of 2024, as it’s just been a massive drain on me mentally that would take time away from my own endeavours and I simply haven’t gotten much out of it, making this my final semester. I’ve been taking courses at a glacial pace to allow time for Anything Else, so if I were to continue at that rate, I would be unlikely to get out for another 20 years or something. it’s honestly lifted a pretty large weight off of my shoulders, as I’d never seen university as being My Future and being the path I wanted to focus on for my career, and I really just want to move on with my life. I now feel free to do just that

as a result, I am looking for a full-time position in graphic design, specifically UI/UX design, and I will now actually have the time to take on one with university out of the picture

I’m in Germany so my time zone is CET, but I’m rather flexible and will be able to accommodate international time zones. it MUST be remote within the immediate term, but I am open to relocating in the future and move to working in-office if that would be preferable to you

you already know what I do, so contact me at hello@lucia.red if you’re interested in working with me”
1723563
Bao Huynh @bhuynh.dev · 02/01/2025
New year new ✨DEV.TO article ✨: Use Typescript to allow your component to accept HTML-native attributes, in multiple JS frameworks. dev.to/baohuynhlam/... This article is mostly for me because I sometimes switched frameworks and always wondered how to do this. Let me know where I can improve!
dev.to
Typescript and HTML attributes in various frameworks
If you have worked with Typescript in a JavaScript framework - React, Vue, Solid, or Svelte - then...
020
Bao Huynh @bhuynh.dev · 01/01/2025
<2024> 🏫 Graduated from uni 🧑‍💻 Got my first dev job at an amazing company 📝 Learned 2 new languages and 2 new JS frameworks 🚀 Introduced esbuild to my workplace 💪 Started exercising daily </2024> 2024 to me was a year for setting up a solid foundation. Here's to 2025! (hopefully more OSS)
030
Bao Huynh @bhuynh.dev · 31/12/2024
Spent 2 hours yesterday helping someone tracing a weird Vite bug. Turns out the issue has been reported in the 3rd-party tool's Github a year ago, and the fix is even in the doc Moral of story: Always check GH Issues, esp. if you're helping on a public forum Wish that Google also index GH issues
000
Bao Huynh @bhuynh.dev · 25/12/2024
Send Christmas wishes is a great "excuse" to catch up on your relationships. - someone who helped when you were in need - friends you forgot to reply to last month - acquaintances you hope to connect w/ again Life can be busy, and Christmas is a chance to slow down and nurture your relationships
000
Bao Huynh @bhuynh.dev · 21/12/2024
My Git wrap for this year Honestly better than I thought but definitely has room for improvements. Nice to be able to put actions into metrics, so I can come to 2025 stronger I don't know where the 25 stars come from haha git-wrapped.com/profiles/bhu...
000
Bao Huynh @bhuynh.dev · 21/12/2024
Amazing code image generation tool I just found: chalk.ist Love this so much - Support a ton of languages, including Svelte - A whole panel of customization for every thing - font family, font size, line numbers, window reflection, etc. - Insert multiple code blocks Tysm @idered.bsky.social
chalk.ist
Chalk.ist - Create beautiful images of your source code
Turn your source code into beautiful images
000
Bao Huynh @bhuynh.dev · 20/12/2024
Svelte 5 runes tip: exporting reactive values across files = WRAP it in a function Get/set accessor, class method, or just plain function This's because runes/signals are just plain-old JS that work by calling functions to access latest values This truly blows my mind coming from React and hooks
000
Bao Huynh @bhuynh.dev · 19/12/2024
Linux apt is great but the package versions is often so so outdated I have transitioned to use HomeBrew on both Mac and Linux (WSL) and the result has been awesome.
000
Bao Huynh @bhuynh.dev · 17/12/2024
More random mini Git tips to make your day easier: To test a merge without actually merging first - to see if you will have any merge conflicts ⭐ `git merge <branch> --no-commit ---no-ff` ⭐ If you then don't like the conflicts, you can `git merge --abort` it
000
Bao Huynh @bhuynh.dev · 10/12/2024
A mini Git tip to make your life easier If you're using `git commit -m` then suddenly realize this commit message is gonna be a lot longer than expected → Use the `--edit` flag to open up a Message Edit window to further add to your commit
010
Bao Huynh @bhuynh.dev · 08/12/2024
Learning Svelte, it's been incredibly helpful for me to truly grasp Signal Many times, Svelte is that way because that's how Signal™ works My breakthrough is realizing Signal reactivity isn't magic, just plain old JS based on the idea of: to get the latest value, just re-invoke the `get` function.
010
Bao Huynh @bhuynh.dev · 07/12/2024
Spent hours today debug why Mandarin wouldn't display on WezTerm but VsCode works. Turns out MacOS default *implicitly* fallback on "PingFang SC". Not obvious at all. I fixed it w/ Noto Sans CJK SC 🧑‍🍳💋 And the story's hero is WezTerm's incredible CLI, with the exact command for debugging fonts 🙏
000
Bao Huynh @bhuynh.dev · 06/12/2024
New vim/neovim knowledge You can tell vim to "unmask" invisible characters such as tab or space with the simple `:set list` command Tabs are now > space are - and non-breaking space are + Undo with `:set nolist`
000
Bao Huynh @bhuynh.dev · 04/12/2024
Underrated power of Firefox over Chrome: Case-sensitive word search (when Control-F) It's not always useful, but when you need it, you are going to lament so much my Chromium misses such a huge UX
000
Bao Huynh @bhuynh.dev · 04/12/2024
"The sooner you make your first 5000 mistakes, the sooner you will learn how to correct them" Not that you have to fail repeatedly, but the sooner you're comfortable with making mistakes and learning from them, the sooner you will start growing.
010