Bao Huynh @bhuynh.dev · 01/04/2026Just 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/2026Maybe 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/2026Been 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.ioJSON Web Tokens (JWT) are Dangerous for User Sessions—Here’s a Solution | RedisDevelopers 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/2026With 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/2026I 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/2026One 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/2026I 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/2026Mini 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/2026Incredible 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/2025Another 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/2025Man 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/2025Svelte 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/2025I 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/2025Mini 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/2025Unironically, 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/2025I 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/2025Really 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/2025Reminding 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/2025Phoenix 1.80-rc now includes DaisyUI by default. Huge win for DaisyUI and I love Daisy! 000
Bao Huynh @bhuynh.dev · 30/03/2025Modular 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/2025Wow 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/2025Today 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/2025LLM 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/2025Recently 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/2025Man 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/2025Honestly, 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/2025Today I finally reached the point where I typed ":w" in an Excel file 010
Bao Huynh @bhuynh.dev · 21/02/2025TIL: `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/2025This so much tbh. Esp when major versions can help with marketing too 000
Bao Huynh @bhuynh.dev · 14/02/2025Man 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.comModern JavaScript Explained For DinosaursLearning 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/2025TIL: 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/2025A 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/2025Mini Git tip: Use github.new to quickly create new repository.github.newBuild software better, togetherGitHub 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/2025I 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/2025looking for work (screenshot because yapping is not permitted on Bluesky) 1723563
Bao Huynh @bhuynh.dev · 02/01/2025New 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.toTypescript and HTML attributes in various frameworksIf 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/2024Spent 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/2024Send 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/2024My 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/2024Amazing 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.socialchalk.istChalk.ist - Create beautiful images of your source codeTurn your source code into beautiful images 000
Bao Huynh @bhuynh.dev · 20/12/2024Svelte 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/2024Linux 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/2024More 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/2024A 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/2024Learning 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/2024Spent 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/2024New 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/2024Underrated 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