<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Truman</title>
    <description>The latest articles on DEV Community by Truman (@truman-gobetween).</description>
    <link>https://dev.to/truman-gobetween</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1760492%2F9bbbe8bc-524f-40af-a3fa-caa8bd732c7b.jpeg</url>
      <title>DEV Community: Truman</title>
      <link>https://dev.to/truman-gobetween</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/truman-gobetween"/>
    <language>en</language>
    <item>
      <title>Pull Request Structure</title>
      <dc:creator>Truman</dc:creator>
      <pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/gobetween/pull-request-structure-fn8</link>
      <guid>https://dev.to/gobetween/pull-request-structure-fn8</guid>
      <description>&lt;p&gt;An all-too-familiar scenario: you open a pull request in github. It has no description. It has three commits: "WIP," "Fixes issue," and "Whoops formatting." It has 24 file changes littered around the codebase. Your coworker opens your PR for review and promptly closes their browser window. Why? Your pull request did not communicate the motivation, reasoning, and proposed execution of your change. It's a difficult proposition even in good conditions.&lt;/p&gt;

&lt;p&gt;We can do better for ourselves and our fellow developers. Here are some strategies we use to make the intention of our own pull requests simpler to understand and their proposed changes easier to review:&lt;/p&gt;

&lt;h2&gt;
  
  
  Tale Telling
&lt;/h2&gt;

&lt;p&gt;This will not be the first post to highlight how good a good commit message is. There's more we can do beyond a pithy description of a coherent unit of work. Commits can be made to tell a story in context from one to another: clearing the ground here; then, establishing the new system there; then, exercising the change in this path; finally, whoops, formatting. Rebase (-i) is a cantankerous but invaluable friend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Illustration
&lt;/h2&gt;

&lt;p&gt;Changes to a user interface can be described visually with a set of images, a gif, or a short voiceover walkthrough which focuses on the new experience. Show, don't tell, can be taken literally to great effect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exercise
&lt;/h2&gt;

&lt;p&gt;We execute the code we're authoring in order to make sure it works, right? (Right?) A living system is usually more than the automated tests that we also include. Record your setup, and interaction, and outcome. Flip back and forth between your console/UI, the code, the database. Show how everything breathes together.&lt;/p&gt;

&lt;p&gt;Finally, include a gif of a cute Koala at the end of your well-written description. Because diligent reviewers deserve a small treat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdsqg0qt4sacmyboeo87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdsqg0qt4sacmyboeo87.png" alt="Image description" width="800" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chillcompany</category>
      <category>pullrequest</category>
      <category>engineering</category>
      <category>writing</category>
    </item>
    <item>
      <title>The Opinion Zone™</title>
      <dc:creator>Truman</dc:creator>
      <pubDate>Wed, 31 Jul 2024 12:21:03 +0000</pubDate>
      <link>https://dev.to/gobetween/the-opinion-zone-40i3</link>
      <guid>https://dev.to/gobetween/the-opinion-zone-40i3</guid>
      <description>&lt;p&gt;Looking for a better way to share your opinions? We have some thoughts on how to do that. Read more below!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gobetweenlabs.com/posts/opinion-zone/origin" rel="noopener noreferrer"&gt;https://gobetweenlabs.com/posts/opinion-zone/origin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Opinion Zone™ is a place for thoughts that Dan, Harrison, and Truman share about what it means to build good software products at a sustainable pace in a calm and helpful environment. This post describes its origin and use.&lt;/p&gt;

&lt;p&gt;Thanks for your time and attention.&lt;/p&gt;

</description>
      <category>writing</category>
      <category>startup</category>
      <category>chillcompany</category>
    </item>
    <item>
      <title>Hello World</title>
      <dc:creator>Truman</dc:creator>
      <pubDate>Wed, 24 Jul 2024 14:46:55 +0000</pubDate>
      <link>https://dev.to/gobetween/hello-world-4e6h</link>
      <guid>https://dev.to/gobetween/hello-world-4e6h</guid>
      <description>&lt;p&gt;Ever wonder if you're becoming unemployable? We did, and the only thing we could figure to do was to start our own company. Read about it below!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gobetweenlab.com/posts/hello-world" rel="noopener noreferrer"&gt;https://gobetweenlab.com/posts/hello-world&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We're writing about the comings and goings of Go Between, and we're kicking off with our "Hello World" first post. We'd love to hear about your own entrepreneurial journey, trouble with naming things, or product building aspirations in the comments.&lt;/p&gt;

&lt;p&gt;Thanks for your time and attention.&lt;/p&gt;

