<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss-styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>David Hoang — Writing — engineering</title><description>Writing tagged “engineering”. For notes, use /rss/notes.xml.</description><link>https://www.davidhoang.com</link><language>en-us</language><lastBuildDate>Sat, 14 Nov 2026 15:30:09 GMT</lastBuildDate><atom:link href="https://www.davidhoang.com/rss/tag/engineering.xml" rel="self" type="application/rss+xml"/><item><title>Design Engineering</title><link>https://www.davidhoang.com/writing/design-engineering</link><guid isPermaLink="true">https://www.davidhoang.com/writing/design-engineering/</guid><description>Thoughts on design engineering</description><pubDate>Thu, 21 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In software, engineering and design are infantile in existence compared to other sectors: mechanical, electrical, aerospace, and environmental engineering. Engineering encompasses a broad range of disciplines and involves critical thinking, creativity, problem-solving, and collaboration. Many engineering disciplines have a role called a Design Engineer—a title that has been more popular in software in recent years. Design Engineers tend to work on products and systems that involve adapting and using complex scientific and mathematical techniques. In essence, they work on highly technical challenges that require strong design consideration. Today, we’re seeing Design Engineers become a popular role in software, and this isn’t the first time new roles/practices emerged.&lt;/p&gt;
&lt;p&gt;In the early 2000s, the role of a Data Scientist became popular as data became increasingly abundant through the internet, social media, and digital technologies. Though the practice of statistics, analytics, and domain-specific knowledge existed before Data Science, companies like Facebook, Google, and Amazon were the pioneers leveraging data analytics to drive decision-making, improving user experiences, and growing the business. At the time, the practice was maturing in adoption and there was a shortage of talent who could do the role. Today it seems rare for any tech company to not have a Data Scientist.&lt;/p&gt;
&lt;p&gt;Data Science was transformative in tech in the 2010s. In the age of LLMs, multi-device interfaces, and everything seemingly being programming, Design Engineering will be the transformative practice in the 2020s.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/2024-03-design-engineering.webp&quot; alt=&quot;Diagram illustrating the intersection of design and engineering disciplines in modern software development&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Design Engineering is not simply a rebrand of product design. Whether we like it or not, tech has a tendency to consolidate roles. Interaction Designers, UX Designers, UI Designers, and Visual Designers became Product Designers. Graphic Designers, Illustrators, Communications Designers, and Marketing Designers became Brand Designers.&lt;/p&gt;
&lt;p&gt;To say Design Engineering is combining product design and front-end development dilutes the value the practice brings. Like a minestrone, the Arnold Palmer, or Cronut, Design Engineering is a true blend of two conventional roles. Design Engineers have deep knowledge in technological systems while scaling interface quality. They naturally fit in design crits or reviewing code with engineering.&lt;/p&gt;
&lt;h2&gt;Role, responsibility, and impact&lt;/h2&gt;
&lt;p&gt;There are three core areas Design Engineering is the top candidate for leading: product architecture, design infrastructure, and 0-1 R&amp;amp;D. These three areas do not encapsulate everything a Design Engineer might do, and the hope is to provide three concrete examples.&lt;/p&gt;
&lt;h3&gt;Product architecture&lt;/h3&gt;
&lt;p&gt;It makes sense for a Design Engineer, a role which balances technical systems and end user experiences, to be close to product architecture. In products that are authoring tools (Figma for design, Replit for code, Webflow for websites) it&apos;s important to think beyond isolated features but the foundational capabilities of what your product can do. Design Engineers have the right skills to explore aspects such as information architecture of a product and also understand the technical logic of how such things function.&lt;/p&gt;
&lt;h3&gt;Design infrastructure&lt;/h3&gt;
&lt;p&gt;Design Engineers are naturals at design infrastructure—the underlying tools and systems to scale design. This might be contributing to component libraries, building internal tools to increase efficiency, or prototyping new patterns and interactions to inform the future of their software.&lt;/p&gt;
&lt;p&gt;In many cases, Design Engineers are brought in to prototype experiences that otherwise would be nearly impossible in static mockups in Figma. When you’re dealing with an interaction with a Language Server Protocol (LSP) or a layout engine for a site builder, you have to build the prototype in code.&lt;/p&gt;
&lt;h3&gt;0-1 R&amp;amp;D&lt;/h3&gt;
&lt;p&gt;Exploring new product directions can be needed for an early-stage company needing to pivot in direction or an established company looking for new growth opportunities. These initiatives are usually not funded due to the perceived risk of pulling people off teams to do this unproven work. Due to the multidisciplinary skill sets of Design Engineers, they&apos;re able to explore this space much more quickly and effectively than other teams.&lt;/p&gt;
&lt;h2&gt;Org structure&lt;/h2&gt;
&lt;p&gt;My philosophy on org design is to optimize for the desired results, not the existing org chart. I’ve been at places where Design Engineers reported to me (Design) and others where they report to Engineering. For the sake of Design Engineers, it&apos;s important to have a clear reporting line. Creative Technologists (made popular at Airbnb and Uber) in the 2010s have never recovered from the trauma of having unclear expectations and conflicting priorities of multiple orgs.&lt;/p&gt;
&lt;h2&gt;Design Engineering will revolutionize the 2020s&lt;/h2&gt;
&lt;p&gt;As we navigate what seems to be a tech paradigm shift with LLMs, AI applications, and multi-device experiences, Design Engineers will be this decade’s Data Scientist. Expect talent to be rare and continued definition of the impact of the role.&lt;/p&gt;
&lt;p&gt;My hope is not for designers to simply change their title to Design Engineer on LinkedIn. It’s uncertain if every company needs a Design Engineer. However, I am confident companies with authoring environments or complex interactions/data need Design Engineers. Snap, Retool, Replit, Uber, Square, OpenAI, and The Browser Company are a few examples of companies that have Design Engineers on their software teams.&lt;/p&gt;
&lt;p&gt;Data was the currency in the web era of social and ad tech. Now it’s trained data (LLMs) presented in multi-device interfaces. When it comes to an emerging function in a paradigm shift in tech, the Design Engineer is the new Data Scientist. Let’s see if that’s true in ten years.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Originally posted on &lt;a href=&quot;https://www.proofofconcept.pub/p/design-engineering?utm_source=publication-search&quot;&gt;Proof of Concept&lt;/a&gt;&lt;/p&gt;
</content:encoded><category>writing</category><category>design</category><category>engineering</category></item><item><title>Building your designs</title><link>https://www.davidhoang.com/writing/building-your-designs</link><guid isPermaLink="true">https://www.davidhoang.com/writing/building-your-designs/</guid><description>A better focus than, should designers code?</description><pubDate>Sun, 11 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;At some point in a designer’s career, the age-old question is asked: &quot;Should designers code?&quot; My direct answer for people who design software interfaces is yes. This is a belief I&apos;ve held my entire career. Despite my stance, I don&apos;t like the question. It might be the wrong question to focus on and varies depending on who is asking it. Designers feel like they are doing multiple jobs, so if someone outside our practice provokes the question, it feels like we&apos;re being asked to do more without being rewarded for the work.&lt;/p&gt;
&lt;p&gt;At its core, design is taking an idea and making it tangible. Building your designs is a continuation and extension of that tangibility. Ignore the question of whether designers should code and think of it this way:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Designers build.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The fidelities of building
Building your designs doesn’t assume production code. Less than 5% of the code I&apos;ve written in my career made it to production (that’s a good thing), but 100% of it was considered in the software development process.&lt;/p&gt;
&lt;p&gt;One of my favorite use cases to build my designs is to quickly navigate through the interface flow. When I used to work on iOS apps, my favorite method of building iOS prototypes was a simple Xcode project using UIStoryboard. Storyboards (as the name implies) made it easy to add interface elements in views and connect the views to have a first look at the experience. I’d compile the project and put it on a test iPhone, hand it to the developers for us to walk through the experience. Low-fidelity builds invoke high-fidelity questions. Even in the first run we could have a clear discussion on trade-offs and upcoming design challenges. I’d take the feedback and update the Product Requirements Doc (yes, designers should write PRDs).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/img-181-one-medical-storyboards@2x.webp&quot; alt=&quot;Xcode UIStoryboard prototype showing connected views for a One Medical iOS app flow&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Here is a video demo of the prototype I built. It’s all built in storyboards with a bit of Swift code to detect the logic. It did not take very long to build either! This is an example of how, with a little bit of technical acumen, you can put something very functional together. There are some designers out there who are truly unicorns in the craft—able to design and write code, even at the production level. They’re often called Design Engineers today, and I think they will be the most sought after role this decade.&lt;/p&gt;
&lt;p&gt;Building storyboards and UI flows can lead to prototypes, proof of concept, and the insights needed in software implementation.&lt;/p&gt;
&lt;h2&gt;Comprehension of materials&lt;/h2&gt;
&lt;p&gt;When bringing a building or structure to life, interior designers work closely with architects—a similar relationship between software designers and engineers. Interior designers do not focus on architecture, but the good ones have intimate knowledge of the considerations and methods of architecture to ensure the design vision can come to life. They may not be the ones building the blueprints, but interior designers understand the engineering design decisions that influence their design.&lt;/p&gt;
&lt;p&gt;When a sculptor creates a bronze statue, comprehension of the materials is not only the temperature the alloy needs to be heated to pour into the mold. What is the patina effect over time that might change the look of the sculpture? What is the weight and durability of the output? How will people maintain the piece years down the road? Though software is a different process than creating a physical object, there are similar considerations in the interface implementation and maintainability of the codebase.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/img-181-bronze-casting@2x.webp&quot; alt=&quot;Bronze casting process showing molten metal being poured into a mold&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Understanding the build materials fosters accessible design. If you care about accessibility, building your designs will make you even more considerate of it. It&apos;ll force you to think about the different states and properties of an interface. Running a built interface through a screen reader builds more empathy than a representation of an interface.&lt;/p&gt;
&lt;h2&gt;Understanding the production line&lt;/h2&gt;
&lt;p&gt;Building and shipping software is like other product development processes. There is a production cycle that usually can be improved. One added benefit of building your designs is understanding how software is made. There is a slew of steps before you should ship: implementation, quality assurance, systems testing, and more.&lt;/p&gt;
&lt;p&gt;Going through this process yourself gives you a clear picture of what happens to the design through implementation. You’ll better understand bottlenecks and have a stronger sense of what considerations will need to be made as your design gets pushed through.&lt;/p&gt;
&lt;h2&gt;Getting acclimated to building&lt;/h2&gt;
&lt;p&gt;If you’ve never built software with code, getting started can feel intimidating. Fortunately, the code barrier is lowering every day, making it more approachable and accessible to do so. Building is not a process, it&apos;s an action of transformation, and it matters less how you build it.&lt;/p&gt;
&lt;p&gt;When learning a new skill, I recommend finding the laziest way possible to build confidence. I used to take screenshots and reproduce them in Photoshop to build up my interface design skills. Here are some ideas to accelerate your comfort with the material of software:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Build your designs in Webflow—no-code to know code. You&apos;ll learn front-end primitives as you use it. As you get more comfortable, export the code to Replit and use AI to expand on what you&apos;ve created&lt;/li&gt;
&lt;li&gt;Use Figma&apos;s Dev Mode and build it yourself&lt;/li&gt;
&lt;li&gt;Practice reconstructing your interface designs in code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you get more comfortable, you’ll be able to write more code from scratch. Remember, these skills take years to develop so focus on daily progress and small wins.&lt;/p&gt;
&lt;h2&gt;Building empowers&lt;/h2&gt;
&lt;p&gt;It’s heartbreaking to see a designer spend all this time working on screens and it never coming to life. Build your designs because you will make your idea tangible—don’t do it for others. It’s not, “designers should do this.” It’s, “I will do this.”&lt;/p&gt;
&lt;p&gt;Someone once said to me, &quot;When you build your designs, it expands your influence in decision-making. Why would you opt out of that as a designer?&quot; I think about this a lot. Great software designers think of design from idea to software. We proclaim this a lot yet don&apos;t practice it.&lt;/p&gt;
&lt;p&gt;Building your designs makes you a better designer.&lt;/p&gt;
&lt;p&gt;Designers build.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/img-181-cover@2x.webp&quot; alt=&quot;Designer working on building and implementing designs&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Originally posted on &lt;a href=&quot;https://www.proofofconcept.pub/p/building-your-designs&quot;&gt;Proof of Concept&lt;/a&gt;&lt;/p&gt;
</content:encoded><category>writing</category><category>design</category><category>engineering</category></item><item><title>IDDE: The infusion of design and dev tools</title><link>https://www.davidhoang.com/writing/idde</link><guid isPermaLink="true">https://www.davidhoang.com/writing/idde/</guid><description>It&apos;s time to kill design handoff and create software differently</description><pubDate>Fri, 31 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Many millennial designers grew up playing with Microsoft Paint—often the first UI drawing tool they used whether they knew it or not. This was also true for me, but there was another software that inspired me as a kid—Visual Basic 1.0. I thought the visual development environment for BASIC created by Alan Cooper was a design tool. From Visual Basic, to HyperCard, and to Macromedia Dreamweaver, I never cared (or knew) the difference between a design tool and development tool. It was about making something.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/img-188-visual-basic@2x.webp&quot; alt=&quot;Screenshot of Visual Basic 1.0 development environment&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2008 to 2015 were formative years as a designer. I immersed myself in as many tools as possible and found ways to subvert them to build something; some of my favorites being Quartz Composer, Xcode, Framer.js, and coding on TextMate 2. Blending design tools with ways to build, I became enamored with the concept of an Integrated Design (and) Development Environment (IDDE).&lt;/p&gt;
&lt;p&gt;The traditional IDE is a suite of tools and features needed for you to build and ship software. I never understood why design wasn&apos;t a part of it. Funny story: when I interviewed with Apple&apos;s Xcode team many years ago, one of the interviewers asked me what wild idea I would propose. &quot;I would buy Sketch 2.0 and make it the new Interface Builder.&quot; This probably killed the interview for me.&lt;/p&gt;
&lt;p&gt;Today, this vision of design tools and developer tools coming together is becoming more real than ever—not because of my experiences with Visual Basic as an eight-year-old, but because the way software is made is rapidly changing.&lt;/p&gt;
&lt;p&gt;There are forces of nature in play accelerating this change, and it’s more timely than ever. The first is the adoption of Large Language Models (LLMs)—no surprise if you&apos;ve been following tech trends in the past 12–18 months. I don&apos;t think LLMs are a fad or hype cycle but a foundational change. Because of the complexity of these systems, drawing UI isn&apos;t sufficient to design for something so dynamic. LLMs are only one example of a dynamic system being a core aspect of software. With innovations like Open Interpreter’s 01, multiple-device interaction is another complex system that drawing software cannot comprehend.&lt;/p&gt;
&lt;p&gt;Second, the skill range of designers and engineers is expanding through natural skill building or augmentation with AI workflows. A designer who may not be comfortable with coding can hack something together through natural language. It also means a software engineer who may not like front-end work can get help with AI tools to close the skill gap. Both disciplines are getting more and more comfortable outside their traditional workflows. According to Figma, 30% of their users are developers.&lt;/p&gt;
&lt;p&gt;Finally, shipping software is getting more seamless, resulting in faster iteration cycles to production. In my early career the most magical dev-ex experience was building apps with Ruby on Rails and deploying to Heroku. Today’s experiences will continue to get better for dev ex (and design ex!) for software creators.&lt;/p&gt;
&lt;h2&gt;Infusing design and development workflows&lt;/h2&gt;
&lt;p&gt;The concept of merging design and developer tools sounds great, but infusing the workflows can’t be slapped on. Regardless of how innovative or cool your product is, existing human behaviors and adoption will be the biggest competitor to your product’s success. Remember, the two most opinionated people about workflows on the planet are designers and developers. If the workflows are well considered and evolved, adoption can occur.&lt;/p&gt;
&lt;p&gt;I came up with a few thoughts on what matters in an infused workflow and this is not a comprehensive list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abstractions are good, but software creators need to access the raw material (I need to be able to pop the hood open to look at the engine)&lt;/li&gt;
&lt;li&gt;Access to inputs for real-time feedback is important for any interface manipulation&lt;/li&gt;
&lt;li&gt;People break each other&apos;s design and code all the time and this often results in manual reconciliation&lt;/li&gt;
&lt;li&gt;Presence and communication—the ability to have visibility on how changes impact the work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/img-188-cover@2x.webp&quot; alt=&quot;Illustration of integrated design and development environment&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The IDDE is a software creation platform&lt;/h2&gt;
&lt;p&gt;It&apos;s an exciting time for everyone to participate in software creation. The infusion of design and dev tools is not replacing people, but empowering so many others with software developers being more important than ever.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/img-188-software-creation-expansion@2x.webp&quot; alt=&quot;Diagram showing the expansion of software creation platforms&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The IDDE has been something I&apos;ve been thinking about for more than ten years in my career. I can&apos;t think of a greater purpose than building tools that revolutionize the internet. I was motivated by this mission at Webflow and now get to work on it at Replit.&lt;/p&gt;
&lt;p&gt;As Linus Pauling said, “The best way to have a good idea is to have lots of ideas.” If we can get more people to create software in the world, perhaps one of those people&apos;s ideas is the next idea that changes the world.&lt;/p&gt;
</content:encoded><category>writing</category><category>design</category><category>engineering</category><category>tools</category></item></channel></rss>