by Derek Hoiem | Oct 9, 2025
I talk to design students about the difference between, utility, usability, and aesthetics. All are important, but utility wins every time. Even Jony Ive said, “If a product doesn’t do what you want it to do, it is ugly.”
I also love decentralized platforms, and when I found the decentralized social media platform “Farcaster” I got excited. When I found out that Coinbase was going to use it as the protocol for their new Coinbase Wallet app, and rename it “The Base App”, I got even more excited and wanted to develop for it. Farcaster / Base allows social media posts to contain an image and action in a post that launches a “miniapp window” where you can use apps to interact with the timeline and user’s profile. This enables all kinds of interesting possibilities. I saw that the platform lacked the ability to embed a wide range of media into posts, and so I add a “Play” button to a post and then the media plays in the miniapp window, effectively creating media embeds.
You can try it out by going to farcaster.xyz and then typing addplaybutton.xyz into any cast, or launching the “Add Play Button” app from the miniapps catalog.
My app reached #3 in the Utilities category on the Base app, and it’s in the top 100 of all apps available on Farcaster (top 5%).
by Derek Hoiem | Feb 16, 2025
Video Security Platform
I was contracted to design a ground-up security platform for large scale events that leverages video and device data. Here are several of the key screens and views.
by Derek Hoiem | Jul 20, 2024
I designed several cornerstone aspects of the user interface of Microsoft Visual Studio, including the dynamic menu system, dynamic help window, and the window tiling and autohide system that subsequently influenced Windows.
Prior to my changes in Visual Studio, Microsoft Windows apps that supported multiple documents being open at the same time, had a design pattern called “multiple document interface” (MDI). In MDI apps, the child windows were contained within the parent window and they were unruly and made it difficult to manage the number of files that developers often had open. After watching developers, I realized that maximizing the document space and then making it easy for them to split and tile, to view a C++ file and it’s header file at the same time, for example, would be a much better approach. So, I decided to toss out MDI and replace it with a tabbed document system. Additionally, you can grab and move the tabs and dock them within the application frame using a visualization of drop zones. At the time, this was all new and no one had done this before. Eventually, this design pattern was picked up by the Windows team, and then it’s also now appeared in the Adobe family of apps as well.
Then I also wanted to do something to maximize screen space for developers. In addition to document windows, we had the concept of “tool windows” which are permanently installed windows that operate upon the open documents. As the number of products inside Visual Studio increased, the number of tool windows that could be open became unmanageable. We had the concept of auto-hiding tool windows, but they would just disappear and you wouldn’t know which ones were open and where they were located. So I introduced the idea of a vertical channel where we could place the auto-hidden windows. By releasing the “pin” icon on a tool window, it would go into auto-hide mode and show up in the vertical channel.
Once a window is “unpinned” then the tool window tucks into the vertical channel, alongside the other tool windows with which it is docked.
The final state is a wide-open document space that maximizes working area for coding, even on smaller screens, such as laptops.
by Derek Hoiem | Jul 18, 2024
Although I was following a design system here, I designed the console screens for managing and reporting the status of a network of medical devices across hospitals and organizations.