</description>
      <category>writing</category>
      <category>startup</category>
      <category>chillcompany</category>
    </item>
    <item>
      <title>Musicbox</title>
      <dc:creator>Truman</dc:creator>
      <pubDate>Sat, 17 Feb 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/gobetween/musicbox-4npd</link>
      <guid>https://dev.to/gobetween/musicbox-4npd</guid>
      <description>&lt;h2&gt;
  
  
  An office radio for your remote office
&lt;/h2&gt;

&lt;p&gt;Many years ago I was part of a team that used the now-defunct &lt;a href="https://plug.dj/" rel="noopener noreferrer"&gt;plug.dj&lt;/a&gt; to take turns sharing music with one another during our workday. It was a magical and, due to their peculiar aesthetic and UX choices, inexplicable experience. At its heart, &lt;a href="http://plug.dj" rel="noopener noreferrer"&gt;plug.dj&lt;/a&gt; allowed folks to pick songs that were then played for everyone simultaneously; this was fun, but more interestingly it often led to music-related anecdotes and other side-conversations that brought me closer to the folks I was working with.&lt;/p&gt;

&lt;p&gt;Many years later, in the early history of Go Between, &lt;a href="https://musicbox.fm/liner-notes" rel="noopener noreferrer"&gt;Musicbox&lt;/a&gt; started as a side project that sought to recreate the explicable parts of that early experience. Its core mechanic was similar: everyone queues songs, Musicbox cycles through in round-robin style and plays them. Where &lt;a href="http://plug.dj" rel="noopener noreferrer"&gt;plug.dj&lt;/a&gt; focused on sharing music with strangers' dancing hyper-color avatars, Musicbox encouraged teams of people to connect over the tunes that had been chosen. It included chat, recommendations, and a feature that allowed you to "pin" a message as a memory to appear whenever a given song played in the future. Since &lt;a href="https://www.forbes.com/sites/hughmcintyre/2017/11/09/americans-are-spending-more-time-listening-to-music-than-ever-before/" rel="noopener noreferrer"&gt;the average person listens to music for 32 hours per week&lt;/a&gt;, we thought that getting coworkers to share part of their listening experience, and through that, to share part of themselves, might bring folks a little closer together.&lt;/p&gt;

&lt;h2&gt;
  
  
  When every nuanced human problem looks like a nail
&lt;/h2&gt;

&lt;p&gt;As software engineers who moved to remote work during the pandemic and later started a remote company, we've had our share of uncanny-valley experiences that result from trying to use technology to facilitate connection. We've come to recognize that while technology can solve specific, defined issues, it often misses the subtleties of human interaction. The intention of Musicbox was not to serve as an all-encompassing solution for digital solitude -- but we've found that we like to build tools that speak to getting to know the people that we spend time with at work on a deeper, human, level.&lt;/p&gt;

&lt;p&gt;As we used Musicbox we started having conversations like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;While "Surfaces - Sunday Best" plays in the background&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dan:&lt;/em&gt; My sister originally shared this song with me and then I forgot about it until I was watching a recent episode of "Ted Lasso" and I was reminded of how happy this song makes me&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dan:&lt;/em&gt; Also, Ted Lasso is not only my favorite show right now, it's the only show I watch.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Spencer:&lt;/em&gt; Just watched the trailer, looks hilarious. I love Jason Sudeikis. Going to start watching that&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;At a parting of ways, we listen to "Nickelback - Photograph"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Truman:&lt;/em&gt; Did you know that Chad Kroeger and Avril Lavigne were married from 2013-2015?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dan:&lt;/em&gt; &lt;a href="https://www.theguardian.com/lifeandstyle/shortcuts/2017/may/15/avril-lavigne-melissa-cloning-conspiracy-theories" rel="noopener noreferrer"&gt;https://www.theguardian.com/lifeandstyle/shortcuts/2017/may/15/avril-lavigne-melissa-cloning-conspiracy-theories&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dan:&lt;/em&gt; Was he though???&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Truman:&lt;/em&gt; incredible. Reminds me of the "Bigger Luke" conspiracy: &lt;a href="http://biggerluke.wikidot.com/bigger-luke" rel="noopener noreferrer"&gt;http://biggerluke.wikidot.com/bigger-luke&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Spencer:&lt;/em&gt; I was just going to ask if you guys knew the obscure conspiracy theory about fake Avril Lavigne&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;During a 90s/00s kick with "Incubus - Stellar (Official Music Video)"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Truman:&lt;/em&gt; lol hey Incubus&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Truman:&lt;/em&gt; "Stellar" reminds me of college because my freshman dorm neighbor would play Guitar Hero a _lot_. And then they graduated to Rock Band and played that a _lot_ after it came out.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dan:&lt;/em&gt; was stellar in guitar hero? I don't remember that one&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Truman:&lt;/em&gt; Yeah, it's in the first game -- &lt;a href="https://guitarhero.fandom.com/wiki/Stellar" rel="noopener noreferrer"&gt;https://guitarhero.fandom.com/wiki/Stellar&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dan:&lt;/em&gt; My best guitar hero songs were: the killers: when we were young; weezer: my name is jonas; bloc party: helicopter; rage against the machine: bulls on parade&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Truman:&lt;/em&gt; I didn't play a ton of guitar hero myself, but I've heard "Don't Fear the Reaper" more times than I think anyone reasonably should&lt;/p&gt;

