<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="en">
	<title>Trang&#39;s website</title>
	<subtitle>A software and information designer and developer.</subtitle>
	<link href="https://trang.vu/feed/feed.xml" rel="self"/>
	<link href="https://trang.vu/contact/"/>
	<updated>2026-07-14T00:00:00Z</updated>
	<id>https://trang.vu/contact/</id>
	<author>
		<n>Trang Vu</n>
		<email>itstrangvu@gmail.com</email>
	</author>
	
	<entry>
		<title>How this blog runs</title>
		<link href="https://trang.vu/notes/how-this-blog-runs/"/>
		<updated>2026-07-14T00:00:00Z</updated>
		<id>https://trang.vu/notes/how-this-blog-runs/</id>
		<content type="html">&lt;p&gt;This post is slightly technical and it would be useful to have some knowledge of data fetching and website deployment. TL;DR is that I built this site and blog using Markdown files and Eleventy static site generator.&lt;/p&gt;
&lt;h2 id=&quot;why&quot; tabindex=&quot;-1&quot;&gt;Why &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/how-this-blog-runs/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I created this site as my little corner of the internet. A space that’s truly mine. I didn’t want to rely on paid platforms like Substack or Medium because I believe in decentralization. Owning my content and having full control over my site is important to me. Plus, I thought that building it myself might be a fun coding challenge.&lt;/p&gt;
&lt;p&gt;Here’s what I set out to achieve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Own my content&lt;/strong&gt; – No lock-ins, no platforms deciding what happens to my writing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Easy posting and editing&lt;/strong&gt; – Writing should feel effortless, not like managing a system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Future-proof format&lt;/strong&gt; – Markdown is simple, portable, and built to last.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lightweight and fast&lt;/strong&gt; – No unnecessary bloat, just clean and speedy pages.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Content first&lt;/strong&gt; – The words should shine, not be buried under distractions.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This blog is a work in progress, and that’s part of the fun.&lt;/p&gt;
&lt;h3 id=&quot;the-process&quot; tabindex=&quot;-1&quot;&gt;The process &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/how-this-blog-runs/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create notes in Notion&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate the blog&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push to a Git repository&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the site&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/howthisblogruns.png.webp&quot; alt=&quot;A visual of how this blog runs&quot;&gt;
  &lt;figcaption&gt;A visual of how this blog runs&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;tools-and-technologies&quot; tabindex=&quot;-1&quot;&gt;&lt;strong&gt;Tools and technologies&lt;/strong&gt; &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/how-this-blog-runs/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Notion&lt;/strong&gt; – Content creation and organization&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Eleventy&lt;/strong&gt; – Static site generator&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt; – Version control and code management&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Netlify&lt;/strong&gt; – Automated deployment and performance monitoring&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;create-notes-in-notion&quot; tabindex=&quot;-1&quot;&gt;Create notes in Notion &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/how-this-blog-runs/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Everything starts in &lt;strong&gt;Notion&lt;/strong&gt;. I considered alternatives like Obsidian, but ultimately, I chose Notion because I already subscribe to it, and its database functionality is a good fit for my needs. I&#39;m also familiar with the tool, so it made sense to use it.&lt;/p&gt;
&lt;p&gt;I needed a way to organize tags and have control over when a note gets published, and Notion provides a structured way to manage that.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-03-12_at_22.49.58.png.webp&quot; alt=&quot;The database in Notion with tags and flag if the post is published or note&quot;&gt;
  &lt;figcaption&gt;The database in Notion with tags and flag if the post is published or note&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I usually start by drafting the post, refining it, and making adjustments until I’m satisfied. Once it’s ready, I mark the &lt;strong&gt;Is Published&lt;/strong&gt; checkbox in Notion to publish it.&lt;/p&gt;
&lt;h2 id=&quot;generate-the-blog&quot; tabindex=&quot;-1&quot;&gt;Generate the blog &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/how-this-blog-runs/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;After ensuring I’m happy with the note(s), I run a Node.js script named &lt;code&gt;fetch-notion.js&lt;/code&gt; that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Connects to Notion via Notion API.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fetches published notes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Downloads images and optimizes them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Converts Notion content to Markdown.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Saves posts as &lt;code&gt;.md&lt;/code&gt; files.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deletes old files to keep the blog clean.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/11dcebdb-5468-40b7-b4fd-b5798348a27c.png.webp&quot; alt=&quot;Output from the script that fetches the content&quot;&gt;
  &lt;figcaption&gt;Output from the script that fetches the content&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;After checking the script output to ensure everything looks good, I commit the changes to the &lt;a href=&quot;https://github.com/itstrangvu/trangs&quot;&gt;Git repository&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;deploy-the-site&quot; tabindex=&quot;-1&quot;&gt;Deploy the site &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/how-this-blog-runs/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;After pushing the changes to the repository, Netlify automatically builds and deploys the site.&lt;/p&gt;
&lt;p&gt;As part of this process, a Lighthouse check runs to ensure the site meets performance, accessibility, and SEO standards.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-03-12_at_17.16.12.png.webp&quot; alt=&quot;Netlify deploy log&quot;&gt;
  &lt;figcaption&gt;Netlify deploy log&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-03-12_at_17.18.09.png.webp&quot; alt=&quot;Lighthouse scores with 100 for performance, accessibility, best practices and SEO&quot;&gt;
  &lt;figcaption&gt;Lighthouse scores with 100 for performance, accessibility, best practices and SEO&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;room-for-improvement&quot; tabindex=&quot;-1&quot;&gt;Room for improvement &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/how-this-blog-runs/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Setting up this site and blog has been a great learning experience, but there’s still room for improvement.&lt;/p&gt;
