In recent years, information technology in China has been advancing at a rapid pace, transforming virtually every aspect of people’s daily lives. But this rapid development didn’t happen overnight. It all started in the late 20th century, when the internet was just beginning to make its way into China, and computers were still seen as a new frontier for many. Seven Du, a veteran developer, was one of the forerunners who embraced the changing landscape and became deeply involved in open source development.
In this interview, Seven shares his story, beginning with his early fascination with computers and his self-taught path to mastering programming skills. He talks about his first experiences online and the communication tools that connected him to a broader world. He also reflects on his time working at Yantai Telecom, where he gained valuable technical experience and saw firsthand the disruptive power of the internet in the telecommunications industry. His career took a major turn when he left the telecom company to join a startup in Beijing, where he was introduced to FreeSWITCH - a pivotal moment that marked the beginning of his involvement in open source development.
As the interview continues, Seven dives deeper into his open source contributions, sharing the challenges and opportunities he encountered along the way. He also discusses the unique struggles Chinese developers face in the international open source community, and the strategies they can use to overcome these barriers.
This interview not only tells the story of Seven Du’s personal technical journey, but also reveals the broader evolution of information technology in China, offering a perspective on how the country’s developers have navigated this digital revolution.
A Journey into Computer World
▮ The Nexus: What was your first experience with computers? Was there anything particularly memorable from that time that you’d like to share?
Seven Du: My first encounter with computers goes back to high school, and it all started with the keyboard. At that time, there was a TV program teaching typing, which I found very interesting. Later, a friend of mine bought a Subor Learning Machine¹, which connected to the TV via an AV cable. This machine was very popular back then and even Jackie Chan endorsed it! I’d never seen anything like it before. I clearly remember how my friend introduced me to BASIC, showing me commands like let a = 1, let b = 2, and print a + b. I had no idea what it was, but he lent me a printed keyboard layout (which came with the Subor Learning Machine), and with that, plus the skills I picked up from the TV program, I quickly learned how to type.
My first real experience with computers was in 1997, during my freshman year at Yantai University. A senior took me to the university’s computer lab. We called it “Shang Ji ” (using the computer in the lab), which cost like one or two yuan per hour. The computers were 286 models, running a diskless Novell Netware, with 5-inch floppy disks. The operating system was something like DOS 3.1. At first, the senior student taught me how to use CAI (Computer-Aided Instruction) to practice typing and basic computer skills. Later, I started teaching myself WPS, a word processing program on DOS, kind of like early Microsoft Word.
One thing that stuck with me was that our department had its own computer lab, and the highlight was this 586 model, which was state-of-the-art and incredibly fast - when you typed a command, the entire output would appear instantly on the screen, unlike the slow scrolling you’d get on a 286. But the system interface was weird back then. When you booted it up, it went straight into a graphical interface with just “My Computer,” “Notepad,” “Paint” and a few basic programs. I was already comfortable with the DOS commands and knew tons of DOS programs like PC Tools, ACDSee (a picture viewer), ARJ (a file compression tool), WPS, etc. So, compared to what I was used to, this shiny new computer didn’t seem to have any real applications. The only thing we figured out was how to right-click and create shortcuts on the desktop, but we didn’t even know what they were for, so basically, nobody used it. It wasn’t until later that we realized this graphical interface was actually a whole new operating system - Windows 95. Once people became aware of that, any new books about Windows 95 in the library would be borrowed right away.
The Chinese version of Windows 3.2 was also a big deal, it came between DOS and Windows 95. But I didn’t even get my hands on it until a few years later, when I was helping out in the university archives, sorting files for the teachers.
▮ The Nexus: How did you learn to program back then? What were the prevalent programming languages? And what factors influenced your choice among them?
Seven Du: In the second semester of my freshman year, we took a course called “Introduction to Computers,” which was when we truly began to understand computers. The course covered topics related to the FoxBase relational database. FoxBase could be also used for programming and developing database applications, but we didn’t get into that part. Later, I borrowed some C programming books from the library and spent the entire summer trying to learn it on my own. The problem was that I didn’t have a computer at home. Fortunately, a friend of mine was running a typing shop in town that offered WPS typing services. Whenever his computer was available, I would use WPS to type out C programs from the books and save them to 3.5-inch floppies. Since there was no C environment on his computer, I had to wait until the new semester started to run and test my programs on the university’s computers. It was then that I started writing my own programs. We also learned C programming that semester, but thanks to my self-study during the summer, I was already ahead of most of my classmates.
The truth is, I chose C because I knew we’d be taking a C programming course the following semester. I didn’t choose BASIC because, at the time, it felt more like an interpreted language (even though you could compile files into .EXE using QBASIC). For me, C is the real programming language.
The C integrated development environment (IDE) we used was Turbo C 2.0, which was already very advanced for DOS. Later on, I taught myself Linux and started learning C on Linux, using GCC as the compiler.
By the time I reached my junior and senior years, almost all the computers at the university had switched to Windows, and some even had Windows 98. Some of my classmates were learning Delphi on their own. Delphi used Pascal, which was considered a RAD (Rapid Application Development) language and primarily used for teaching “Data Structures, ” a course we didn’t have as Physics majors. Instead, we focused more on hardware, like microcontrollers. So, I had to learn data structures on my own. I delved into both Pascal and C versions. Still, I preferred C. There happened to be a C++ version of Delphi called C++ Builder. I then learned C++ and used C++ Builder to develop software for Windows. At the time, Visual Basic and Delphi were the most popular programming tools for Windows, but they weren’t really my thing. I loved programming on Linux, which had its own version of C++ Builder called Kylix (and I believe most people have never heard of it). Kylix never quite took off like Delphi or C++ Builder, so I didn’t go further into it. Plus, the Linux desktop back then wasn’t mature for GUI-based programs. Anyway, I was more into command-line software and server software that didn’t need any GUI.
At that time, the database on Windows was primarily the standalone Microsoft Access, which didn’t support SQL. I hadn’t used Microsoft SQL Server yet, but C++ Builder happened to have a “strange” database called Paradox, which supported SQL. So while I was helping out at the university’s Career Center, I rewrote the “National Graduate Assignment Decision and Support System” with C++ Builder and Paradox. This system was widely used across China, with the first version running on DOS, an environment I was familiar with. Later, a Windows version came out, but it was very buggy. Some finance folks from another university were said to write it, using FoxPro (an equivalent to Windows Foxbase) as their database and development environment. My rewritten version could export database files fully compatible with the original system and ended up becoming my graduation project. Even years after I graduated, the software I wrote was still being used by the university.
FoxPro actually didn’t support SQL, but Power Builder, a tool similar to FoxPro, did. A senior from the Computer Science department introduced me to Power Builder, and I learned it as well, but never used it to write any real programs. After graduation, I joined a telecom company, where some of the information management systems were built by Power Builder. Most of the time, I used this tool to debug stored procedures in Sybase, and sometimes in Oracle.
▮ The Nexus: What role did the internet play in helping you learn computer skills? How did the internet evolve in China during that period?
Seven Du: Initially, I learned computer skills from library books and cheap CDs filled with software and tutorials. While I was maintaining the Graduate Assignment System at the Career Center, I got my first chance to access the internet. Basically, once the teachers got off work, the internet was all mine!Our university was connected to CERNET (The China Education and Research Network), which made commercial internet access quite slow. But this was before the “Great Firewall,” so a world of cutting-edge information was still within reach.
Back then, much of the Chinese content online was from Taiwan and written in Traditional Chinese characters (most of my peers could recognize only a few traditional Chinese characters, but since my grandfather had taught me as a child, I didn’t have any trouble reading them). If there was no Chinese information I needed, I’d turn to English resources. Linux was my main focus, and I spent a lot of time downloading and setting up different distributions, such as Red Hat, Slackware and Debian. There was also a very popular online novel from Taiwan, The First Intimate Contact (similar to the movie You've Got Mail, both telling stories of online romance).
When I joined a telecom company after graduation, internet access became much more convenient. We had Narrowband ISDN that offered a 128k connection, while general home users were still on 56k dial-up modems.
At the telecom company, there were a lot of old computers, and I turned all of them into Linux and Minix machines. Some were too ancient to have network cards, so I got creative and connected all of them together using serial and/or parallel cables. As I explored networking and Linux, I also delved into PHP (versions 3, 4, and 5) and PostgreSQL (starting with version 7.x). In addition, I rewrote the information management system in the equipment room, replacing a colleague’s FoxPro single-user version with a more advanced BS (Browser-Server) architecture.
I didn’t have a computer science degree, and programming wasn’t even my main job. Basically, everything I knew about computers I taught myself, and the internet was the key to it all. As I delved deeper into computers, I found that Chinese resources couldn’t keep up, so I turned to a wealth of English materials. To improve my English, I even translated some articles for LinuxFocus online magazine.
http://www.dujinfang.com/2009/12/05/ceng-jing-zai-linuxfocusshang-fan-yi-de-yi-xie-wen-zhang.html
Then things really moved fast with the internet. ISDN was quickly replaced by ADSL, and before long, broadband was in every home. The cool thing about ADSL was that, unlike dial-up connection, you could still make phone calls while using the internet.
▮ The Nexus: Which online communication tools were popular back then? Which of them were particularly effective in fostering technical discussions?
Seven Du: Initially, we mainly used BBSes through Telnet, and there were web-based versions just coming out. But the most popular platforms for us were the online chat rooms of various universities. Besides our own, we frequently visited the chat room of Shandong Agricultural University. As for BBSes, SMTH² was favored by many.
Later, we started using ICQ, where most of the users were from other countries. I remember explaining Chinese characters to them, like how “日” (sun) and “月” (moon) originated from pictographs. They would say, “It’s like art!” However, accessing international services through CERNET was quite slow. Soon after, we discovered a new tool called OICQ, which eventually evolved into QQ. From that point on, QQ took the lead and has stayed popular to this day.
I used MSN briefly after I started working, but that was many years later. MSN was once seen as a symbol of white-collar professionals, much more refined than QQ. The reason I used MSN was because I worked at an international company for a while.
My first job was at a telecom company, working mostly on telephone-related tasks, which sparked my interest in internet telephony. I often experimented with PC-to-phone and phone-to-PC software, but these applications were still in their early stages and not very stable. Later, I tried Skype, which offered both voice chat and calling services, but making calls cost money, and I didn’t figure out how to pay, so I never used that feature. Skype had the best voice quality at the time, and later QQ introduced voice chat, using technology similar to Skype’s. However, not many people actually used QQ voice chat; most still preferred text messaging.
▮ The Nexus: Which online tech communities or forums did you participate in during the early days? How did these communities contribute to the development of computer technology in China?
Seven Du: When I was at university, the BBS I used most was SMTH. Rooted in Tsinghua University, one of China’s top institutions, SMTH attracted many top-notch programmers. Its contribution to the spread of computer knowledge on CERNET was truly significant.
After graduation, I often visited websites like LinuxEden, ChinaUNIX, and CSDN, though most of the time I was just lurking. Besides translating some articles for LinuxFocus, I also subscribed to CSDN’s monthly magazine Programmer for many years. In 2007, I attended a large offline event organized by CSDN, themed around Web 2.0, which was quite impressive.
New Opportunities
▮ The Nexus: After graduating from university, you joined Yantai Telecom. What were the main services provided by telecom companies at that time? What was your specific role? What did you learn during your time in the telecom industry?
Seven Du: The main business of the telecom company was telephone services. When I joined, China Telecom had been split into separate entities. The mobile business was spun off to form a new, independent company called China Mobile, which focused solely on mobile services, while China Telecom continued to provide landline services. However, the mobile wave was unstoppable, and during my time there, the telecom company started offering “Xiaolingtong” (Personal Handy-phone System)³, a low-power mobile service with limited coverage, mainly used in densely populated cities.
The company also offered internet access, initially through dial-up (163)⁴, and later through ADSL.
Seven Du in the equipment room (next to the Huawei telephone switch cabinet)
I majored in physics, but jobs in physics were hard to come by. Halfway through my studies, the Department of Physics was restructured into the School of Optoelectronic Engineering, and my major changed to Electronic Information Science and Technology. The courses also shifted from pure physics to subjects like “Program-Controlled Digital Switching and Modern Communication Networks” and “Mobile Communications.” This change opened the door for me to join a telecom company. In the past, telecom companies only recruited graduates from universities focused on the telecommunications field, such as Nanjing University of Posts and Telecommunications and Beijing University of Posts and Telecommunications. At that time, the company had several technical focuses, including technologies like switching, transmission, power system, and the internet. Naturally, I was assigned to the switching team, where I ended up doing maintenance for those telephone switches.
The telephone switch we used most was the Shanghai Bell System 1240 (which originated from Bell Labs, known as S1240), and over time, Huawei models such as the C&C08 were added. The role of a telephone switch is to manage telephone exchanges. When you pick up a phone and dial a number, that number triggers the switch to send a ringing signal to the other phone. Once the other party answers, the call is connected.
S1240 is a distributed Digital Telephone Exchange (also known as a telephone switching system). I joined the company with several other new hires around the same time. Thankfully, we had many experienced colleagues who had been with the company for a few years, and they mentored us, helping us quickly understand the system. After a while, the equipment manufacturer also gave us a few months of in-depth training. It’s interesting to know that, even though a telephone switch is hardware, it runs on software. I’ve always been interested in computers, and even without a CS degree, I self-studied many courses, including “Operating Systems,” “Databases,” and “Software Development” during my university years and in my spare time. I did well in them, which made it easier for me to understand the new system. Over time, I developed many automation programs using C and Linux, allowing me to interact with the switch via serial ports. These programs automated alarm analysis and batch processing of work orders, which significantly improved work efficiency. Therefore, I had more time to focus on learning new things that I was passionate about.
While maintaining the S1240, I read nearly every available manual and material, gaining a deep understanding of how it worked. I also came to appreciate the system’s clever, meticulous, and sophisticated design. As we know, phone systems can’t afford any downtime. The systems I maintained ran for over a decade without interruption (though there were upgrades, critical components had backups in place to ensure uninterrupted service). Not everyone has the opportunity to work with such systems, and even fewer can truly understand the complexity and design of them.
Beyond that, I also had the chance to get my hands on different commercial UNIX systems and databases. To be honest, while Linux is definitely more approachable for the average user, UNIX always struck me as more stable and robust. That contrast actually helped me understand Linux at a deeper level.
The computer terminals (80486, 80586) used by Seven Du to control those switches
After a while, the company combined the switching, transmission, and power teams, which really expanded my skill set. Transmission was basically about handling the conversion and networking of optical and electrical signals. The power team ensured the system stayed operational, which included having two separate high-voltage power circuits for the equipment room, with backups like UPS (uninterruptible power supply) and generators in place in case both circuits went down.
Later, I moved into network management and IT operations roles. While I was there, I built multiple information management systems and automated batch processing tools. Just as a side project, I even put together a performance evaluation system for the HR department, and they actually used it for like, ten years! Even though developing software wasn’t my main job, these projects truly increased my productivity. Besides, the whole development process was a total learning experience – I was constantly picking up new skills, which has been a huge asset for my career ever since.
▮ The Nexus: How did telecom companies at that time perceive the rise of the Internet? Among technical staff, was there an awareness that the internet would fundamentally reshape traditional services like landlines, mobile telephony, and SMS?
Seven Du: Overall, the telecom company was embracing the internet. On one hand, the internet definitely brought in new services and revenue growth. On the other hand, it made everyone’s life better. As for the internet’s huge impact on traditional services like landlines, I don’t think people really saw it coming at first, but it didn’t take long for everyone to get the picture. When I joined the telecom company, installing a phone was already very easy and cheap, with basic installation fees even being waived. Later, we were practically having to sell people on getting a landline, and some senior colleagues would tell us stories about how, back in the day, people needed personal connections just to get a phone installed, and the fees were sky-high. But over time, the situation was reversed. This shift was driven by the increased competition in the telecom sector after China joined the WTO (World Trade Organization) and services were unbundled. The internet also played a significant role in it - QQ was just much more convenient and flexible than SMS, and it offered a variety of media like emojis, photos, and even audio and video.
What struck me the most was the plan to add extra digits to phone numbers in Yantai. At that time, we had already restructured into Netcom⁵. Yantai’s local phone numbers were still seven digits, and with the user base growing, moving to eight digits was only a matter of time. We’d been planning for this for ages, working out different approaches. It wasn’t just about tweaking the switch software; it meant ripple effects across all sorts of systems, not to mention getting the public on board with new dialing patterns and even figuring out things like updated phone books. However, this plan was never implemented. The reason was simple: people in Yantai no longer needed so many landline phones.
The internet has deeply impacted telecom services. While telecom companies and equipment vendors responded with lots of efforts to innovate and enhance service offerings – introducing features like caller ID, customized ringback tones, voicemail, having multiple numbers on one phone, or one number ringing multiple phones, they just couldn’t keep up with the fast evolving internet. So, it’s no surprise that traditional telecom companies are experiencing a decline. Even when it comes to internet access, telecom companies are increasingly functioning as nothing more than “pipelines” for the internet, while internet companies take the lion’s share of the profits. Meanwhile, telecom companies are pressured to offer more bandwidth at lower prices.
That said, there’s always a bright side. For instance, although fewer people are sending text messages now, the overall telecom industry is still growing. Sending verification codes actually accounts for a significant portion of SMS services, and as a result, the SMS usage is rising instead of declining.
▮ The Nexus: Why did you decide to leave the telecom company and pursue opportunities in Beijing? After transitioning from a telecom company to a startup in Beijing, what do you think is the biggest difference between the two work environments? How did this change influence your career path and technical growth?
Seven Du: “The world is so big, and I want to see it. ” This was a popular internet saying that truly captured how I felt back then, even though it hadn’t gone viral when I left the company.
At the telecom company, my role was in IT operations, where the biggest part of my work was ensuring system stability. But if everything was running fine, I didn’t really have a way to showcase my skills. I developed lots of systems for the company and got plenty of praise from the leaders, but to be honest, I didn’t care much about that recognition. What mattered to me was that the development process itself was fun. IT operations, on the other hand, didn’t offer much room for creativity. It wasn’t that you couldn’t be creative, but in a telecom company, especially a state-owned company, stability was everything. New ideas always come with uncertainties. What if something breaks? Who’s responsible for the consequence?
One of the reasons I left the company was the “All for Marketing” approach, where not just the sales people, but everyone - maintenance staff included - had sales targets. It could be a certain number of Xiaolingtong units or new broadband customers. It wasn’t that I couldn’t do it; in fact, I did it quite well - I even sold them outside a shopping mall after work, and sometimes lent a hand to colleagues who were struggling to meet their sales targets. But it just wasn’t my passion. What I truly loved was Linux, C, and writing programs.
I felt so relieved when I joined a start-up in Beijing, where I still did the maintenance work initially. It was a small international company with many young people, and the boss was a Stanford graduate. The best part was that whenever we had a conversation, it was about technology or where to hang out - like playing basketball or running marathons together - rather than marketing. Actually we had a separate team dedicated to sales and marketing.
What impressed me the most was that on my first day, my boss handed me half a sheet of A4 paper, which had the passwords for all the company’s servers and code repositories written on it. He really put a lot of trust in me.
I had to learn those systems from scratch (like maintaining an SVN server, writing scripts for batch deployment, and backing up files to the cloud with Amazon S3, etc.), but I had a good knowledge of Linux, which made things easier for me. While maintaining code repos, I even picked up Ruby and Flex (the programming language for Flash, which we still used for many teaching materials at the time), and fixed bugs and patched things up for my colleagues. It was work I was not only good at but also passionate about, and I finally had the chance to fully dedicate myself to it.
▮ The Nexus: During your time working in Beijing, how did you get involved with FreeSWITCH? How did collaborating with international developers for the FreeSWITCH community shape your understanding of code quality, team communication, and open-source culture?
Seven Du: Back in 2008, we were an online English education company. The teachers were based in the U.S., while the students were in China. For speaking classes, students needed to connect with teachers for real-time audio conversations, which required VoIP technology. Initially, we used Asterisk, but soon switched to FreeSWITCH. Back then my role was in IT operations, and I quickly knew how to maintain both software systems due to my background in telecommunications. At the time FreeSWITCH was only at version 1.0, and we encountered quite a few problems while using it. So, I joined the FreeSWITCH community, where we mainly communicated through mailing lists and used Jira for bug management.
Initially, I would report bugs, and I was so impressed at how quickly the FreeSWITCH team fixed them. Generally, if I reported a bug at night, it would be fixed by the next morning. Due to the time difference, while I was asleep, the FreeSWITCH maintainers were actually working on the other side of the world. I looked into every bug that was fixed, including those reported by others. Gradually, I realized that I could fix them myself, so I tried submitting a few pull requests, and to my surprise, they were quickly merged. I didn’t just fix bugs I discovered; sometimes I would fix bugs reported by others. Occasionally, I would also contribute code for new features. Of course, there were times when I would just propose feature requests without contributing code. For a while, I kept submitting a series of related feature requests (they were actually good ideas), all of which were implemented. And then, the author of FreeSWITCH jokingly said to me: “Now, can I take a break?”
I really enjoyed using FreeSWITCH. Even though it didn’t always benefit me, I would try out its features and modules, which led me to report more bugs. I also engaged in discussions on the mailing list and became a very active member of the community. Being a sharer, I often updated the FreeSWITCH documentation (Wiki). In the open source community, there are always people who just report bugs, submit feature requests, or even criticize and complain without really contributing to the community. The FreeSWITCH maintainers would openly express their opinions, and the main point was: all you do is complain and ask for things. FreeSWITCH is free, and we’re willing to share our work, but that doesn’t mean you can just take whatever you want for your personal use. Look at Seven - he has been learning FreeSWITCH and has made a lot of contributions to our community.
With the trust of the community, I quickly gained commit access to the SVN code repository (which was migrated to Git years later), allowing me to commit directly to the FreeSWITCH repository. Though I didn’t commit many changes at the time, I was excited to join the FreeSWITCH community and contribute, even if just a little, to this great software. Being active in the community, I’ve got to know FreeSWITCH maintainers and enthusiasts from all over the world, and everyone is nice. This is the first open source community I formally joined, and it has had a profound impact on me in terms of cross-cultural communication, open source culture, and code quality.
ClueCon (Chicago, 2016), FreeSWITCH core developers (Seven Du on the far right)
The FreeSWITCH community hosts an annual technical conference called ClueCon. In 2011, I secured an opportunity to attend this conference. My company helped me get the U.S. visa, but then changed their mind about covering my travel costs, so I decided to go on my own money. At the event, I met FreeSWITCH developers from all over the world and even got a chance to give a lightning talk. I wasn’t a good English speaker, but I used slides to share my journey with FreeSWITCH, and surprisingly, it received a lot of positive feedback, which boosted my confidence in public speaking.
In 2011, I left the education company and started my own, focusing on FreeSWITCH training and projects like call centers and command-and-dispatch systems. During the process, I noticed that many clients asked for video support. At the time, FreeSWITCH was primarily an audio-only system, with video support just being introduced. So, I spent a lot of time learning video technologies. By applying patches to FreeSWITCH, I enabled video calling and video meetings, eventually contributing all the code to the FreeSWITCH repository. It wasn’t an easy task, though - it actually took me almost a year to get my PRs merged. The reason was simple: my code was initially for personal use, but once I decided to submit it to the repository for everyone, I had to ensure the code quality and compatibility across all platforms FreeSWITCH supports, including Linux, Mac, and Windows. This process was time-consuming and required a lot of communication with the FreeSWITCH team. The upside was that the video features were so new that they didn’t disrupt the existing code, making them easier to merge. Recently, I read about the drama surrounding Rust code within the Linux Kernel, and it reminded me how hard it can be to reach a consensus in an open source world.
The FreeSWITCH team has high standards for code quality, and Anthony Minessale, the creator of FreeSWITCH, once told me, “ If I know there’s a bug in FreeSWITCH, I can’t sleep. ” So I was very careful when submitting PRs. Later, a unit testing framework was added to FreeSWITCH, which has made submitting patches more challenging. Now, unit tests are required when committing new code, and if the tests fail, the code can’t be merged.
The experience I gained from the open source community has been applied to work in my own company, where we follow a similar open source workflow for development and testing, using Issues for discussion and documentation. We are also a “distributed” company, with our headquarters in Yantai and many colleagues spread across China, working remotely. This setup allows us to bring in diverse talents, some of whom are also involved in FreeSWITCH. But compared to an open source community, we work together more closely, which increases communication efficiency.
Discovering Open Source
▮ The Nexus: What was your first experience with open source? How did the open source landscape look in China during that period? Did people truly understand the concept of open source?
Seven Du: I first heard about open source in 1999 while I was still in university. I came across an article in Reference News, and it introduced Linux and a Finnish guy who created an OS, which really piqued my interest. Then I bought a book about Linux and read it voraciously. The book went into great details about Richard Stallman, GNU, Linux, and GPL. After that, I read many learning materials online, so I became aware of open source very early on. But I didn’t participate in any community at that time, because no one around me was discussing open source.
As I mentioned earlier, most of the earliest Chinese materials about Linux came from Taiwan and were written in Traditional Chinese characters. There were certainly Simplified Chinese versions, but I don’t remember much about them. What I remember from the articles I read back then is that there were indeed people who truly understood open source, though such people were very rare.
However, just because people understand open source, it doesn’t guarantee they will comply with its licenses. As I recall, some years later, Tencent was listed on FFmpeg’s Hall of Shame page for license violation. They used FFmpeg in their QQ Player without adhering to the open source license, which caused quite a stir in the open source world. At the time, Tencent wasn’t as successful as it is today, and they eventually addressed the issue. In recent years, Chinese companies and developers have started contributing to open source, which is gradually changing how the international open source community views us.
As for the Chinese open source community back then, I can’t really say much because I didn’t know anything about it. It wasn’t until years later that I learned Wensong Zhang had contributed LVS code to the Linux kernel, which became a well-known example. At that time, most people were either using or boasting about open source software, but very few were actually contributing code. Of course, using and promoting it was still a kind of contribution, so the overall atmosphere was positive. Soon after, many open source discussion forums and Chinese learning resources began to appear online, mostly focusing on Linux and its software. I knew very little about open source software on Windows, probably because I wasn’t paying attention. However, Wintel (a combination of Windows and Intel) systems were very popular, so there was plenty of free software available for Windows, often referred to as shareware, such as NetAnts (a multithreaded download manager) and Winamp (a music player).
Around 2008, I attended an offline activity organized by Zeuux (哲思) Linux Community at Tsinghua University, where I met Richard Stallman and even received a book with his autograph. But I forgot to take a photo with him. Richard Stallman, who leads the Free Software Movement, was willing to participate in an event in China, showing that there were people here who truly understood him. But Stallman believes that open source software is not the same as free software, and the two have many fundamental differences.
▮ The Nexus: Why did you decide to create the FreeSWITCH Chinese community? What obstacles did you encounter while building the community?
Seven Du: We Chinese are known for being diligent. Many open-source technologies (such as Ruby and PostgreSQL) I knew had Chinese websites. I translated some SQLite articles while I was also translating for LinuxFocus, but soon after, SQLite launched its own Chinese website. When I started learning FreeSWITCH, there was no Chinese website, so I built one. It just felt like the right thing to do.
But it was just a website, not a community, which should have been paired with a BBS back then. However, when the FreeSWITCH Chinese community was built in 2009, internet censorship was getting stricter. As a personal website, it was practically impossible to set up a BBS, so there was no account system for the Chinese community. Later, a friend online, nicknamed “Big Bear,” created a QQ group, where we could all communicate.
I once created a FreeSWITCH group on Google Groups, but unfortunately, Google left China in 2010. People could still discuss issues in the FreeSWITCH group via mailing lists, but there were very few participants, and it was soon abandoned.
Without a discussion section, the FreeSWITCH Chinese website essentially functioned as a blog. At the time, I was working on a book about FreeSWITCH, starting by publishing it online as a blog series. Unexpectedly, someone uploaded it to Baidu Wenku, a Chinese document-sharing platform provided by Baidu, without my permission. This upset me, so I reported the issue to Baidu, but it was ignored. In response, I wrote an article criticizing Baidu, which was later reposted by an influencer on Weibo (the Chinese equivalent of X). The article gained some attention, and as a result, Baidu Wenku removed the document. However, the consequence was that our website’s ranking dropped, making it harder to find those blog posts on Baidu for several months.
But like weeds, it kept growing back. My articles got posted on various websites, including Baidu Wenku again, most of which didn’t even link back to my blog. Beyond that, many of the page layouts were a mess, and I simply didn’t have the strength to report every single one.
Despite that, my first book, FreeSWITCH: The Definitive Guide (《FreeSWITCH权威指南》), finally came out in 2014. Even now, it’s still the best guide to learn FreeSWITCH.
▮ The Nexus: You’ve been actively involved in the international open source community for years and have participated in FreeSWITCH’s ClueCon events multiple times, which gives you plenty of opportunities to interact with global developers. In your opinion, what are the key cultural and practical differences between open source communities at home and abroad?
Seven Du: The international community generally values copyrights and open source licenses, but that’s not really the case here.
International developers contribute a lot more code to open source projects than their Chinese counterparts. Take FreeSWITCH, there has been virtually no contribution from Chinese developers, aside from me and my team. Language barriers do play a part, but I don’t think that’s the main reason.
People outside China may have less work pressure and more time to contribute to open source projects, while people here are often occupied with work. Sometimes, even if they want to contribute, they are unable to, and their bosses wouldn’t allow it, as most of them don’t understand open source. Besides, many large tech companies lack mechanisms to facilitate contributions, which further hinders developers’ involvement. In recent years, with the efforts of open source advocates, the Chinese open source community has been improving. The government is also increasing its support, which seems at odds with the concept of open source. But still, I don’t see FreeSWITCH getting more Chinese contributors, at least not yet.
Inspired by ClueCon, I’ve been organizing the annual “FreeSWITCH Developer Salon” since 2012, with 100 to 200 participants each time. It has continued to this day. Since we don’t profit from it, we have to seek sponsors to cover the costs. But when we see people joining our event, we are motivated to keep it going. I also enjoy talking with those participants.
▮ The Nexus: In driving open-source projects, what specific challenges do Chinese developers face compared to their international counterparts? What strategies do you think Chinese developers should adopt to bridge the gap with the global community and increase their participation and influence in open source projects?
Seven Du:First, there’s the language barrier. While most Chinese developers have learned English at school, it’s still challenging for them to write in English, especially when communicating with international developers, and even more so to speak it fluently. Now with various AI tools coming out, it could be solved, but I’m not seeing much progress yet.
Communication is another challenge. While many Chinese developers are highly skilled, they are not good at expressing themselves and communicating with others. Even without the language barrier, they are not as communicative as developers overseas.
Next is the understanding of open source. While using open-source software every day, most developers either don’t fully understand it or lack the motivation to do so.
Regarding how to enhance open source engagement and influence, I don’t see a simple cause-and-effect relationship, but rather a reciprocal one. Increased participation in open source definitely leads to greater impact, and this is, in fact, a key strategy. So, the fundamental goal is to involve more people.
As I mentioned before, you don't have to directly contribute to a repository or documentation to be involved. Translation, promotion, advocating for open source, or even simply using open source software all count as contributions. At least, you are contributing as a user. With more users like you, the open source community can truly flourish. However, this alone is far from enough to enhance your open source development on a global scale. To truly make an impact, direct contributions to repositories, documentation, and more frequent issue submissions, along with active engagement in discussions, are essential.
I once shared this advice with those looking to get involved in open source: find open source projects that you like or use often, and review their code and documentation, where you’ll likely come across some typos. If you find any, submit a pull request (PR), which is usually easy to get merged. Of course, it’s even better if you can identify and fix a bug. Starting with small tasks (don’t underestimate the importance of small things), you’re already participating in international communication and collaboration. This experience is even more valuable than the patch itself. Once you take the first step, everything will start to feel easier.
That’s exactly what I did. In addition to participating in FreeSWITCH discussions and fixing bugs, I reviewed almost each commit. This helped me understand FreeSWITCH not just as it is now, but also its evolution over time. Many developers new to open source projects often struggle to find a starting point. But if you shift your approach and start reviewing every PR from now on, paying attention to the questions asked and how they’re addressed, you’ll quickly understand the project and know where to focus when diving into the code. You might even come up with better ideas for someone else’s PR or even find a bug in it.
There are many ways of getting involved in open source projects, and they vary from person to person. But overall, it’s really about being able to handle the challenges ahead. For example, you can improve your English and try communicating without using an AI tool; be more proactive in your communication - start by engaging with developers at home and then expand to international ones; and of course, the most important thing is to raise awareness of open source and get more involved in activities within the Chinese open source community. If possible, you can gradually extend your reach to the global open source community.
▮ The Nexus: Is open source commercialization a viable model? Can it truly stand up to market pressures? How do community-driven open source projects compare to those led by companies? What’s your take on the differences between the two? ( You can use FreeSWITCH as an example to explain the commercialization of open source software. ) How do you approach the balance between open source and commercialization in your own company?
Seven Du: Open source and commercialization are inseparable! Linux is one of the most successful open source projects in history, but without commercial support of those big tech companies - such as Red Hat, Intel, Google, IBM, Huawei, and even Microsoft (remember when Microsoft once called open source “cancer” and then completely shifted its stance?) - could it have become this big? Volunteer efforts are often short-lived and not a sustainable model without commercial backing.
Linux itself isn’t commercialized, but that hasn’t stopped it from becoming one of the most successful open source projects. Community-led and company-led open source projects are clearly different; Linux is too unique to explain all of this. Community-led open source development values “fairness and justice,” but without support from commercial companies, progress can be slow. It’s similar to China’s opening policies - the free market comes with a series of problems, but we need development, so we take that path even if we know challenges lie ahead. Whether it’s a planned or market economy, it’s a good choice if it supports development and history has shown that we made the right decision. In the same way, I believe open source and commercialization are complementary.
Open source doesn’t contradict commercialization, and it hasn’t since Richard Stallman started the Free Software Movement. The essence of both is about sharing - if you have access to the source code, your users should have it too, and it doesn’t mean people can’t make money off it. Some people used to profit from selling open source software or source code, but that model no longer works. When customers can easily access the source code, your offering loses its value. The commercialization of open source is just like any other commercial activity. In the era of the internet, many products or services that were once paid are now free, but you’re still paying in other forms, like watching advertisements or sharing personal data (like spending habits).
For this question, FreeSWITCH might not be an ideal example.
FreeSWITCH is an open-source software project with a great community where people are very nice. Behind it was a consulting company called FreeSWITCH Solutions. I love this community and, over the past 20 years, have attended more than half of the CluCons - an annual in-person event hosted by the FreeSWITCH community.
However, relying solely on business consulting and donations wasn’t financially sustainable. Later, the original FreeSWITCH team founded SignalWire, which acquired FreeSWITCH Solutions and shifted its focus to delivering voice, video, and messaging infrastructure. SignalWire is not an open-source software company, but it remains the driving force behind FreeSWITCH’s development and continues to be its main contributor. SignalWire’s commercial platform is also built on FreeSWITCH, serving as the foundation of its business strategy, which has seen some success (achieving this level of success is no small feat for an open-source project).
I don’t see FreeSWITCH as a perfect example of open source commercialization mainly because it’s still a relatively small, private company, not a project managed by an open source foundation. Generally speaking, projects that are managed or incubated by open source foundations tend to have well-established management systems for development and decision-making, along with a wider recognition in the community.
With so many projects fading away, FreeSWITCH has survived for 20 years since the first line of code was written. Whether or not it has achieved successful commercialization, its longevity speaks for itself. Our team has been contributing to FreeSWITCH and working on commercialization based on it, offering various commercial products and services. To be honest, we’re not doing a great job, but since 2011, most of our revenue has come from FreeSWITCH related products and services, and we’ve made it through the toughest times, for which we are deeply grateful to FreeSWITCH.
In the long course of history, humanity has greatly improved productivity through division of labor and cooperation. In much the same way, open source development boosts our productivity by sharing code. Despite the twists and turns, everything is spiraling upward. I firmly believe that, in the long run, open source will prove to be the right path, even though it has to face plenty of obstacles and occasional setbacks. In recent years, open source training frameworks, large language models, and inference code have played a key role in driving AI’s rapid development. Robin Li, Baidu’s CEO, once said at an AI conference in 2024, “Open source models are increasingly falling behind.” He certainly didn’t foresee the success of DeepSeek. Recently, Baidu has adopted DeepSeek’s AI models and announced plans to open-source its upcoming Ernie 4.5. It’s like how Linux eventually replaced Unix - how many commercial Unix systems are still around these days?
Notes:
The Subor Learning Machine was a popular Chinese educational computer in the 1990s. It was a hybrid device - part educational tool, part gaming console - that featured a keyboard and connected to a television, allowing users to interact with it through games and programs displayed on the screen.
SMTH (Shuimu Tsinghua BBS) is one of the most prominent Chinese university-based online communities, originating from Tsinghua University in the 1990s. It provides a platform for students and alumni to discuss a wide range of topics, from academics to personal interests, and has played a key role in shaping Chinese internet culture.
The PHS (Personal Handy-phone System), also known as “Xiaolingtong”(小灵通)in China, was a cordless phone service that provided mobile communication in urban areas during the late 1990s and early 2000s. It was widely popular in China before the rise of 3G and smartphones, offering affordable call rates and a local coverage area.
Before broadband became available, Chinese internet users had to dial “163” to access the internet.
China Netcom (China Network Communications Group Corporation) was one of the major telecommunications companies in China before its merger with China Unicom in 2008. It provided broadband internet, landline phone services, and other telecommunications services across northern China and was known for its large-scale infrastructure and role in the development of China’s internet and telecommunications networks.
The interview questions are reviewed by Barry Zhao and Ron Frederick; the interview article is edited by Alex Li.
Thanks Alex!