&lt;p&gt;We listen to a lot of music in Musicbox (~12,000 songs enqueued in 2023), so please don't judge this incidental selection too harshly. And while these conversations are not the hearts-to-hearts strangers-turned-lifelong-friends via the magic of technology, they do highlight where a long day could be lightened by a shared Ted Lasso joke, or an awkward lunch whose ice might be broken discussing whether Avril Lavigne really was bodysnatched.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to build a good product and fail to launch a good product business
&lt;/h2&gt;

&lt;p&gt;Musicbox was a nights-and-weekends project, so we chose tools that we were familiar with: a single-page React front-end (still &lt;a href="https://github.com/go-between/musicbox" rel="noopener noreferrer"&gt;source-available!&lt;/a&gt;), and a Rails api (where we &lt;em&gt;mostly&lt;/em&gt; wrote tests and &lt;a href="https://github.com/go-between/musicbox-api" rel="noopener noreferrer"&gt;followed reasonable engineering practices&lt;/a&gt;). We worked on features that were fun, and we made it work and then made it nicer afterward. We built Musicbox mostly because we wanted it to exist. We acknowledged but did not start with answering some of the questions that pose existential risk to real products: will teams of people pay for this thing? Can we reach an agreement with the music provider at a scale and cost that allows this whole thing to work?&lt;/p&gt;

&lt;p&gt;After about a year of off-and-on effort, we felt that we had a product that was usable enough to receive feedback from humans other than ourselves. We had a landing page and a &lt;a href="https://musicbox.fm/liner-notes" rel="noopener noreferrer"&gt;manifesto&lt;/a&gt;. We invited former teammates to try it with their new teams, and people seemed to get its value proposition. We had a "maybe" to our first question, but it turns out that we had a hard "no" to the second.&lt;/p&gt;

&lt;p&gt;While most of Musicbox's machinery is source-agnostic with regard to the music it plays, we built it first in integration with YouTube videos. As more folks were using the tool and we began bumping up against the "starter" API quota, we realized that we'd finally have to reach out to Google to see what it would mean to share the product with more people. After agonizing over their quota increase request form for a few days, we submitted our best description of a Musicbox which used YouTube's features -- and that it would like to use them more -- but which was primarily its own product that focused on creating shared experiences for teams of professionals. Our request was summarily rejected with the note that Musicbox "re-implemented core YouTube functionality," and our API request quota was reduced to zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  Afterward
&lt;/h2&gt;

&lt;p&gt;The blunt response to our quota request drove home a simple point: probably don't try to build a product whose value depends upon a third party's ad-monetized service. We could have appealed, or pivoted to another music provider (we had considered Spotify with the requirement that users have a premium account), but by this time our fledgling company Go Between had taken on a much clearer shape and we were ready to turn our attention elsewhere. We were -- and still remain -- interested in exploring ways to help teams of folks get to know each other, although we would change our tack a &lt;em&gt;bit.&lt;/em&gt; We did not yet change the "create it for ourselves first, and figure out how to market it later" approach; you can read more in our post on &lt;a href="https://www.getmarginal.com/preface" rel="noopener noreferrer"&gt;Marginal&lt;/a&gt;, "&lt;a href="https://gobetweenlab.com/posts/marginal" rel="noopener noreferrer"&gt;How to build a simple Rails CRUD application in just two years&lt;/a&gt;."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fig7gl5j1zju90pgh5n6a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fig7gl5j1zju90pgh5n6a.png" alt="Musicbox Top 10 for 20243" width="800" height="936"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Musicbox's Top 10 for 2023&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Musicbox still lives on, but just for our small team. I'm listening to synth with Dan while I'm finishing this post and he's updating styling on Go Between's website. In 2020 we listened to 10,000 songs; 9,000 in 2021; 12,000 in 2022; and 13,000 in 2023. Most recently over winter break I merged some work to make our annual recap, "Musicbox Unwound," easier to generate. The repos are available for anyone's perusal -- and if you get the itch to contribute and move this whole thing to Spotify, well, we'll happily figure out a revenue share.&lt;/p&gt;

&lt;p&gt;Thanks for your time and attention.&lt;/p&gt;

</description>
      <category>chillcompany</category>
      <category>product</category>
      <category>writing</category>
      <category>music</category>
    </item>
  </channel>
</rss>