&lt;p&gt;Instead of manually generating Markdown files, I’d like to streamline the deployment process so that explicit execution of the &lt;code&gt;fetch-notion.js&lt;/code&gt; script isn’t necessary.&lt;/p&gt;
&lt;p&gt;Fortunately, Notion introduced &lt;a href=&quot;https://www.notion.com/help/webhook-actions&quot;&gt;Webhooks&lt;/a&gt; in December ‘24, and I plan to explore how they can automate this workflow.&lt;/p&gt;
&lt;p&gt;Additionally, migrating my portfolio and generating it in the same way as the blog is something I’m considering.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Notion&#39;s webhooks made this click into place: now I have a Notion automation that pings a Netlify build hook whenever I publish, triggering a rebuild automatically. No need to run the fetch script by hand anymore, and the portfolio now syncs the same way.&lt;/p&gt;
&lt;p&gt;The ultimate goal is to self-host both the site (no need for Netlify) and the git repository (maybe using &lt;a href=&quot;https://about.gitea.com/&quot;&gt;Gitea&lt;/a&gt;?). Dropping Notion is a nice-to-have down the line. Well, I’m getting ahead of myself here, though, mhihi.&lt;/p&gt;
&lt;h2 id=&quot;curiosity&quot; tabindex=&quot;-1&quot;&gt;Curiosity &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/how-this-blog-runs/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Do you fully own your content as well? I’d love to see what you’re building! Feel free to share your blogs, digital gardens, or small personal sites. I’m always curious to connect with like-minded creators.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>A tale about a messy kitchen</title>
		<link href="https://trang.vu/notes/a-tale-about-a-messy-kitchen/"/>
		<updated>2025-09-11T00:00:00Z</updated>
		<id>https://trang.vu/notes/a-tale-about-a-messy-kitchen/</id>
		<content type="html">&lt;p&gt;This is a completely made-up tale I initially wrote for a few of my pals. Hope you enjoy it.&lt;/p&gt;
&lt;p&gt;Once upon a time, there was a kingdom called Patchworkia.
Let’s talk about how Patchworkia ran its royal kitchen.&lt;/p&gt;
&lt;h3 id=&quot;duplication-without-coordination&quot; tabindex=&quot;-1&quot;&gt;Duplication without coordination &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tale-about-a-messy-kitchen/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In the royal kitchen, three chefs might chop the same onion in three different rooms. One used a rusty knife, another had a sharp one but no light, and the third had music but no onions. That’s how internal systems worked: fragmented, redundant, and disconnected.&lt;/p&gt;
&lt;h3 id=&quot;ingredients-mislabeled-misplaced-or-missing&quot; tabindex=&quot;-1&quot;&gt;Ingredients mislabeled, misplaced, or missing &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tale-about-a-messy-kitchen/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Cupboards held the same spices under different names. Salt was “seasoning” in one place, “white powder” in another, and “???” somewhere else. Some ingredients had no label at all. Rumors spread about a box of labelling stickers but no one had ever seen it.&lt;/p&gt;
&lt;h3 id=&quot;no-clear-ownership&quot; tabindex=&quot;-1&quot;&gt;No clear ownership &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tale-about-a-messy-kitchen/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Some tools dated back to recipes written in Latin. Others were new, but incompatible. No one knew if the kitchen had one head chef, or seven. One app claimed a dish was ready, another said it never left the oven. Notes didn’t exist. Accountability disappeared.&lt;/p&gt;
&lt;h3 id=&quot;lies-and-court-politics&quot; tabindex=&quot;-1&quot;&gt;Lies and court politics &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tale-about-a-messy-kitchen/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The “smart oven” reported every soufflé had been served, though half were raw. Some recipes took three winters to prepare (only to be forgotten on a dusty shelf before anyone ever tasted them). Decisions on what to cook were driven not by diners but by court politics. If Lord Manuka liked sweet, everything was sweet, regardless of what citizens wanted or tolerated.&lt;/p&gt;
&lt;h3 id=&quot;trust-collapse&quot; tabindex=&quot;-1&quot;&gt;Trust collapse &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tale-about-a-messy-kitchen/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Then came a new wave of chefs. Some were fired before they’d even sharpened their knives. Some burned out after just a few shifts. And the ones who stayed? Many stayed only for the coin. The inns outside the royal palace paid less, so they endured the chaos, even if their hearts were no longer in the craft.&lt;/p&gt;
&lt;p&gt;Cooks tiptoed around the chaos. Some ignored systems and brought their own forks. Others gave up and ordered takeout. Without clarity, anxiety grew. The system wasn’t malicious, but unmanaged complexity turned it into a forest: ivy over ovens, mushrooms in cracks. A few clever raccoons figured out how to survive. Multiple raccoons even tried to serve the dishes themselves, pretending to be cooks. Diners couldn’t always tell the difference.&lt;/p&gt;
&lt;h3 id=&quot;what-the-cooks-needed&quot; tabindex=&quot;-1&quot;&gt;What the cooks needed &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tale-about-a-messy-kitchen/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Healthy ecosystems depend on balance and clarity, meaning light, water, food chains. Healthy kitchens depend on clarity of flavor, balance, and trust in the recipe. Patchworkia had none of that. What was needed?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A shared recipe book&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A common pantry&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tools that work together&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Permission to taste, learn, and iterate&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trust that mistakes could be surfaced and improved&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The cooks wanted to serve beautiful meals. The system didn’t let them.&lt;/p&gt;
&lt;h3 id=&quot;moral-of-the-story&quot; tabindex=&quot;-1&quot;&gt;Moral of the story &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tale-about-a-messy-kitchen/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A healthy system is not built on secret sauces, guesswork, and royal whims. It’s a well-lit, open kitchen where people know what they’re making, where to find ingredients, and how to listen to the diners. And just as important, the meals need to be priced reasonably. Because even the best recipe fails if citizens can’t afford to taste it.&lt;/p&gt;
&lt;p&gt;Let’s build that kitchen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; There was, in fact, one sous-chef who stood apart. He wasn’t universally loved. His words were sharp, his tone too direct for many. At first, people rolled their eyes or bristled at his challenges. But he was clever, tireless, and far more competent than most. Where others gave up, he didn’t. Over time, cooks began to see that beneath his bluntness was something rare: someone who cared enough to fix the mess. Slowly but surely, he helped build a real kitchen table. A common place where everyone could finally chop their ingredients side by side.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Using LLMs in product design</title>
		<link href="https://trang.vu/notes/using-llms-in-product-design/"/>
		<updated>2025-07-16T00:00:00Z</updated>
		<id>https://trang.vu/notes/using-llms-in-product-design/</id>
		<content type="html">&lt;p&gt;Since the rise of LLMs, I’ve experimented to understand its capabilities, test its boundaries, and assess what’s possible today and what still lies out of reach. Below are some notes on how I integrate AI into my daily work, across the entire design process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The process:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Research&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ideation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Prototyping with LLMs tools&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Validating and testing with users&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include findings into new prototype&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Handover to engineering&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Product marketing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Measuring impact&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Using_AI_in_product_design.png.webp&quot; alt=&quot;Tools that I’m using&quot;&gt;
  &lt;figcaption&gt;Tools that I’m using&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;research&quot; tabindex=&quot;-1&quot;&gt;Research &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;understand-the-problem&quot; tabindex=&quot;-1&quot;&gt;Understand the problem &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;At the start of any project, it’s essential to understand the problem we’re solving. I work closely with the product manager to define it clearly, often asking myself (or my &amp;quot;AI self&amp;quot;) to rephrase the problem statement in simple, human language.&lt;/p&gt;
&lt;h3 id=&quot;detective-work&quot; tabindex=&quot;-1&quot;&gt;Detective work &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Then it’s time to roll up the sleeves and reach out.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Talk to actual users&lt;/strong&gt;. Also engage key stakeholders (such as Sales Reps and customer support).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Check out data available&lt;/strong&gt;. Dive into product analytics and connect with data team folks. Extract pain points from existing logs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create automated surveys&lt;/strong&gt; using Typeform or swift through past surveys results.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Watch recordings&lt;/strong&gt; on Clarity or Hotjar or Smartlook. See how users interact with the product.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Explore how others do it&lt;/strong&gt;. I like going to Mobbin for inspiration and create collections there.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-07-16_at_13.21.04.png.webp&quot; alt=&quot;Typeform results&quot;&gt;
  &lt;figcaption&gt;Typeform results&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-07-16_at_13.16.57.png.webp&quot; alt=&quot;Clarity recording&quot;&gt;
  &lt;figcaption&gt;Clarity recording&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-07-16_at_10.48.18.png.webp&quot; alt=&quot;Saved screens in Mobbin collection&quot;&gt;
  &lt;figcaption&gt;Saved screens in Mobbin collection&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;good-practices&quot; tabindex=&quot;-1&quot;&gt;Good practices &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Translation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I believe good design begins with good translation. When speaking with users, we often operate in different &amp;quot;languages,&amp;quot; so I make it a point to reframe the problem in their terms and check for mutual understanding.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Framing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When reaching out, clearly state what you&#39;re looking for while remaining open-minded. Often, someone will share unexpected information that proves incredibly valuable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solid relationships&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Strong collaboration is key, especially with stakeholders from other teams. I invest time in building trust and open lines of communication. These relationships not only help surface edge cases and constraints early but also ensure smoother execution down the line.&lt;/p&gt;
&lt;h3 id=&quot;gather-insights-and-findings&quot; tabindex=&quot;-1&quot;&gt;Gather insights and findings &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;To organize my research efficiently, I create dedicated &lt;strong&gt;projects&lt;/strong&gt; in &lt;strong&gt;ChatGPT&lt;/strong&gt; or in &lt;strong&gt;NotebookLM&lt;/strong&gt; that store various resources including playbooks, documentation, result summaries, and datasets.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-07-16_at_12.33.10.png.webp&quot; alt=&quot;Dedicated project in ChatGPT&quot;&gt;
  &lt;figcaption&gt;Dedicated project in ChatGPT&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I conduct all related conversations within these projects for better continuity. Throughout this process, I follow one simple rule: &amp;quot;Trust, but verify.&amp;quot;&lt;/p&gt;
&lt;p&gt;One piece of advice from my manager Masha that I keep in personalized settings:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;Don’t default to agreement — challenge my ideas to offer a contrarian view. &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It’s a reminder to stay critical, not just collaborative.&lt;/p&gt;
&lt;p&gt;An output from the research could be a simplified set of user stories.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Merchant_use_cases.png.webp&quot; alt=&quot;User stories&quot;&gt;
  &lt;figcaption&gt;User stories&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;After gaining a solid understanding of the problem, I create a list of questions to discuss with the product manager and engineering team. This helps me get the project scope, which is essential since time and resources are always limited.&lt;/p&gt;
&lt;h2 id=&quot;ideation&quot; tabindex=&quot;-1&quot;&gt;Ideation &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In this phase, it&#39;s essential to generate solutions, brainstorm ideas, and explore various approaches.&lt;/p&gt;
&lt;p&gt;While brainstorming on my own, I also invite Claude into the process to generate alternative approaches. I ask it to outline the pros and cons of each direction, which helps me think more critically and uncover angles I might not have considered.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-07-18_at_13.44.01.png.webp&quot; alt=&quot;Approaches suggested by Claude&quot;&gt;
  &lt;figcaption&gt;Approaches suggested by Claude&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;flowchart&quot; tabindex=&quot;-1&quot;&gt;Flowchart &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Next, I typically create a new flowchart or update an existing one. This process gives me time to think through all edge cases in addition to the happy path.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/AI_part.png.webp&quot; alt=&quot;A flow chart example&quot;&gt;
  &lt;figcaption&gt;A flow chart example&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I strategically place sticky notes throughout with insider information or important points that require special attention.&lt;/p&gt;
&lt;h3 id=&quot;wireframes&quot; tabindex=&quot;-1&quot;&gt;Wireframes &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;After understanding the flows, I focus on individual screens and components. I use my iPad with Apple Pencil to sketch in the Notes app. These sketches automatically sync to my computer, where I take screenshots and import them into Figma as reference for my designs.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/IMG_7249.jpg.webp&quot; alt=&quot;Wireframe&quot;&gt;
  &lt;figcaption&gt;Wireframe&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;prototyping&quot; tabindex=&quot;-1&quot;&gt;Prototyping &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;figma&quot; tabindex=&quot;-1&quot;&gt;Figma &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Next, I convert the wireframe into a polished Figma design by leveraging existing components from our design system.&lt;/p&gt;
&lt;p&gt;When creating Figma prototypes, add clear arrows between components to show interaction flows. Keep designs clean and uncluttered to improve readability for both myself and my teammates.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/figma-designs-2.png.webp&quot; alt=&quot;Figma designs&quot;&gt;
  &lt;figcaption&gt;Figma designs&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;working-prototype&quot; tabindex=&quot;-1&quot;&gt;Working prototype &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Once the design is solidified in Figma, I move into a prototyping environment like v0, Replit, or &lt;strong&gt;Lovable&lt;/strong&gt;. As for Figma Make, it’s a promising start, but not quite there yet. The output can be inconsistent, such as rendering fonts much smaller than intended.&lt;/p&gt;
&lt;p&gt;I make sure the first AI prompt includes as much context as possible and keep it easily accessible for future iterations.&lt;/p&gt;
&lt;p&gt;I prefer using &lt;strong&gt;v0&lt;/strong&gt; or &lt;strong&gt;Replit&lt;/strong&gt;, where I can work directly with the code. With Lovable, I often continue editing in Cursor to fine-tune the output and have more control over micro-interactions etc.&lt;/p&gt;
&lt;p&gt;To keep things secure and avoid unintended exposure, I usually place early prototypes behind a &lt;strong&gt;password&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;apply-design-system&quot; tabindex=&quot;-1&quot;&gt;Apply design system &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;To make sure the prototype uses our design system, I pour in a &lt;code&gt;design-system.json&lt;/code&gt; file. Here’s a look how that file looks like, including design tokens and components.&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;colors&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;groupon&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      ...
      &lt;span class=&quot;token property&quot;&gt;&quot;accent&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;blue&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#3b82f6&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;purple&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#a855f7&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;yellow&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#eab308&quot;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;neutral&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;50&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#fafafa&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;100&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#f5f5f5&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        ...
        &lt;span class=&quot;token property&quot;&gt;&quot;950&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#0a0a0a&quot;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;destructive&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#dc2626&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;foreground&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#ffffff&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;success&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#22c55e&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;foreground&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#ffffff&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    ...
    &lt;span class=&quot;token property&quot;&gt;&quot;muted&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#f5f5f5&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;foreground&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#525252&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;border&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#f5f5f5&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    ...
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;border&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;width&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1px&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;thick&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2px&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;radius&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      ...
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;font&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;family&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;sans&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Nunito Sans, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;mono&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;JetBrains Mono, Fira Code, Consolas, Liberation Mono, Menlo, Courier, monospace&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
...
  &lt;span class=&quot;token property&quot;&gt;&quot;card&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;variant&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;padding&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;default&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;variants&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;background&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;{colors.card.default}&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;border&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;{border.width.default} solid {colors.border}&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;shadow&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;default&quot;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;elevated&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;background&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;{colors.card.default}&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;border&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;shadow&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;lg&quot;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;outlined&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;background&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;{colors.card.default}&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;border&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;{border.width.thick} solid {colors.groupon.primary.200}&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;shadow&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;default&quot;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;padding&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;sm&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1rem&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1.5rem&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;lg&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2rem&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
...
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;test-with-users&quot; tabindex=&quot;-1&quot;&gt;Test with users &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Once the prototypes are ready, I create a test scenario to validate the experience. I usually break it down into clear steps and use a template that outlines the goals, which I refine with the help of Claude or ChatGPT.&lt;/p&gt;
&lt;p&gt;My focus is on crafting simple, focused tasks using plain, accessible language. The goal is to make the test feel natural and not overwhelming, so users can engage comfortably and provide honest, useful feedback.&lt;/p&gt;
&lt;p&gt;I prefer using &lt;strong&gt;UserTesting&lt;/strong&gt; for structured, scalable sessions and &lt;strong&gt;Lookback&lt;/strong&gt; for more in-depth, conversational insights. One feature I particularly appreciate in Lookback is &lt;strong&gt;Eureka&lt;/strong&gt;, which automatically transcribes the sessions and organizes key takeaways into headlines. I often transfer these transcripts into &lt;strong&gt;NotebookLM&lt;/strong&gt; or &lt;strong&gt;Claude&lt;/strong&gt; for further synthesis and reflection.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-07-16_at_13.17.49.png.webp&quot; alt=&quot;A test scenario on UserTesting&quot;&gt;
  &lt;figcaption&gt;A test scenario on UserTesting&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2025-07-16_at_11.27.19.png.webp&quot; alt=&quot;Lookback test where I obfuscated the real names&quot;&gt;
  &lt;figcaption&gt;Lookback test where I obfuscated the real names&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;include-findings-into-the-new-prototype&quot; tabindex=&quot;-1&quot;&gt;Include findings into the new prototype &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Once the sessions are complete, I transfer the transcripts into &lt;strong&gt;NotebookLM&lt;/strong&gt; or &lt;strong&gt;ChatGPT&lt;/strong&gt; to help extract patterns and surface key insights. I still manually review and filter the findings to ensure only the most relevant and actionable ones are carried forward into the next iteration.&lt;/p&gt;
&lt;h2 id=&quot;handover-to-engineering&quot; tabindex=&quot;-1&quot;&gt;Handover to engineering &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The latest version of the prototype is prepared in a format that&#39;s ready for handoff to engineering. It serves not only as a design reference but also as a useful input for estimating development effort. I make sure the flow is clear, edge cases are considered, and the context is easy to grasp.&lt;/p&gt;
&lt;h2 id=&quot;product-marketing&quot; tabindex=&quot;-1&quot;&gt;Product marketing &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I prepare for the release by creating relevant visuals for user-facing communication. I also refine the content to align with our company’s tone and brand guidelines.&lt;/p&gt;
&lt;h2 id=&quot;measuring-impact&quot; tabindex=&quot;-1&quot;&gt;Measuring impact &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;While measuring impact is typically the responsibility of the Product Manager, I like to check in after a month, a quarter, or even six months post-release to see how things are going. It helps me understand what worked, what didn’t, and how the design is performing in the real world.&lt;/p&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/using-llms-in-product-design/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I treat LLMs as another tool in my design toolkit, but one I’m not afraid to challenge. I plan to keep refining this approach over time. It’s important to work with AI responsibly and ethically, while also shaping the tools in a way that pushes my own thinking forward.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Principles now</title>
		<link href="https://trang.vu/notes/principles-now/"/>
		<updated>2025-06-23T00:00:00Z</updated>
		<id>https://trang.vu/notes/principles-now/</id>
		<content type="html">&lt;p&gt;This is a catalogue of principles that drive me now.&lt;/p&gt;
&lt;h3 id=&quot;meet-people&quot; tabindex=&quot;-1&quot;&gt;Meet people &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/principles-now/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;And meet them in a way so that you can see where they’re at conceptually, emotionally. Verbally recognize their wisdom and emphasize when things go well.&lt;/p&gt;
&lt;h3 id=&quot;stay-real&quot; tabindex=&quot;-1&quot;&gt;Stay real &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/principles-now/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Give zero fuel to poor behavior, bad ideas, performative smartness. Focus your emotional and intellectual energy on the right things.&lt;/p&gt;
&lt;h3 id=&quot;careful-curation&quot; tabindex=&quot;-1&quot;&gt;Careful curation &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/principles-now/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Escape the algorithm by selecting information content with intention. Also consider stepping away from your screen and doing something completely different and unrelated.&lt;/p&gt;
&lt;h3 id=&quot;trust&quot; tabindex=&quot;-1&quot;&gt;Trust &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/principles-now/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Trust needs to be earned and is a glue to quality relationships.&lt;/p&gt;
&lt;h3 id=&quot;warmth&quot; tabindex=&quot;-1&quot;&gt;Warmth &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/principles-now/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Antidote to negativity is warmth, not positivity. Positivity tells a sad person that there is no reason to be sad. Warmth asks the sad person if they want to go get some ice cream.&lt;/p&gt;
&lt;h3 id=&quot;healthy-self-competition&quot; tabindex=&quot;-1&quot;&gt;Healthy self-competition &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/principles-now/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;When you compete with someone else, you let their values define your goals and the perception of your own performance. Define your values, embrace growth mindset and set ambitious, exciting goals. Progress over success – celebrate incremental accomplishments and enjoy the journey.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Curated lists</title>
		<link href="https://trang.vu/notes/curated-lists/"/>
		<updated>2025-05-25T00:00:00Z</updated>
		<id>https://trang.vu/notes/curated-lists/</id>
		<content type="html">&lt;p&gt;This note contains few lists – of websites, films and sounds that I enjoy at the moment. The date of this note is the date of latest update as I make changes to it quite often.&lt;/p&gt;
&lt;h2 id=&quot;books&quot; tabindex=&quot;-1&quot;&gt;Books &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/curated-lists/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/18465526-a-sting-in-the-tale&quot;&gt;A Sting in the Tale&lt;/a&gt; by Dave Goulson – A deep insight into the crucial importance of the bumblebee&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/36423226-japan&quot;&gt;Japan: The Cookbook&lt;/a&gt; by Nancy Singleton Hachisu – Simple and elegant dishes with insightful notes&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;websites&quot; tabindex=&quot;-1&quot;&gt;Websites &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/curated-lists/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://worksinprogress.co/&quot;&gt;https://worksinprogress.co/&lt;/a&gt; – Both digital and printed magazine of new and underrated ideas to improve the world.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.growbyginkgo.com/&quot;&gt;https://www.growbyginkgo.com/&lt;/a&gt; – Digital and printed magazine on all things biology&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://nomaprojects.com/blogs/recipes&quot;&gt;https://nomaprojects.com/blogs/recipes&lt;/a&gt; – NOMA recipes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://nesslabs.com/best&quot;&gt;https://nesslabs.com/best&lt;/a&gt; – Posts about creativity, productivity, mental wellness&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.fromjason.xyz/&quot;&gt;https://www.fromjason.xyz/&lt;/a&gt; – Jason Velazquez and his digital garden&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://sansceuticals.com/journal/sustenance&quot;&gt;https://sansceuticals.com/journal/sustenance&lt;/a&gt; – Nourishment journal&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://atmos.earth/&quot;&gt;https://atmos.earth/&lt;/a&gt; – Climate and culture&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://www.tastysnacking.com/&quot;&gt;http://www.tastysnacking.com/&lt;/a&gt; – Snack reviews by Tiffany Tseng&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;films&quot; tabindex=&quot;-1&quot;&gt;Films &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/curated-lists/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_Taste_of_Tea&quot;&gt;The Taste of Tea (2004)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Jap%C3%B3n&quot;&gt;Japón (2002)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_World_(film)&quot;&gt;The World (2004)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Aquarius_(film)&quot;&gt;Aquarius (2016)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/All_About_Lily_Chou-Chou&quot;&gt;All About Lily Chou-Chou (2001)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Not_One_Less&quot;&gt;Not one less (1999)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sound&quot; tabindex=&quot;-1&quot;&gt;Sound &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/curated-lists/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://open.spotify.com/track/6Yy3QRfT2WsUXrdplVdt4h&quot;&gt;Hania Rani – Eden&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Birds singing in the forest&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://oklou.bandcamp.com/album/choke-enough&quot;&gt;Oklou – choke enough&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://soundcloud.com/seedlink_plus/tumy-sigh&quot;&gt;Tumy – Sigh&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://html.energy/podcast.html&quot;&gt;HTML energy podcast&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/4f5cf542-4221-475a-8458-47224bfaeb81.png.webp&quot; alt=&quot;Curation for the win. &quot;&gt;
  &lt;figcaption&gt;Curation for the win. &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I once made a promise to myself: to never stop going on the occasional “random quests”, both online and offline. There’s something exhilarating about an impromptu journey without a set destination, whether it’s wandering around the internet or heading to a local concert venue to support emerging artists.&lt;/p&gt;
&lt;p&gt;Rather than passively taking what’s handed to me, I choose to discover, research, and refine my tastes. It keeps life interesting and ensures I’m always learning something new.&lt;/p&gt;
&lt;p&gt;Here’s to the curation and to the curators.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Product design at Groupon</title>
		<link href="https://trang.vu/notes/product-design-at-groupon/"/>
		<updated>2025-02-03T00:00:00Z</updated>
		<id>https://trang.vu/notes/product-design-at-groupon/</id>
		<content type="html">&lt;p&gt;At Groupon, this is our designer community set of principles. I’ve put together these guidelines as a shared framework to ensure great collaboration with our stakeholders and smooth hand-offs to our development team. Think of them as our collective best practices to keep our work clear, structured, and accessible to everyone.&lt;/p&gt;
&lt;h2 id=&quot;clean-design-output&quot; tabindex=&quot;-1&quot;&gt;Clean design output &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;organized-files&quot; tabindex=&quot;-1&quot;&gt;Organized files &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Always keep your shared Figma files tidy and well-organized. While it’s okay to experiment in your personal archives, the versions you share with developers and stakeholders should be clean and structured.&lt;/p&gt;
&lt;h3 id=&quot;structure-and-clarity&quot; tabindex=&quot;-1&quot;&gt;Structure and Clarity &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use auto-layouts and sections to build a clear hierarchy in your designs. Keep your utility components (like patterns and content elements) separate from your actual design work.&lt;/p&gt;
&lt;h3 id=&quot;clear-naming-and-resources&quot; tabindex=&quot;-1&quot;&gt;Clear naming and resources &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Give your designs a concise, intuitive title and include links to relevant resources such as Asana, Jira, diagrams, or user testing sessions. This makes it easy for everyone to find context and additional details.&lt;/p&gt;
&lt;h3 id=&quot;context-through-video&quot; tabindex=&quot;-1&quot;&gt;Context through video &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;When your designs are nearly ready, consider recording a short Loom or video to walk through the context and your solution. Link this video directly to your Figma file for easy reference.&lt;/p&gt;
&lt;h3 id=&quot;thumbnail&quot; tabindex=&quot;-1&quot;&gt;Thumbnail &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Ensure that each Figma file includes a thumbnail cover. A well-crafted thumbnail not only adds a professional touch but also makes it easier for team members to quickly identify and reference your work.&lt;/p&gt;
&lt;h3 id=&quot;ensuring-the-right-access&quot; tabindex=&quot;-1&quot;&gt;Ensuring the right access &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Please ensure your Figma file is accessible to all relevant team members (ideally everyone at Groupon). Avoid keeping shared files in your Drafts. If an assigned developer doesn’t have a Dev seat or a PM lacks view rights, please make sure they get the necessary access. For access-related issues, you can use our dedicated Google Chat space called &lt;strong&gt;Figma Access&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;all-necessary-resolutions&quot; tabindex=&quot;-1&quot;&gt;All necessary resolutions &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Unless you&#39;ve agreed otherwise with your product manager, please prepare screens for:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mobile (Touch)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Desktop&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;App (Light)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;App (Dark)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;consider-special-cases&quot; tabindex=&quot;-1&quot;&gt;Consider special cases &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;loading-states&quot; tabindex=&quot;-1&quot;&gt;Loading states &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Provide skeletons or loaders.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include designs for when loading fails.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;error-states&quot; tabindex=&quot;-1&quot;&gt;Error states &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;User input handling and system errors.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A generic &amp;quot;Something went wrong&amp;quot; message is essential.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Where applicable, specify the error reason.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;missing-data-or-images&quot; tabindex=&quot;-1&quot;&gt;&lt;strong&gt;Missing data or images&lt;/strong&gt; &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Use placeholders for images or data that might not arrive from the backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;text-overflow&quot; tabindex=&quot;-1&quot;&gt;Text overflow &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;For texts that are too long, consider using truncation (e.g., ellipsis).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;dark-mode&quot; tabindex=&quot;-1&quot;&gt;Dark mode &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ensure your designs are compatible with dark mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;data-informed-decisions&quot; tabindex=&quot;-1&quot;&gt;Data-informed decisions &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Make design decisions grounded in data and aligned with our business objectives. For example, a new feature might potentially boost conversion rates by a certain percentage or streamline processes for agents, resulting in significant revenue savings. Use relevant data sources to guide your design choices, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Clarity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Google Analytics&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tableau&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;product-marketing&quot; tabindex=&quot;-1&quot;&gt;Product marketing &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Consider how the new feature will be communicated to our end users. Think about the various channels that might be used—whether it&#39;s through emails, push notifications, landing pages, modals, or in-app tours with cues. Additionally, prepare visuals that the content team can integrate into their communication strategy. This collaborative approach ensures that the feature is not only well-designed but also effectively marketed.&lt;/p&gt;
&lt;h2 id=&quot;implementation&quot; tabindex=&quot;-1&quot;&gt;Implementation &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Where applicable, prepare accompanying HTML and CSS examples in CodePen to showcase animations or interactive elements. This helps developers better understand the intended behavior and enriches the overall design narrative.&lt;/p&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/product-design-at-groupon/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By adhering to these guidelines, we maintain a high standard of clarity and efficiency in our design process at Groupon. This collaborative approach not only streamlines our workflow but also reinforces our commitment to quality and transparency. I’m excited to share this glimpse into our processes and hope it inspires others to adopt similar practices.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>The process of crafting a great tutorial</title>
		<link href="https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/"/>
		<updated>2024-11-14T00:00:00Z</updated>
		<id>https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/</id>
		<content type="html">&lt;p&gt;Effective knowledge sharing requires the right tools and a thoughtful process. Here’s how I approach creating tutorials, from drafting scripts to sharing polished videos.&lt;/p&gt;
&lt;p&gt;In this guide, I’ll walk you through my approach to creating tutorials using a specific example: &lt;strong&gt;How to Redeem Vouchers&lt;/strong&gt;, designed for Groupon Merchants.&lt;/p&gt;
&lt;h2 id=&quot;the-tools&quot; tabindex=&quot;-1&quot;&gt;The tools &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://claude.ai/&quot;&gt;Claude&lt;/a&gt; and &lt;a href=&quot;https://chatgpt.com/&quot;&gt;ChatGPT&lt;/a&gt; – for refining and perfecting the script.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.tella.tv/&quot;&gt;Tella&lt;/a&gt; – for recording desktop content and editing the source materials.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://nonstrict.eu/bezel/&quot;&gt;Bezel&lt;/a&gt; – for capturing mobile device screens.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ffmpeg.org/&quot;&gt;FFmpeg&lt;/a&gt; – for sound editing, including removing and merging audio tracks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://elevenlabs.io/&quot;&gt;Eleven Labs&lt;/a&gt; – for enhancing or changing voiceovers.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-process&quot; tabindex=&quot;-1&quot;&gt;The process &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Script&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Preparation&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Record, edit and download&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Post processing&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Share&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;script&quot; tabindex=&quot;-1&quot;&gt;Script &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;First, it is crucial to draft the script with the screenshots. For signing it off with stakeholders, the draft lives in a Google doc. Then have it proofread using an AI tool of your choice – I used a combination of &lt;a href=&quot;https://claude.ai/new&quot;&gt;Claude&lt;/a&gt; and &lt;a href=&quot;https://chatgpt.com/&quot;&gt;ChatGPT&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;preparation&quot; tabindex=&quot;-1&quot;&gt;Preparation &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Before recording, ensure all necessary accounts and materials are ready, with no sensitive data visible.&lt;/p&gt;
&lt;p&gt;For example, I prepared a Merchant Center account with a corresponding Customer account containing at least six available vouchers for redemption. Testing this setup in advance ensures a smooth recording process.&lt;/p&gt;
&lt;h3 id=&quot;record-edit-and-download&quot; tabindex=&quot;-1&quot;&gt;Record, edit and download &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Capture footage using &lt;a href=&quot;https://www.tella.tv/&quot;&gt;&lt;strong&gt;Tella&lt;/strong&gt;&lt;/a&gt; for desktop recordings and &lt;a href=&quot;https://nonstrict.eu/bezel/&quot;&gt;&lt;strong&gt;Bezel&lt;/strong&gt;&lt;/a&gt; for mirroring and recording mobile device screens.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tella&lt;/strong&gt; offers a flexible editing environment where you can trim, rearrange, or replace sections with ease.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For mobile recordings, &lt;strong&gt;Bezel&lt;/strong&gt; mirrors the device screen onto your computer, ensuring high-quality visuals.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2024-11-18_at_21.58.44.png.webp&quot; alt=&quot;Multiple recordings in Tella edit mode&quot;&gt;
  &lt;figcaption&gt;Multiple recordings in Tella edit mode&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;post-processing&quot; tabindex=&quot;-1&quot;&gt;Post processing &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Extract the original audio using &lt;strong&gt;FFmpeg&lt;/strong&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;ffmpeg &lt;span class=&quot;token parameter variable&quot;&gt;-i&lt;/span&gt; original_video.mp4 &lt;span class=&quot;token parameter variable&quot;&gt;-q:a&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-map&lt;/span&gt; a output_audio.mp3&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use &lt;a href=&quot;https://elevenlabs.io/&quot;&gt;Eleven Labs&lt;/a&gt; to replace the audio with a professional-quality voiceover. For instance, I prefer the River voice option.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/Screenshot_2024-11-14_at_10.22.04.png.webp&quot; alt=&quot;Eleven Labs voice changer&quot;&gt;
  &lt;figcaption&gt;Eleven Labs voice changer&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Upload the extracted audio, generate the new version, and save it as &lt;code&gt;main_audio.mp3&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Remove the original audio from the video:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;ffmpeg &lt;span class=&quot;token parameter variable&quot;&gt;-i&lt;/span&gt; original_video.mp4 &lt;span class=&quot;token parameter variable&quot;&gt;-an&lt;/span&gt; video_without_audio.mp4&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Combine the video with the new voiceover and background music (set the music volume to 2% for balance):&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;ffmpeg &lt;span class=&quot;token parameter variable&quot;&gt;-i&lt;/span&gt; video_without_audio.mp4 &lt;span class=&quot;token parameter variable&quot;&gt;-i&lt;/span&gt; main_audio.mp3 &lt;span class=&quot;token parameter variable&quot;&gt;-i&lt;/span&gt; background_music.mp3 &lt;span class=&quot;token parameter variable&quot;&gt;-filter_complex&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;[1:a]volume=1[a1];[2:a]volume=0.02[a2];[a1][a2]amix=inputs=2:duration=first[a]&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-map&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;:v &lt;span class=&quot;token parameter variable&quot;&gt;-map&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;[a]&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-c:v&lt;/span&gt; copy &lt;span class=&quot;token parameter variable&quot;&gt;-shortest&lt;/span&gt; output_video_with_audio_and_bg_music.mp4&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;share&quot; tabindex=&quot;-1&quot;&gt;Share &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Upload your polished tutorial to YouTube or your preferred platform and share it with your audience.&lt;/p&gt;
&lt;h2 id=&quot;guidelines-for-tutorial-design&quot; tabindex=&quot;-1&quot;&gt;Guidelines for tutorial design &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/the-process-of-crafting-a-great-tutorial/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To ensure a professional and visually appealing result:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use a gradient background for a polished aesthetic.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Keep the layout minimal and uncluttered.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use zoom effects to emphasize important details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add pleasant, non-intrusive background music to enhance the viewing experience.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here’s the output video:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.tella.tv/video/how-to-redeem-groupon-vouchers-1-6rpj&quot;&gt;https://www.tella.tv/video/how-to-redeem-groupon-vouchers-1-6rpj&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Creating tutorials can be a rewarding process, allowing you to share knowledge in an engaging and professional way. Happy creating.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>On (design) leadership</title>
		<link href="https://trang.vu/notes/on-design-leadership/"/>
		<updated>2024-09-25T00:00:00Z</updated>
		<id>https://trang.vu/notes/on-design-leadership/</id>
		<content type="html">&lt;p&gt;These are my personal notes on leadership that I would appreciate back when I was all new to the role of a leader. Hopefully, someone out there will find this insightful as well.&lt;/p&gt;
&lt;h2 id=&quot;how-it-all-started&quot; tabindex=&quot;-1&quot;&gt;How It All Started &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In the spring of 2021, I had the privilege of stepping into the role of Product Design Lead. During one of my one-on-one sessions with Honza Čurn, I expressed my ambition to transition from an individual contributor to a leader. With his trust and support, I embarked on the journey of building an in-house design team, starting by hiring our first Product Designer. Before we knew it, our team had grown to five talented designers.&lt;/p&gt;
&lt;p&gt;Given that leadership was a new frontier for me, I enrolled in a leadership workshop cohort provided by Femme Palette for female leaders. Additionally, I benefited from monthly mentorship sessions with Lusine Yeremyan, whose invaluable insights, lectures, and tips have been instrumental to my growth.&lt;/p&gt;
&lt;h3 id=&quot;tl-dr&quot; tabindex=&quot;-1&quot;&gt;TL;DR &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Here are the key takeaways I&#39;d like to share with fellow leaders, official or unofficial:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Listen&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Grow and nurture your team&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Learn business&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Communication is key&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lead by example&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Educate others in the company&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;listen&quot; tabindex=&quot;-1&quot;&gt;Listen &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Many people listen with the intent to reply rather than to understand. The most successful listeners are those who keenly observe body language, voice, and tone. A valuable piece of advice I received was to avoid saying, &amp;quot;I know exactly how you feel,&amp;quot; as it&#39;s often impossible to fully grasp the complexity of someone else&#39;s situation. Instead, focus on giving your full attention to the person speaking.&lt;/p&gt;
&lt;h2 id=&quot;grow-and-nurture-your-team&quot; tabindex=&quot;-1&quot;&gt;Grow and nurture your team &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Believing in your team&#39;s potential can significantly enhance their performance. If you, as a leader, have confidence in your team&#39;s capabilities, they are more likely to excel.&lt;/p&gt;
&lt;p&gt;An effective exercise is to list your team members and rank them based on their performance. Reflect on how you treat each person. Is your approach consistent? Do you provide equal opportunities and space for growth?&lt;/p&gt;
&lt;p&gt;As a leader, you share in both the successes and failures of your team.&lt;/p&gt;
&lt;h3 id=&quot;have-1-on-1-sessions&quot; tabindex=&quot;-1&quot;&gt;Have 1-on-1 Sessions &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;At the beginning of each month, I would post my available slots in a private Slack channel for team members to reserve their 1-on-1 sessions. During these meetings, we would discuss:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;What did you complete over past month?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What made you happy in the past month?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What did you not like about last month?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What are the blockers or where do you need my help?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Where do you see yourself in half a year/year/5 years?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;provide-a-clear-path-for-promotion&quot; tabindex=&quot;-1&quot;&gt;Provide a clear path for promotion &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Ideally in a format of rubric of skills or knowledge the member’s role needs to acquire. Call that a career ladder.&lt;/p&gt;
&lt;p&gt;It serves two things – folks have structure to fall into and can feel progress. But also those who want to chill, can chill.  When a designer asks for a promotion, I would go pull it out and say for example “To get a raise, you should first become an expert contributor to our design system.”&lt;/p&gt;
&lt;p&gt;Here’s an example of &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1FnpTF9kfRj9ZriQYATrLO9J0whroFMn6qGc18LdAuQY/edit?usp=sharing&quot;&gt;a Product Design rubric&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;keep-track-of-your-team-s-strengths-and-weaknesses&quot; tabindex=&quot;-1&quot;&gt;Keep Track of Your Team’s Strengths and Weaknesses &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I created and continually updated a spider chart for each team member, assessing their abilities in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Ability to learn quickly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;System Design&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Product Sense&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Frontend Development&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Visual Design&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mentoring&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;create-a-sense-of-belonging&quot; tabindex=&quot;-1&quot;&gt;Create a sense of belonging &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A great leader fosters a sense of belonging within the team. We held regular design sessions to discuss specific design-related topics, encouraging each designer to share their insights, opinions, and ideas.&lt;/p&gt;
&lt;h2 id=&quot;learn-business&quot; tabindex=&quot;-1&quot;&gt;Learn business &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It is crucial to learn the business and its politics: how the organization makes money, how designer roles contribute to that, and how to get others to see that.&lt;/p&gt;
&lt;p&gt;Part of why so many design-adjacent roles are struggling is because market conditions (e.g., higher interest rates, over-hiring during the pandemic, etc.) shifted emphasis from growth to profitability. If the role isn&#39;t seen to contribute to the bottom line, it won&#39;t be around long.&lt;/p&gt;
&lt;p&gt;Alas, many designers aren&#39;t used to thinking in these terms. I hear from many who seem to think that &#39;user centricity&#39; is self-evidently desirable. As a result, they can&#39;t make convincing business arguments for their role.&lt;/p&gt;
&lt;p&gt;Know how your team’s work impacts business metrics.&lt;/p&gt;
&lt;h2 id=&quot;communication-is-key&quot; tabindex=&quot;-1&quot;&gt;Communication is key &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Effective communication is essential, especially during times of uncertainty like the COVID-19 pandemic. Regular and transparent communication helps alleviate anxiety. It&#39;s important to react promptly and not wait for the perfect moment to address issues.&lt;/p&gt;
&lt;h2 id=&quot;lead-by-example&quot; tabindex=&quot;-1&quot;&gt;Lead by example &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Strive to be an exemplary designer, have confidence in your work, and avoid lousy outputs. Authenticity is crucial – over time, people will recognize if you are not genuine.&lt;/p&gt;
&lt;h2 id=&quot;educate-others-in-the-company&quot; tabindex=&quot;-1&quot;&gt;Educate others in the company &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/on-design-leadership/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Advocate for design&#39;s equal place alongside engineering and product development. Share your expertise on product design and research, and educate others within the company about these critical areas.&lt;/p&gt;
&lt;p&gt;I hope these insights will be helpful to someone out there in their leadership journey. Remember, leadership is not just a position but an ongoing commitment to personal and team growth.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Ideal work environment</title>
		<link href="https://trang.vu/notes/ideal-work-environment/"/>
		<updated>2024-08-15T00:00:00Z</updated>
		<id>https://trang.vu/notes/ideal-work-environment/</id>
		<content type="html">&lt;p&gt;This is the ideal setting/environment for me to work effectively as a product designer.&lt;/p&gt;
&lt;h3 id=&quot;build-with-the-end-users-in-mind&quot; tabindex=&quot;-1&quot;&gt;Build with the end users in mind &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/ideal-work-environment/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Implement continuous research, talk to the users on a regular basis and gather the insights.&lt;/p&gt;
&lt;h3 id=&quot;meaningful-direction&quot; tabindex=&quot;-1&quot;&gt;Meaningful direction &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/ideal-work-environment/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Remind the purpose of long term goals.&lt;/p&gt;
&lt;h3 id=&quot;aim-for-clarity&quot; tabindex=&quot;-1&quot;&gt;Aim for clarity &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/ideal-work-environment/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Make data-informed decisions, articulate ideas properly.&lt;/p&gt;
&lt;h3 id=&quot;decide-and-move-on&quot; tabindex=&quot;-1&quot;&gt;Decide and move on &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/ideal-work-environment/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;There isn&#39;t always a best answer. The important thing is to make a decision, and move on.&lt;/p&gt;
&lt;h3 id=&quot;measure-progress-with-actual-work&quot; tabindex=&quot;-1&quot;&gt;Measure progress with actual work &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/ideal-work-environment/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create small scoped tasks where you can show a diff in a design/code file.&lt;/p&gt;
&lt;h3 id=&quot;give-radically-candid-feedback-along-the-way&quot; tabindex=&quot;-1&quot;&gt;Give (radically candid) feedback along the way &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/ideal-work-environment/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;There should be a possibility to give radically candid feedback anytime. We can hop on a 1on1 call/chat anytime.&lt;/p&gt;
&lt;h3 id=&quot;make-a-space-for-cross-functional-teams&quot; tabindex=&quot;-1&quot;&gt;Make a space for cross-functional teams &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/ideal-work-environment/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Ping-pong between designer and developer and have enough autonomy/accountability.&lt;/p&gt;
&lt;h3 id=&quot;look-back-and-celebrate&quot; tabindex=&quot;-1&quot;&gt;Look back and celebrate &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/ideal-work-environment/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Crucial to keep the team motivated.&lt;/p&gt;
&lt;h3 id=&quot;context-consistency&quot; tabindex=&quot;-1&quot;&gt;Context &amp;gt; consistency &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/ideal-work-environment/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;When it comes to design, I think designing around the current context is better than designing to satisfy prior consistency.&lt;/p&gt;
&lt;p&gt;So, these are the main points that come to my mind. Most of them are must-haves and I will challenge the status quo when the work setting lacks any of these.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Calm rules</title>
		<link href="https://trang.vu/notes/calm-rules/"/>
		<updated>2024-06-30T00:00:00Z</updated>
		<id>https://trang.vu/notes/calm-rules/</id>
		<content type="html">&lt;p&gt;Growing up in a small town in a house with a garden ingrained in me a deep appreciation for the sounds of nature and calmness.&lt;/p&gt;
&lt;p&gt;Now I live in downtown Prague, which is tremendously noisy. Noise pollution is everywhere, from roadworks and tourist groups yelling their drunken anthems to cars and motorbikes vrooming under my windows. At some point, I had to protect my hearing to stay serene in the midst of tumultuous life.&lt;/p&gt;
&lt;h2 id=&quot;nature&quot; tabindex=&quot;-1&quot;&gt;Nature &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/calm-rules/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Regular ventures into nature are crucial to me. I take trips by train, on foot, or by bike, ideally near a lively body of water such as a stream, spring, or lake, as I love the gurgling sounds of water. Spring is lovely, with an abundance of bird chirping. If I don’t have the option to escape the city, I compensate by visiting a nearby university botanical garden (which offers free entrance to all open areas) with my camera and a book, and I relax there for at least two hours.&lt;/p&gt;
&lt;h2 id=&quot;earplugs-to-the-rescue&quot; tabindex=&quot;-1&quot;&gt;Earplugs to the rescue &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/calm-rules/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Earplugs help a lot. My quality of life has increased exponentially thanks to these little gems made of silicone. I put them on whenever I need to take public transport. Let me tell you, there’s a lot of buzz in shared spaces. It’s relieving to filter out unnecessary noise – especially negative remarks from bitter folks.&lt;/p&gt;
&lt;p&gt;I also keep a pair or two at my workplace by my desk. The daily average number of people who curse in our room is three. I mean, it’s good to let your frustration out, but hey, I need to focus on my work. So if you need to talk to me, wave.&lt;/p&gt;
&lt;p&gt;I like to think of earplugs as masks for ear canals.&lt;/p&gt;
&lt;h2 id=&quot;balance&quot; tabindex=&quot;-1&quot;&gt;Balance &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/calm-rules/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Of course, there is a time and a place for excitement, euphoria, joy, and even nervous anticipation. But living at the extremes of emotion for an extended period is exhausting. Layering extreme emotions over daily stress and uncertainty equals chaos.&lt;/p&gt;
&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/calm-rules/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I seek simplicity and serenity whenever I can. Calmness is a welcome tonic that brings me back into balance, offering clarity, serenity, and quiet genius.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>A tool for tracking habits</title>
		<link href="https://trang.vu/notes/a-tool-for-tracking-habits/"/>
		<updated>2024-02-21T00:00:00Z</updated>
		<id>https://trang.vu/notes/a-tool-for-tracking-habits/</id>
		<content type="html">&lt;p&gt;Ever tried tracking a habit and found yourself overwhelmed by complicated features or social pressure? That was my experience with most habit-tracking apps. I simply wanted an easy way to log everyday habits without feeling compelled to compete or share progress. Privacy often feels neglected in these apps, and many are either too intense or revolve around unwanted leaderboards.&lt;/p&gt;
&lt;p&gt;That realization led me to design my own habit tracker. As someone who enjoys working in Figma, I saw an opportunity to create a tool that truly fit my needs and preferences.&lt;/p&gt;
&lt;h2 id=&quot;the-mission&quot; tabindex=&quot;-1&quot;&gt;The mission &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tool-for-tracking-habits/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;My primary goal was a minimal, calming layout without icons or flashy charts. Instead, I opted for a clean grid with space for notes, sketches, or any other thoughts. More of a gentle reminder than a strict monitoring system.&lt;/p&gt;
&lt;p&gt;It also had to be printable. There’s a certain satisfaction in physically marking progress on paper that digital tools simply can’t replicate.&lt;/p&gt;
&lt;h2 id=&quot;the-process&quot; tabindex=&quot;-1&quot;&gt;The process &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tool-for-tracking-habits/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;research-the-field&quot; tabindex=&quot;-1&quot;&gt;Research the field &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tool-for-tracking-habits/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Before diving into the design, I explored various habit trackers, from digital apps to printable versions on Pinterest and Etsy. Many felt either too rigid or overly decorative, which reinforced my decision to create something understated and flexible.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/habit_tracker_inspiration.png.webp&quot; alt=&quot;Various trackers found on Pinterest, Etsy, websites and local paper shops&quot;&gt;
  &lt;figcaption&gt;Various trackers found on Pinterest, Etsy, websites and local paper shops&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;keep-it-simple&quot; tabindex=&quot;-1&quot;&gt;Keep it simple &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tool-for-tracking-habits/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I began in Figma with a basic grid layout, purposefully avoiding icons and elaborate design elements. The aim was to maintain a sense of openness so that anyone using it could annotate or draw freely without feeling cramped.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/6524e841-20c5-4b49-b8e4-86a728fe7bcc.png.webp&quot; alt=&quot;A screenshot from Figma design file&quot;&gt;
  &lt;figcaption&gt;A screenshot from Figma design file&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;add-a-personal-touch&quot; tabindex=&quot;-1&quot;&gt;Add a personal touch &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tool-for-tracking-habits/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;To make it warm but not too cutesy, I played with soft typography and a gentle layout. Each section has breathing room, nothing cramped or overwhelming. The design whispers: &amp;quot;Take your time, this is for you.”&lt;/p&gt;
&lt;h3 id=&quot;test-for-print&quot; tabindex=&quot;-1&quot;&gt;Test for print &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tool-for-tracking-habits/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I tested the layout on different paper types to confirm print quality and usability. The final version is printer-friendly, suitable for slipping into a notebook or displaying on a fridge.&lt;/p&gt;
&lt;h2 id=&quot;the-output&quot; tabindex=&quot;-1&quot;&gt;The output &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tool-for-tracking-habits/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Now I have this habit tracker that feels personal, peaceful, and refreshingly analog. It’s just a grid, some space for notes or doodles, and the flexibility to track whatever I want without judgment. No apps. No notifications. No guilt. Just pen, paper, and a gentle way to check in with myself.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/A6.png.webp&quot; alt=&quot;Habit tracker for print&quot;&gt;
  &lt;figcaption&gt;Habit tracker for print&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;why-it-works-for-me&quot; tabindex=&quot;-1&quot;&gt;Why it works (for me) &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/a-tool-for-tracking-habits/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This tracker is all about keeping things minimal but meaningful. It’s private, adaptable, and, most importantly, warm. The blank spaces invite creativity whether that’s doodling, jotting down reflections, or brainstorming new habits. It’s become a little ritual I genuinely look forward to.&lt;/p&gt;
&lt;p&gt;So, if apps feel too loud for you too, maybe a DIY habit tracker is worth a shot. Mine has made such a difference, and if it inspires you to create your own that’s even better. Because the best tools are the ones that make you smile when you use them.&lt;/p&gt;
&lt;figure class=&quot;full-bleed&quot;&gt;
  &lt;img src=&quot;https://trang.vu/images/How_to_use.png.webp&quot; alt=&quot;How I use the habit tracker&quot;&gt;
  &lt;figcaption&gt;How I use the habit tracker&lt;/figcaption&gt;
&lt;/figure&gt;
</content>
	</entry>
	
	<entry>
		<title>Qualities of a seasoned product designer</title>
		<link href="https://trang.vu/notes/qualities-of-a-seasoned-product-designer/"/>
		<updated>2024-01-24T00:00:00Z</updated>
		<id>https://trang.vu/notes/qualities-of-a-seasoned-product-designer/</id>
		<content type="html">&lt;p&gt;When I was hiring for Product Designer roles, I checked if they had these qualities.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Critical thinking&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Systems thinking&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creative problem solving&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Storytelling&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Research&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Craft&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Collaboration and communication&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;critical-thinking&quot; tabindex=&quot;-1&quot;&gt;Critical thinking &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/qualities-of-a-seasoned-product-designer/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The ability to articulate the hypothesis in a given design, feature, or direction.&lt;/p&gt;
&lt;h2 id=&quot;system-thinking&quot; tabindex=&quot;-1&quot;&gt;System thinking &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/qualities-of-a-seasoned-product-designer/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The ability to frame the problem from multiple perspectives, the ability to see how data from interaction can scale and map to the bigger data story, the ability to make sense of user intent, workflows and mental models in the architecture of the experience.&lt;/p&gt;
&lt;h2 id=&quot;creative-problem-solving&quot; tabindex=&quot;-1&quot;&gt;Creative problem solving &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/qualities-of-a-seasoned-product-designer/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Good problem solvers tend to exercise divergent thinking by looking at the problem from every angle.&lt;/p&gt;
&lt;h2 id=&quot;storytelling&quot; tabindex=&quot;-1&quot;&gt;Storytelling &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/qualities-of-a-seasoned-product-designer/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The ability to persuade, educate, or explain by distilling complex concepts into a narrative that others will remember or understand.&lt;/p&gt;
&lt;h2 id=&quot;research&quot; tabindex=&quot;-1&quot;&gt;Research &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/qualities-of-a-seasoned-product-designer/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Someone who thinks like a researcher and have conducted behavioral research.&lt;/p&gt;
&lt;h2 id=&quot;craft&quot; tabindex=&quot;-1&quot;&gt;Craft &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/qualities-of-a-seasoned-product-designer/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To me craft is expected. A designer must have a certain level of craft and all the things that goes with it such as understanding design patterns, prototyping, etc.&lt;/p&gt;
&lt;h2 id=&quot;collaboration-and-communication&quot; tabindex=&quot;-1&quot;&gt;Collaboration and communication &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/qualities-of-a-seasoned-product-designer/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Someone who can ideate to extend the thinking of engineers and data scientists. Someone who is a trusted ambassador for the team. Humility is important.&lt;/p&gt;
&lt;h2 id=&quot;p-s&quot; tabindex=&quot;-1&quot;&gt;P.S. &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/qualities-of-a-seasoned-product-designer/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Of course, all of these qualities apply in ideal state. If the specific candidate for product designer role was lacking in some of them during the hiring process but had the potential to improve, I made sure they had the time and resources to learn in the particular areas (if they were hired).&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Handy code snippets and files</title>
		<link href="https://trang.vu/notes/handy-code-snippets-and-files/"/>
		<updated>2023-09-16T00:00:00Z</updated>
		<id>https://trang.vu/notes/handy-code-snippets-and-files/</id>
		<content type="html">&lt;h2 id=&quot;trang-s-profile-picture&quot; tabindex=&quot;-1&quot;&gt;Trang’s profile picture &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/handy-code-snippets-and-files/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;a class=&quot;file-download&quot; href=&quot;https://trang.vu/files/39d8d0a55f27803789cdee2e2f710cdc-trang-vu-profile-picture.JPEG.jpeg&quot; download=&quot;trang-vu-profile-picture.JPEG.jpeg&quot;&gt;
  &lt;svg class=&quot;file-download-icon&quot; width=&quot;20&quot; height=&quot;20&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.6&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
    &lt;path d=&quot;M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;M14 3v5h5&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;M12 17.5v-5&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m9.5 14.5 2.5-2.5 2.5 2.5&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;
  &lt;span class=&quot;file-download-name&quot;&gt;trang-vu-profile-picture.JPEG.jpeg&lt;/span&gt;
  &lt;span class=&quot;file-download-size&quot;&gt;470 KiB&lt;/span&gt;
&lt;/a&gt;
&lt;h2 id=&quot;sleep-on-mac&quot; tabindex=&quot;-1&quot;&gt;Sleep on Mac &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/handy-code-snippets-and-files/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Disable sleeping when the lid is closed running on battery&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; pmset &lt;span class=&quot;token parameter variable&quot;&gt;-b&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; pmset &lt;span class=&quot;token parameter variable&quot;&gt;-b&lt;/span&gt; disablesleep &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Re-enable sleeping when the lid is closed running on battery&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; pmset &lt;span class=&quot;token parameter variable&quot;&gt;-b&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; pmset &lt;span class=&quot;token parameter variable&quot;&gt;-b&lt;/span&gt; disablesleep &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;hidden-files-in-finder&quot; tabindex=&quot;-1&quot;&gt;Hidden files in Finder &lt;a class=&quot;header-anchor&quot; href=&quot;https://trang.vu/notes/handy-code-snippets-and-files/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Show hidden files&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;defaults &lt;span class=&quot;token function&quot;&gt;write&lt;/span&gt; com.apple.finder AppleShowAllFiles TRUE&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;killall&lt;/span&gt; Finder&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hide hidden files&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;defaults &lt;span class=&quot;token function&quot;&gt;write&lt;/span&gt; com.apple.finder AppleShowAllFiles FALSE&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;killall&lt;/span&gt; Finder&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
</feed>
