---
title: "Developer Experience"
description: "448 posts about Developer Experience, summarised, each linking to the original."
---

# Developer Experience
> 448 posts about Developer Experience, summarised, each linking to the original.

## Articles

### [Go Modules- A Guide for monorepos (Part 2)](https://yomu.fyi/post/go-modules-a-guide-for-monorepos-part-2.md)
- Company: [Grab](https://yomu.fyi/company/grab.md)
- Author: Michael Cartmell
- Published: Aug 12, 2020
- Type: Problem & solution

Managing dependencies in a multi-module monorepo created developer friction at Grab due to unexpected changes from previous vendoring attempts and accidental imports. Because Go modules were not yet enabled directly for builds, the team implemented a continuous integration check that executes go mod vendor and rejects merge requests if any diffs exist in go.mod or the vendor directory. Adopting this CI check required configuring SSH deploy keys for private repositories, adding retry logic for network-related false positives, and standardizing on a single Go version to prevent checksum discrepancies. To streamline ongoing maintenance across hundreds of dependencies, the team developed an automated tool named AutoVend Bot. The bot runs go list -m -u all to detect updates and opens a scheduled batch of merge requests each day for human review.


### [Supabase Alpha July 2020](https://yomu.fyi/post/supabase-alpha-july-2020.md)
- Company: [Supabase](https://yomu.fyi/company/supabase.md)
- Author: Paul Copplestone
- Published: Aug 2, 2020
- Type: Announcement

Supabase announced the release of Supabase Auth following five months of development, providing resources and a video tutorial on implementing authentication with PostgreSQL Row Level Security. The Table Editor now allows users to drill multiple levels deep into table relationships as well as add, delete, and download rows directly. Newly created projects also include access to additional Postgres extensions, including pgsql-http, pgjwt, plpgsql\_check, and pljava. Further platform updates include an or filter in the client library, expanded capabilities for the postgres-meta REST management server, and persistence for open tabs in the Table View. Additionally, the auto-generated documentation now integrates authentication guides, and visual page transition glitches have been resolved.


### [Supabase Alpha June 2020](https://yomu.fyi/post/supabase-alpha-june-2020.md)
- Company: [Supabase](https://yomu.fyi/company/supabase.md)
- Author: Paul Copplestone
- Published: Jul 1, 2020
- Type: Announcement

Four months into development, Supabase released its June 2020 alpha update focused on simplifying PostgreSQL management and eliminating regional performance bottlenecks. The release introduces a spreadsheet-like interface for drilling down into relational tables alongside automated detection and editing support for JSON and JSONB columns. To address latency issues previously caused by hosting all projects exclusively in Singapore, the platform now allows developers to select specific database regions. In line with its zero lock-in principle, Supabase exposed daily backups on the dashboard and enhanced the SQL editor with improved syntax highlighting. The team also expanded by hiring PostgREST maintainer Steve Chavez while continuing efforts toward future multi-region replication and WAL-G backup integration.


### [How We Built Our In-house Chat Platform for the Web](https://yomu.fyi/post/how-we-built-our-in-house-chat-platform-for-the-web.md)
- Company: [Grab](https://yomu.fyi/company/grab.md)
- Author: Vasu Krishnamoorthy
- Published: Jun 29, 2020
- Type: Problem & solution

Grab extended its in-house chat platform to the web to support its internal Customer Support portal. Because the existing TCP gateway only supports unicast connections with one active connection per user, opening multiple browser tabs would repeatedly disconnect previous tabs. Rather than undertaking a complex migration to multicast connections on the server, the team adopted a hybrid client-side strategy using SharedWorker and BroadcastChannel APIs. The implementation uses a SharedWorker to maintain a single WebSocket connection per domain while a BroadcastChannel syncs events across all open tabs. A custom wrapper over the worker manages version transitions during deployments to avoid race conditions across tabs.


### [Supabase Alpha May 2020](https://yomu.fyi/post/supabase-alpha-may-2020.md)
- Company: [Supabase](https://yomu.fyi/company/supabase.md)
- Author: Paul Copplestone
- Published: Jun 1, 2020
- Type: Announcement

Supabase announced its May 2020 alpha development updates following acceptance into a fully remote Y Combinator cohort and unexpected attention from Hacker News. Operating under a ship early and often philosophy, the team continued deploying functional changes despite ongoing alpha bugs and platform instability. This milestone includes a revamped user interface configured to support incoming product capabilities alongside an initial, experimental Table View designed to rival tools like Airtable. Furthermore, Supabase rolled out realtime listeners that allow developers to subscribe to database changes comparable to Firebase functionality. The platform also added instant RESTful APIs and auto-updating documentation generated dynamically by introspecting modifications to the underlying Postgres schema.


### [ShipIt! Presents: How Shopify Uses Nix](https://yomu.fyi/post/shipit-presents-how-shopify-uses-nix.md)
- Company: [Shopify](https://yomu.fyi/company/shopify.md)
- Author: 2023-10-18
- Published: May 29, 2020
- Type: Explainer

At a May 25, 2020 ShipIt! event, Shopify presented how it uses Nix to rebuild developer tooling and demonstrate the tools used day to day. The follow-up answers questions about runix and lorri interoperability, CI/CD, Ketos, remote-work download costs, dependency management, and pinned nixpkgs revisions. Shopify says its tooling is optimized for build workflows rather than development, so it spent substantial effort adapting bundleEnv/bundleApp to its preferred workflow and hopes to upstream the solution. Nix is not yet used for CI/CD; gems prompted the initial Nix work, while Node modules are not yet managed with Nix, and a project-specific nixpkgs revision is enforced whenever dev up runs.


### [Dev Degree: Behind the Scenes](https://yomu.fyi/post/dev-degree-behind-the-scenes.md)
- Company: [Shopify](https://yomu.fyi/company/shopify.md)
- Author: 2023-10-18
- Published: May 13, 2020
- Type: Explainer

Dev Degree is Shopify’s work-integrated learning program, designed to combine an accredited computer science degree with four years of continuous developer experience. Students take three university courses per semester while working 25 hours weekly, beginning with Shopify-led skills training before moving through four team placements across disciplines such as back-end, front-end, data, security, and production engineering. The program teaches tools and technologies including Git and GitHub, Ruby, Rails, React, TypeScript, and GraphQL, while emphasizing mentorship, feedback, personal development, and support from a multidisciplinary team working with university partners. The first cohort graduated on April 24, 2020, after adapting to program changes and remote learning during the pandemic; the post reports that 100% of graduates accepted full-time positions within six months.


### [Supabase Alpha April 2020](https://yomu.fyi/post/supabase-alpha-april-2020.md)
- Company: [Supabase](https://yomu.fyi/company/supabase.md)
- Author: Paul Copplestone
- Published: May 1, 2020
- Type: Announcement

The April 2020 alpha release of Supabase introduces developer tools designed to make Postgres as straightforward to use as Firebase. Users can configure a Postgres instance in less than two minutes and execute database queries directly from the dashboard interface. The platform provides auto-generated RESTful APIs along with auto-updating documentation created through database schema introspection. Development work also encompasses realtime listeners for database change subscriptions, query performance analysis tools, and connectors that route realtime updates to queues or webhooks. Supabase is not yet production ready, storing only GitHub usernames and emails while running for free under Digital Ocean's startup program.


### [Developer Platform updates Spring 20'](https://yomu.fyi/post/developer-platform-updates-spring-20.md)
- Company: [Zoom](https://yomu.fyi/company/zoom.md)
- Author: Michael Purnell
- Published: Apr 21, 2020
- Type: Announcement

Zoom introduced several updates across its developer platform alongside new roadmap milestones for 2020. Marketplace enhancements include a Developer Dashboard tracking install numbers and API usage, as well as dynamic OAuth scope configurations that distinguish mandatory and optional permissions. For client development, the WebSDK adds Microsoft Edge Chromium compatibility with video and VOIP support, whereas the iOS SDK incorporates Xcode 11 support. Due to increased developer demand, Zoom updated its V2 REST API rate limits and delivered new chat webhooks tracking message, channel, and member activity. Upcoming platform initiatives include the permanent termination of all legacy V1 APIs on May 31, 2020, platform security enhancements, and an iframe-free JavaScript embedding framework for the WebSDK.


### [Software Release Culture at Shopify](https://yomu.fyi/post/software-release-culture-at-shopify.md)
- Company: [Shopify](https://yomu.fyi/company/shopify.md)
- Author: 2023-10-18
- Published: Apr 15, 2020
- Type: Explainer

Shopify describes its release culture as a combination of beliefs and behaviors shaping how developers ship software, with trust, velocity, and safeguards as stated goals. The team measures developer experience through biannual happiness surveys, shipping Slack channels, dogfooding, internal support, and UX research that includes shadowing developers and testing prototypes with interns and new hires. Its release pipeline runs from a pull request and /shipit command through the merge queue, Master, a Canary environment receiving 5% of incoming requests, and Production after a 10-minute testing period without intervention or automated alerts. Developers own releases without managers, sign-offs, or release windows, while /shipit --emergency provides a single fast recovery path. Shopify also uses Beta Flags for gradual rollouts and measures /shipit success through survey feedback and average pull-request time-to-production.


### [Tackling UI Test Execution Time Imbalance for Xcode Parallel Testing](https://yomu.fyi/post/tackling-ui-test-execution-time-imbalance-for-xcode-parallel-testing.md)
- Company: [Grab](https://yomu.fyi/company/grab.md)
- Author: Ngoc Thuyen Trinh
- Published: Mar 16, 2020
- Type: Problem & solution

Parallel test execution in Xcode can suffer from test time imbalance when tasks finish at significantly different times across parallel simulator workers. Analysis of Xcode scheduling logs shows that the runner groups tests by test class and dispatches all tests from the same class to a single simulator. Attempts to customize the suite by swizzling XCTestSuite fail because made-up suites initialize only after tests are dispatched. To overcome this grouping constraint, unique tokens or test names are appended to the class name component in \`-only-testing\` command-line arguments. This trick forces Xcode to treat each test as an independent class, successfully distributing individual tests across separate workers.


### [Fly Friday - News and Tips](https://yomu.fyi/post/fly-friday-news-and-tips.md)
- Company: [Fly.io](https://yomu.fyi/company/fly-io.md)
- Published: Feb 28, 2020
- Type: Announcement

This Fly weekly update collects product news, community announcements, and a flyctl usability improvement. It points to guidance for building GraphQL APIs with Fly and for running a private DNS over HTTPS (DoH) service, while noting Firefox’s default DoH rollout in the USA. It also announces a new Fly user community portal with GitHub or social-media sign-in, alongside Turboku’s Product Hunt launch for faster Heroku apps. The technical note covers flyctl 0.0.96’s -c/--completion option: supplying bash or zsh generates a completion file, with zsh users able to redirect it to $fpath\[1\]/\_flyctl and Bash users required to choose a location and source it from .bashrc.


### [Developing Zoom Marketplace Apps w/ ngrok](https://yomu.fyi/post/developing-zoom-marketplace-apps-w-ngrok.md)
- Company: [Zoom](https://yomu.fyi/company/zoom.md)
- Author: Tim Slagle
- Published: Feb 14, 2020
- Type: Problem & solution

Developers frequently use ngrok to establish fast, introspectable tunnels to localhost when building Zoom Marketplace applications instead of configuring complex reverse proxies like NGINX or Apache. However, using basic ngrok tunnels in production exposes systems to short URL expiration windows, single points of failure, and scalability bottlenecks. To maintain application availability, developers can purchase an ngrok license to secure a service-level agreement and support. Additionally, teams should reserve dedicated subdomains rather than using auto-generated endpoints, run ngrok as a monitored background service on a cloud provider or data center, and place a load balancer in front of the tunnel to handle heavy traffic.


### [What’s New and What’s Coming for Zoom Marketplace in 2020?](https://yomu.fyi/post/what-s-new-and-what-s-coming-for-zoom-marketplace-in-2020.md)
- Company: [Zoom](https://yomu.fyi/company/zoom.md)
- Author: Benjamin Dean
- Published: Feb 14, 2020
- Type: Announcement

Zoom announced several updates to its App Marketplace alongside roadmap deadlines scheduled for early 2020. Marketplace enhancements include functional app categories, additional URL fields for Terms of Use and documentation, and support for defining multiple webhook event subscriptions within a single application. Administrators and developers gained webhook logs, enhanced pre-approval permission settings, and the ability to test draft applications directly in the installed apps interface for Data Compliance API compliance. To accommodate surging traffic, Zoom introduced revamped V2 REST API rate limits and breaking behavioral changes to the List Users API. Crucially, the platform set an absolute end-of-life date of April 26, 2020, for all legacy V1 APIs, requiring immediate migration to V2 endpoints.


### [Investing in Developers — Zoom Developer Summit and Competition 2020](https://yomu.fyi/post/investing-in-developers-zoom-developer-summit-and-competition-2020.md)
- Company: [Zoom](https://yomu.fyi/company/zoom.md)
- Author: Aleks Swerdlow
- Published: Feb 13, 2020
- Type: Announcement

Zoom launched the Zoom Marketplace Competition for developers creating applications on the Zoom platform. Open to for-profit organizations with less than $10M in prior funding, the competition offers a selected winner up to $2 million in potential investment. Finalists pitch their proposals to venture partners from Emergence, Horizons Ventures, Maven Ventures, and Sequoia. In addition to capital, the winner receives advisory sessions with Zoom product experts, priority platform support, a DTEN D7 whiteboard, and multiple three-year software licenses. Submissions require explicit details regarding problem definition, customer demographics, traction, revenue models, competitive analysis, and team credentials ahead of the March 31st, 2020 deadline.


### [Zoom Developer Relations — Meet the Team](https://yomu.fyi/post/zoom-developer-relations-meet-the-team.md)
- Company: [Zoom](https://yomu.fyi/company/zoom.md)
- Author: Abraham Queen
- Published: Jan 24, 2020
- Type: Explainer

Zoom's Developer Relations team supports third-party developers, manages the App Marketplace, and maintains platform tools including APIs and Web SDKs. The team comprises technical writers, developer advocates, developer educators, security engineers, and marketplace specialists. Specific responsibilities include authoring integration documentation, reviewing early API designs, testing webhooks, scheduling security evaluations for Marketplace applications, and building sample code. Developer interactions take place across multiple channels, including the Zoom Developer Forum, Zendesk support tickets, Zoom meetings, app submission review notes, and partnership calls. Specialists also guide creators through the formal app submission lifecycle, reviewing functional workflows, privacy statements, and regional ISV opportunities across global markets like APAC.


### [Behind the Curtain: App Publishing Requests](https://yomu.fyi/post/behind-the-curtain-app-publishing-requests.md)
- Company: [Zoom](https://yomu.fyi/company/zoom.md)
- Author: Abraham Queen
- Published: Jan 22, 2020
- Type: Explainer

Zoom App Marketplace reviews App Publishing Requests to enable broad distribution of applications across all Zoom accounts. During the initial review stage, marketplace specialists evaluate submission metadata, including descriptive text, media assets, functional documentation, and requested scopes to verify that applications do not access unnecessary user information. Reviewers then perform a functional assessment by executing the developer-provided test plan using supplied test accounts and credentials. When issues occur, reviewers deliver feedback through review notes, requiring developers to resolve the problems and resubmit their app to trigger a re-review cycle. Developers can validate production readiness prior to public submission through account-level local testing or by creating a Publishable URL sharing request for external testing.


### [Marionette - Enabling E2E User-scenario Simulation](https://yomu.fyi/post/marionette-enabling-e2e-user-scenario-simulation.md)
- Company: [Grab](https://yomu.fyi/company/grab.md)
- Author: Anish Jha
- Published: Dec 23, 2019
- Type: Problem & solution

Conducting end-to-end testing across Grab's transport microservices became difficult due to service availability, environment construction, cross-service authentication, and complex data setups for real-world user accounts. To address these challenges without relying on physical mobile devices or emulators, Grab built Marionette, an internal simulation platform for passenger and driver interactions. The platform provisions required test data, coordinates booking lifecycles, and isolates test executions across distinct user groups using localized cohorts. Engineers can configure driver and passenger behaviors, execute workflows, and run load or integration tests through a dedicated user interface, a Go SDK, and RESTful APIs.


### [How Shopify Scales Up Its Development Teams](https://yomu.fyi/post/how-shopify-scales-up-its-development-teams.md)
- Company: [Shopify](https://yomu.fyi/company/shopify.md)
- Author: 2023-10-18
- Published: Sep 26, 2019
- Type: Explainer

The article argues that scaling development is primarily about creating more effective teams, not simply increasing headcount. It first recommends checking whether an existing team prioritizes impactful work, minimizes supporting activity, and can ship code quickly while finding bugs; otherwise hiring may be premature. Shopify organizes product work into problem spaces and teams of five to nine, uses a multi-step process combining technical exercises with cultural assessment, and aims for at least as many onboarded members as onboarding members. New teams receive a baseline for work practices and technology, while transparent technical design, shared tooling with dashboards and embedded quality and testing standards, optional pairing, and frequent retrospectives support consistency and learning. The conclusion is that these practices, rather than hiring alone, enable development teams to scale more effectively.


### [Loki, a Dynamic Mock Server for HTTP/TCP Testing](https://yomu.fyi/post/loki-a-dynamic-mock-server-for-http-tcp-testing.md)
- Company: [Grab](https://yomu.fyi/company/grab.md)
- Author: Thuy Nguyen
- Published: Apr 10, 2019
- Type: Problem & solution

Grab built Loki, a dynamic mock server written in Golang that simulates backend services on local developer machines and CI pipelines. Mobile app testing previously suffered from heavy dependencies on complex, brittle staging environments and interconnected services communicating over HTTP, HTTPS, and TCP. Loki handles both HTTP and TCP traffic on distinct ports while exposing a unified RESTful API to manage test expectations. It provides runtime flexibility through sandboxed JavaScript execution, configurable request sequence ordering, and an in-memory cron scheduler for TCP push messages. Adopting Loki decoupled mobile releases from staging stability, improving delivery cycles and enabling automated UI testing with Espresso and XCUITest.


[Newer posts](https://yomu.fyi/topic/developer-experience/page/21.md) · [Older posts](https://yomu.fyi/topic/developer-experience/page/23.md)
