As techies, we’re accustomed to writing neat code, respecting best practices, following guidelines and asking for clear requirements each and every time. But this shines a bad light on us when we try to go the entrepreneurial route. It doesn’t matter if we’re building the next <insert-social-media-network-name> or that we’re building Uber but for <insert-weird-made-up-industry-name>, it has to be perfect. If possible, it has to be even better than the thing we’re cloning. We all know those developers from Facebook store their passwords in plain text… we’re going to encrypt everything thrice! What all of this does is kill “done” and “good enough”. And more often than not, good enough is all we need to validate a market, to see if there’s potential, or to serve that market directly. Working remotely is amazing but it also comes with its challenges. Just like I read in a book, a while back, "solutions don't exist, only tradeoffs". Remote work is also a tradeoff. Just like when you're migrating from a monolith to a microservices architecture (software architecture), you're actually trading off system reliance (monolith) for network reliance (microservices). This article outlines a couple of the most difficult things about working remotely and provides a couple of points on how to mitigate these drawbacks.