[{"data":1,"prerenderedAt":460},["ShallowReactive",2],{"content-query-94Qe5hJs61":3},[4,135,235,350],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"date":11,"body":12,"_type":129,"_id":130,"_source":131,"_file":132,"_stem":133,"_extension":134},"/thoughts/a-reminder-of-mindset-ethic","thoughts",false,"","a reminder of mindset ethic","Watching Lewis Hamilton recently speaking so openly about his doubts this season, someone who for me embodied the growth mindset¹ so fully, really struck me.","2025-08-06",{"type":13,"children":14,"toc":124},"root",[15,32,37,42,49,54,59,64,69,74,79,84,89,94,98,103,107,114],{"type":16,"tag":17,"props":18,"children":19},"element","p",{},[20,23,30],{"type":21,"value":22},"text","Watching Lewis Hamilton recently speaking so openly about his doubts this season, someone who for me embodied the ",{"type":16,"tag":24,"props":25,"children":27},"a",{"href":26},"#fixed-vs-growth-mindset",[28],{"type":21,"value":29},"growth mindset¹",{"type":21,"value":31}," so fully, really struck me.",{"type":16,"tag":17,"props":33,"children":34},{},[35],{"type":21,"value":36},"It reminded me of something important: this mindset isn’t something you achieve once and then tick off the list. It’s not a fixed trait. It needs to be maintained + sharpened + protected, especially during hard times.",{"type":16,"tag":17,"props":38,"children":39},{},[40],{"type":21,"value":41},"And right now, I’m in one of these seasons. but what’s different this time: I’m also a new parent.",{"type":16,"tag":43,"props":44,"children":46},"h3",{"id":45},"you-are-a-dad-now",[47],{"type":21,"value":48},"You are a dad now",{"type":16,"tag":17,"props":50,"children":51},{},[52],{"type":21,"value":53},"Becoming the father of a beautiful baby boy has changed how I think. While he is still in that magical phase of smiling, discovering his hands, and drooling with pride, I keep asking myself: How do I raise him to become someone who faces life’s inevitable challenges with courage, resilience, and curiosity?",{"type":16,"tag":17,"props":55,"children":56},{},[57],{"type":21,"value":58},"Discussing this, my wife and I landed on a simple but powerful truth: Kids mostly copy their parents. Not our advices. Not our lectures. Just… us.",{"type":16,"tag":17,"props":60,"children":61},{},[62],{"type":21,"value":63},"Even though he’s too young to understand any of what I’m going through, the way I show up today could quietly shape the way Nolan will one day face his own challenges.",{"type":16,"tag":17,"props":65,"children":66},{},[67],{"type":21,"value":68},"That idea alone changes how I want to move through this moment.",{"type":16,"tag":17,"props":70,"children":71},{},[72],{"type":21,"value":73},"--",{"type":16,"tag":17,"props":75,"children":76},{},[77],{"type":21,"value":78},"In engineering, the growth mindset is core to how we build. You test. You fail. You learn. You try again. It is iteration ] not instant success [ that gets us there.",{"type":16,"tag":17,"props":80,"children":81},{},[82],{"type":21,"value":83},"Nothing is finite.",{"type":16,"tag":17,"props":85,"children":86},{},[87],{"type":21,"value":88},"Nothing is failure if you’re still learning.",{"type":16,"tag":17,"props":90,"children":91},{},[92],{"type":21,"value":93},"Everything is fuel.",{"type":16,"tag":17,"props":95,"children":96},{},[97],{"type":21,"value":73},{"type":16,"tag":17,"props":99,"children":100},{},[101],{"type":21,"value":102},"So yes, this post is a reminder to myself, But maybe it’s one you needed too. Whatever you're going through, how you respond today might shape more than just your own path. It might be the blueprint someone else follows one day.",{"type":16,"tag":104,"props":105,"children":106},"hr",{},[],{"type":16,"tag":17,"props":108,"children":109},{},[110],{"type":16,"tag":24,"props":111,"children":113},{"id":112},"fixed-vs-growth-mindset",[],{"type":16,"tag":115,"props":116,"children":117},"ol",{},[118],{"type":16,"tag":119,"props":120,"children":121},"li",{},[122],{"type":21,"value":123},"In her book Mindset: The New Psychology of Success, Carol Dweck breaks down the difference between a fixed mindset (believing our abilities are static) and a growth mindset (believing we can develop through effort, learning, and persistence).",{"title":8,"searchDepth":125,"depth":125,"links":126},2,[127],{"id":45,"depth":128,"text":48},3,"markdown","content:thoughts:a-reminder-of-mindset-ethic.md","content","thoughts/a-reminder-of-mindset-ethic.md","thoughts/a-reminder-of-mindset-ethic","md",{"_path":136,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":137,"description":138,"date":139,"body":140,"_type":129,"_id":232,"_source":131,"_file":233,"_stem":234,"_extension":134},"/thoughts/eating-its-own-dog-food","eating it's own dog food","\"Eating your own dog food,\" a phrase that vividly captures the practice of using one's own products, is a cornerstone philosophy in the world of product development. This concept goes beyond mere quality assurance; it's about empathy, understanding, and genuine experience. It's a practice that not only improves the product but also aligns the team with the users they serve. As someone who has seen this practice in action, I can attest to its transformative power.","2023-10-12",{"type":13,"children":141,"toc":225},[142,146,151,157,162,168,173,178,184,189,194,200,205,211,216,220],{"type":16,"tag":17,"props":143,"children":144},{},[145],{"type":21,"value":138},{"type":16,"tag":17,"props":147,"children":148},{},[149],{"type":21,"value":150},"At the end of the day, the best possible QA is using it's own product, as often as possible. As stated by X in Lenny's interview, we are your most important user, we have to be delighted first.",{"type":16,"tag":43,"props":152,"children":154},{"id":153},"empathy-through-experience",[155],{"type":21,"value":156},"Empathy Through Experience",{"type":16,"tag":17,"props":158,"children":159},{},[160],{"type":21,"value":161},"Using our own product is the most direct way to understand the user experience. It goes beyond hypothetical scenarios or abstract user personas. When we use our product daily, we encounter the joys and frustrations of our users firsthand. This experience fosters a deep empathy for the user, driving improvements that are grounded in real needs and desires.",{"type":16,"tag":43,"props":163,"children":165},{"id":164},"quality-assurance-at-its-best",[166],{"type":21,"value":167},"Quality Assurance at Its Best",{"type":16,"tag":17,"props":169,"children":170},{},[171],{"type":21,"value":172},"Traditional quality assurance (QA) methods, like testing and bug tracking, are essential, but they can't capture the full user experience. Using our own product uncovers issues that might never be found in a test environment. It reveals the small, nuanced pain points that our users might face, which might otherwise go unnoticed. Note that I always felt that the silent ones are the most important, sometimes users won't complain about something, they will just stop using the product. The latter highlights the importance of making a feedback engine as seamless as possible for users, covered here.",{"type":16,"tag":17,"props":174,"children":175},{},[176],{"type":21,"value":177},"When an entire company, from engineers to marketers, uses the product, it creates a unified understanding of what the product is and what it needs to be. This alignment is crucial in making coherent and user-centric decisions. It's about ensuring that every feature, every update, aligns with the actual use case of the product.",{"type":16,"tag":43,"props":179,"children":181},{"id":180},"continuous-feedback-loop",[182],{"type":21,"value":183},"Continuous Feedback Loop",{"type":16,"tag":17,"props":185,"children":186},{},[187],{"type":21,"value":188},"As team members use the product, they generate ideas, identify issues, and suggest improvements. This ongoing process ensures that the product is always evolving, always improving. This is a proactive approach to development, where feedback is not just solicited but is an integral part of the daily workflow.",{"type":16,"tag":17,"props":190,"children":191},{},[192],{"type":21,"value":193},"Regular use of your own product can spark innovation. It's not just about fixing what's broken; it's about imagining what it could be. By experiencing the product as a user, team members can identify opportunities for new features or entirely new ways of solving problems.",{"type":16,"tag":43,"props":195,"children":197},{"id":196},"building-trust-and-credibility",[198],{"type":21,"value":199},"Building Trust and Credibility",{"type":16,"tag":17,"props":201,"children":202},{},[203],{"type":21,"value":204},"When a company uses its own product, it sends a powerful message to its users. It shows confidence in the product's quality and utility. This practice builds trust and credibility, demonstrating to users that the company stands firmly behind what it creates.",{"type":16,"tag":43,"props":206,"children":208},{"id":207},"challenges-and-considerations",[209],{"type":21,"value":210},"Challenges and Considerations",{"type":16,"tag":17,"props":212,"children":213},{},[214],{"type":21,"value":215},"However, eating your own dog food is not without its challenges. It requires a company culture that values feedback and is open to change. There needs to be a system in place to capture and prioritize feedback from internal use. Moreover, it's important to recognize that while internal use is invaluable, it's not a substitute for external user feedback. The internal team's perspective can be biased, and it's crucial to balance this with insights from a diverse range of users.",{"type":16,"tag":17,"props":217,"children":218},{},[219],{"type":21,"value":73},{"type":16,"tag":17,"props":221,"children":222},{},[223],{"type":21,"value":224},"Eating your own dog food is more than a practice; it's a philosophy. It's about creating products with empathy and insight, fostering a culture of continuous improvement, and building a deep, authentic connection with your users. As someone who has embraced this philosophy, I can affirm that the best way to understand and improve your product is to become your most important user. Delight in your product should start with you.",{"title":8,"searchDepth":125,"depth":125,"links":226},[227,228,229,230,231],{"id":153,"depth":128,"text":156},{"id":164,"depth":128,"text":167},{"id":180,"depth":128,"text":183},{"id":196,"depth":128,"text":199},{"id":207,"depth":128,"text":210},"content:thoughts:eating-its-own-dog-food.md","thoughts/eating-its-own-dog-food.md","thoughts/eating-its-own-dog-food",{"_path":236,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":237,"description":238,"date":239,"body":240,"_type":129,"_id":347,"_source":131,"_file":348,"_stem":349,"_extension":134},"/thoughts/on-design-system","on design system","creating and maintaining a design system, especially in the dynamic environment of an early-stage company, presents a unique set of challenges and opportunities. Over the years, my perspective on the role and implementation of design systems has evolved, shaped by the rapidly changing landscapes of both design and technology.","2023-08-04",{"type":13,"children":241,"toc":340},[242,246,252,257,262,268,273,278,284,289,294,300,305,310,316,321,326,330,335],{"type":16,"tag":17,"props":243,"children":244},{},[245],{"type":21,"value":238},{"type":16,"tag":43,"props":247,"children":249},{"id":248},"early-stage-challenges",[250],{"type":21,"value":251},"early stage Challenges",{"type":16,"tag":17,"props":253,"children":254},{},[255],{"type":21,"value":256},"in the early stages of a company, the product is in a state of flux, constantly evolving as it responds to user feedback, market demands, and the company's own learning curve. implementing a design system in this scenario is akin to trying to build the tracks in front of a moving train. the effort to standardize components, colors, and typography often runs into the reality of a product that is still finding its feet.",{"type":16,"tag":17,"props":258,"children":259},{},[260],{"type":21,"value":261},"Yet, the allure of a design system is strong. It promises consistency, efficiency, and a coherent user experience. The challenge is in balancing these long-term benefits with the short-term realities of a rapidly changing product.",{"type":16,"tag":43,"props":263,"children":265},{"id":264},"the-role-of-primitives",[266],{"type":21,"value":267},"The Role of Primitives",{"type":16,"tag":17,"props":269,"children":270},{},[271],{"type":21,"value":272},"One approach I've found effective is focusing on primitives in the early stages. These are the most basic building blocks of a design, such as color palettes, typography, and basic button styles. By standardizing these elements, a foundation is laid that can scale with the product. This approach is particularly beneficial for designers, allowing them to create new designs quickly and consistently.",{"type":16,"tag":17,"props":274,"children":275},{},[276],{"type":21,"value":277},"However, the impact on engineering can be quite different. While designers benefit from a library of visual primitives, engineers need a system that goes beyond the surface. Code architecture, component libraries, and scalability are paramount. In essence, while designers need a visual language, engineers require a structural one.",{"type":16,"tag":43,"props":279,"children":281},{"id":280},"the-engineering-perspective",[282],{"type":21,"value":283},"The Engineering Perspective",{"type":16,"tag":17,"props":285,"children":286},{},[287],{"type":21,"value":288},"From an engineering standpoint, the challenge lies in creating a system that is flexible enough to accommodate change, yet structured enough to provide consistency. This often involves building a component library that is modular and easily extensible.",{"type":16,"tag":17,"props":290,"children":291},{},[292],{"type":21,"value":293},"In early-stage companies, where product features might be added, removed, or significantly altered on a regular basis, this modular approach is vital. It allows engineers to rapidly adapt to changes without having to overhaul the entire system.",{"type":16,"tag":43,"props":295,"children":297},{"id":296},"semantic-design-systems",[298],{"type":21,"value":299},"Semantic Design Systems",{"type":16,"tag":17,"props":301,"children":302},{},[303],{"type":21,"value":304},"The concept of a semantic design system, resonates deeply with this experience. A semantic design system goes beyond the visual elements to encapsulate the meaning and function of components. It's about understanding the 'why' behind a button's color or a form's layout, not just the 'how'.",{"type":16,"tag":17,"props":306,"children":307},{},[308],{"type":21,"value":309},"This approach is particularly powerful in a fast-paced, early-stage environment. It allows teams to make informed decisions about changes, understanding the impact on the overall user experience, not just the visual consistency.",{"type":16,"tag":43,"props":311,"children":313},{"id":312},"collaboration-is-key",[314],{"type":21,"value":315},"Collaboration is Key",{"type":16,"tag":17,"props":317,"children":318},{},[319],{"type":21,"value":320},"One of the biggest lessons learned is the importance of collaboration in developing and maintaining a design system. It can't be the sole domain of either designers or engineers. Instead, it requires a cross-functional effort, with ongoing communication and understanding of each other's challenges and needs.",{"type":16,"tag":17,"props":322,"children":323},{},[324],{"type":21,"value":325},"Regular reviews, shared documentation, and collaborative tooling, like Figma and Linear, play a crucial role in this. They help bridge the gap between design and development, ensuring that the system remains relevant and useful for all.",{"type":16,"tag":17,"props":327,"children":328},{},[329],{"type":21,"value":73},{"type":16,"tag":17,"props":331,"children":332},{},[333],{"type":21,"value":334},"While design systems in early-stage companies face unique challenges, they also offer significant opportunities. By focusing on the fundamentals, adopting a modular and semantic approach, and fostering collaboration between designers and engineers, these systems can evolve to become a cornerstone of the product development process.",{"type":16,"tag":17,"props":336,"children":337},{},[338],{"type":21,"value":339},"It's clear that the journey of a design system is as much about the culture and processes of the team as it is about the specific design elements. It's a journey of continuous learning, adaptation, and collaboration, driving towards the ultimate goal of creating products that are not just visually appealing but also intuitive, efficient, and delightful to use.",{"title":8,"searchDepth":125,"depth":125,"links":341},[342,343,344,345,346],{"id":248,"depth":128,"text":251},{"id":264,"depth":128,"text":267},{"id":280,"depth":128,"text":283},{"id":296,"depth":128,"text":299},{"id":312,"depth":128,"text":315},"content:thoughts:on-design-system.md","thoughts/on-design-system.md","thoughts/on-design-system",{"_path":351,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":352,"description":353,"date":354,"body":355,"_type":129,"_id":457,"_source":131,"_file":458,"_stem":459,"_extension":134},"/thoughts/product-design-and-code","product, design and code","\"Product, Design and Code\" – these three elements form the fundamental triad in the creation of digital products. My journey through various roles and organizations has led me to a pivotal realization: while tools like Figma and design methodologies are crucial, the ultimate source of truth in product development is the code. This is because what users interact with daily is not the design mockups or prototypes, but the actual coded product. This understanding becomes even more critical in an early-stage environment, where agility and efficiency are paramount.","2023-02-18",{"type":13,"children":356,"toc":452},[357,361,367,372,377,383,388,432,438,443,447],{"type":16,"tag":17,"props":358,"children":359},{},[360],{"type":21,"value":353},{"type":16,"tag":43,"props":362,"children":364},{"id":363},"bridging-design-and-development",[365],{"type":21,"value":366},"Bridging Design and Development",{"type":16,"tag":17,"props":368,"children":369},{},[370],{"type":21,"value":371},"The code is what lives and breathes in the user's world. It's what they interact with, what shapes their experience, and what ultimately determines the success of a product. The challenge, then, is to bridge the gap between design and development in a way that respects both disciplines while acknowledging the primacy of code. In an early-stage company, where resources are limited and the product is evolving rapidly, this bridge is not just a convenience; it's a necessity.",{"type":16,"tag":17,"props":373,"children":374},{},[375],{"type":21,"value":376},"One effective approach is to use the actual product screens – essentially screenshots of user-facing elements – as a starting point for design updates or new features. This method ensures that design decisions are grounded in the reality of what users are currently experiencing.",{"type":16,"tag":43,"props":378,"children":380},{"id":379},"production-driven-design-process",[381],{"type":21,"value":382},"Production-Driven Design Process",{"type":16,"tag":17,"props":384,"children":385},{},[386],{"type":21,"value":387},"This production-driven design process starts with capturing parts of the existing product that need improvement or expansion. These screenshots then serve as the base for design iterations. Designers work directly on these images, proposing changes or additions. This approach has several advantages:",{"type":16,"tag":115,"props":389,"children":390},{},[391,402,412,422],{"type":16,"tag":119,"props":392,"children":393},{},[394,400],{"type":16,"tag":395,"props":396,"children":397},"strong",{},[398],{"type":21,"value":399},"Realistic Context",{"type":21,"value":401},": Designers are working with the actual interface elements that users see, ensuring that proposals are grounded in reality.",{"type":16,"tag":119,"props":403,"children":404},{},[405,410],{"type":16,"tag":395,"props":406,"children":407},{},[408],{"type":21,"value":409},"Efficient Communication",{"type":21,"value":411},": When designers and developers discuss changes based on the actual product screens, there's less room for misinterpretation. It bridges the often-encountered gap between how something is envisioned in a design tool and how it's implemented in code.",{"type":16,"tag":119,"props":413,"children":414},{},[415,420],{"type":16,"tag":395,"props":416,"children":417},{},[418],{"type":21,"value":419},"Rapid Iteration",{"type":21,"value":421},": In an early-stage environment, where changes need to be implemented quickly, this method allows for faster turnaround from design to development.",{"type":16,"tag":119,"props":423,"children":424},{},[425,430],{"type":16,"tag":395,"props":426,"children":427},{},[428],{"type":21,"value":429},"Focus on User Experience",{"type":21,"value":431},": By starting with the current user interface, the team continually focuses on improving the user experience, rather than getting caught up in abstract design concepts.",{"type":16,"tag":43,"props":433,"children":435},{"id":434},"the-evolving-role-of-design-tools",[436],{"type":21,"value":437},"The Evolving Role of Design Tools",{"type":16,"tag":17,"props":439,"children":440},{},[441],{"type":21,"value":442},"This approach doesn't diminish the role of design tools; instead, it repositions them. Tools like Figma become a part of a larger ecosystem centered around the code. They are used for what they excel at – facilitating creativity, collaboration, and communication – but always with an understanding that they are a step in the journey, not the destination.",{"type":16,"tag":17,"props":444,"children":445},{},[446],{"type":21,"value":73},{"type":16,"tag":17,"props":448,"children":449},{},[450],{"type":21,"value":451},"Design decisions are always aligned with the user's reality, fostering a product development process that is truly user-centric.",{"title":8,"searchDepth":125,"depth":125,"links":453},[454,455,456],{"id":363,"depth":128,"text":366},{"id":379,"depth":128,"text":382},{"id":434,"depth":128,"text":437},"content:thoughts:product-design-and-code.md","thoughts/product-design-and-code.md","thoughts/product-design-and-code",1778482406289]