Mark Ku's Blog
Podcast ConversationAI dialogue version of this article · Mandarin audio
Audio for this article is powered by VoAIVoAI

What is Developer Experience?

Developer Experience (DX) is a topic that's rarely discussed but is critically important in the software development process. I believe many developers have encountered situations at work where they could use more efficient new tools or methods to boost productivity, but due to various constraints, they are stuck with cumbersome, inefficient legacy processes or tools. This leads to clunky team collaboration and a stuttering development workflow. This kind of developer experience not only affects development efficiency but can also interrupt a developer's train of thought, further reducing output and creativity.

What have we done to improve developer experience?

To improve developer experience, we've made several adjustments, such as standardizing development, introducing new systems and tools, and setting up better environments:

1. Establishing Development Standards and Norms

  • Define a Coding Standard
    Establish a unified code specification to improve code readability and maintainability.
    Read more

  • Define Team Rules
    Establish team development rules to ensure members have a consistent understanding of how to collaborate.
    Read more

  • Design a New Hire Growth Plan
    Create a comprehensive onboarding and training process to help new hires quickly integrate into the team and get up to speed. We also introduced a Buddy system for new hires to ask questions.

  • Adopt an Agile Development Process
    Improve project flexibility and delivery efficiency by using agile methodologies.
    Read more

  • Technology Upgrades
    The existence of legacy technology is often unavoidable. As time goes on, the larger the version gap in old frameworks, the harder they become to upgrade. Eventually, this makes it difficult to hire new talent, as no one wants to learn outdated tech.

  • Gradually Reduce Technical Debt
    With each feature iteration, think about which features can be refactored at the same time. Of course, this might take some extra time, but in the long run, it will make modifying features much easier down the road.

2. Automated Installation and Standardization of Development Tools

  • Use Chocolatey to quickly install necessary development software
    Utilize Chocolatey to simplify the setup of a new hire's development environment, improving efficiency and reducing errors.
    Read more

  • Introduce ESLint and Prettier
    Configure VS Code to automatically fix formatting and ESLint errors on save, maintaining code style consistency and standardization.
    Read more

  • Write a VS Code standardization setup script
    Provide an automated script for extensions and environment settings to reduce the impact of environment differences on team development.

3. Building a Local Development Environment

Before I joined, all development required connecting to a development environment in the US. However, connecting from Taiwan to the US introduced a latency of 3-10 seconds. This development method easily broke one's train of thought and indirectly affected collaborative efficiency. Therefore, we established a local development environment to improve the developer experience:

  • Local Development Environment Setup

    • Redis Data Synchronization: Used scripts to replicate product data from the US Redis instance, reducing connection latency. Read more
    • Create a dedicated test database for Taiwan: Ensure the Taiwan team is not affected by the latency of the US database, improving testing efficiency.
    • Automated Database Deployment: Introduced an automated process to reduce the risks of manual operations.
      Read more
    • Local Docker Deployment Script
      Provided a simple deployment script written in PowerShell to simplify the setup of a local demo environment.
      Read more
  • Introduce Cloudflare Tunnel
    By using Cloudflare, we set up an independent domain for each developer. Paired with Docker containers, this makes it easy to create independent demo environments for each developer and avoids tedious firewall configurations.

  • Upgrading Developer Machines
    Because the Taiwan branch didn't have an MIS department, I upgraded the team members' computers myself. The standard developer machine configuration includes a CPU of at least an Intel 13700K and fully populated RAM slots.

4. Continuous Integration and Deployment (CI/CD) Optimization

  • Optimize the CI/CD Pipeline
    Continuously improve the automated build, test, and deployment processes to ensure stable and efficient version iterations.
    Related article
    Related article
  • Introduce UI Tests to Protect Core Code
    Related article

By implementing the methods above, we improved the team's work experience, reduced communication overhead and the tediousness of environment setup, and provided a smoother workflow and better support for every member.

Author

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。Read More

Found this useful?

The author's free tools, daily podcasts and newsletter are all here.

Mark Ku · This article is licensed under CC BY 4.0. Credit the author and link back to the original when reusing it.

Comments

Subscribe to Newsletter

Subscribe to get new posts delivered instantly — never miss a tech share.

By submitting, you agree to receive emails. You can anytime.

Popular Posts

View all
Mark Ku
··602

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution
Mark Ku
··490

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.
Mark Ku
··333

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki
Mark Ku
··264

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning
Mark Ku
··221

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1
Mark Ku
··215

Setting Up Samba on Ubuntu to Share Folders with Windows 11

Setting Up Samba on Ubuntu to Share Folders with Windows 11
回顧改善開發者體驗,我做了些什麼? - Mark Ku's Tech Notes