- A highly extensible and composable Node.js and TypeScript framework for building APIs and Microservices
- Winner of API World’s 2019 Best in API Middleware
- Over 1.5 million npm downloads in 2020
- My contributions (as a creator and maintainer) can be seen at:
Cloud native Monetization Microservices for API Connect (built with LoopBack)
- Expose a set of billing REST APIs defined by an OpenAPI spec
- Allow pluggable integration with external billing providers such as Stripe and KillBill
- Deploy to Kubernetes with health check, metrics, tracing, and mutual TLS
Cloud provisioning of API Connect as SaaS offerings for API management
- Provision instances of API Connect for SaaS customers using Kubernetes
- Automate the workflow using ArgoCD, Terraform, Kustomize, and Kubernetes Operators
- Integrate with IBM Cloud infrastructure, such as catalog, security, monitoring, billing, and logging
- Craft platforms and applications to unleash the power of data, services, and infrastructure by APIs
- Lead enterprise-scale development with startup spirit for innovations and open source methodology for collaborations.
- Practice and promote architectural simplicity and flexibility driven by user experience and big picture, lead by spiking, coding, reviewing, refactoring, mentoring, and evangelizing
- Innovate and iterate in fast pace with startup/entrepreneur mindset backed by deep enterprise experience, knowledge, and vision
- Advocate blog-driven development methodology to connect all stakeholders to collaborate in form of blogging
- Diagnose and solve complex problems with great insights in many systems and components
- Learn and master new things and new ways of doing things eagerly, effectively, and quickly
- Foster strong collaboration and open communication to enable distributed teams
- Optimize the project management with agile methodology and tools
Passionate community builder
- Create and grow multiple open source projects and communities
- Engage in users to address their needs and develop more contributors for the project
09/2015 - Present IBM Corp., Foster City, CA, USA
STSM, Architect, API Connect
Build API solutions for large-scale development and deployment
Lead the architecture and development of LoopBack framework as a strategic IBM open source project
- Build LoopBack 4 - https://github.com/strongloop/loopback-next in TypeScript with great extensibility and composability
- Extensible and composable core foundation for large-scale Node.js frameworks and applications
- Inversion of Control/Dependency Injection, Extension point/Extension, Middleware/Interceptor
- Cloud native extensions for health/metrics/logging
- Extensions for GraphQL, TypeORM, gRPC, WebSocket, Pooling, and Cron
- CLI commands for app/extension, OpenAPI, service, interceptor, observer, copyright, update
- Database and service connectors
- Maintain LoopBack 3.x
- Enable cloud native and polyglot microservices
- Enable LoopBack integration for IBM products, including the create pillar of API Connect and as the base platform for App Connect
- Mentor team members and community contributors in many perspectives
- Contribute to IBM’s Node.js strategy, development experience, and reference architecture
- Contribute to IBM’s POV of cloud native microservices
- Perform Node.js architecture review and performance troubleshooting/tuning for customers
- Build LoopBack 4 - https://github.com/strongloop/loopback-next in TypeScript with great extensibility and composability
Lead the architecture and development of cloud-native monetization microservices for IBM API Connect
- Expose REST APIs
- Integrate with Stripe and Kill Bill via REST APIs
- Allow pluggable billing providers with multi-tenancy
- Enable cloud native health check, metrics, and logging
Take the new ownership of SaaS provisioning of API Connect on IBM Cloud
- Kubernetes with Kustomize and Operators
- GitOps automation with ArgoCD
- Terraform for cloud resource/service provisioning and management
- Integration with IBM Cloud infrastructure for security, database, monitoring, billing and more
Represented IBM in the OpenAPI working group to help formalize the specification version 3.0.0
Bootstrapped the IBM Microgateway - https://github.com/strongloop/microgateway
03/2013 - 09/2015 StrongLoop, Inc., San Mateo, CA, USA (Acquired by IBM in 09/2015)
Envision the great market opportunity for API solutions and bet on the emerging Node.js platform to accelerate digital transformation of business
Co-founded the startup to ride on the booming API economy by unleashing the power of Node.js platform for business-critical and mainstream use cases. Quickly established us as a thought-leader in the API and Node.js community. Successfully delivered products and services to gain tractions and be loved by developers. Acquired by IBM within 2.5 years for a great exit.
- Led the core architecture, design and developer experience
- Implemented many key features, including but not limited to:
- Models & JSON based language for modeling, query, and mutation
- Oracle, MySQL, PostgreSQL, MongoDB, SQL Server, …
- REST, SOAP, gRPC
- Access control
- Middleware pipeline
- Integration components
- Push notification, Cloud storage, Passport security, oAuth2
- CLI, StrongLoop Arc, and API Explorer
- A Node.js API gateway that secures and protects APIs
- Drove the adoption by meetups, conferences and blogs
Helped drive Node.js for mainstream and enterprise adoption as the company’s strategic vision
04/2010 – 02/2013 Shutterfly, Inc. Redwood City, CA, USA
Staff Web Engineer, Platform Engineering
Apply SOA and API skills and visions to real-world web applications. Craft microservices to build modern backend. Create API servers for mobile and integration. Enable big operational data for search and analytics.
Built the service externalization platform to support Shutterfly’s next generation open web APIs. Drove the adoption and implementation of oAuth 2.0. Developed a reverse HTTP proxy to route and dispatch API requests to the backend services across different platforms such as Java, PHP and .NET. Created a DSL language called Universal Data Definition Language (UDDL) to facilitate the domain driven design as the key enabler to build remotable services.
Renovated a set of core services for the Shutterfly business domain using the Tuscany framework and service standards to form the foundation of Enterprise services.
Rolled out Shutterfly’s brand new Address Book, Address Verification, and Tax Calculation services before 4th quarter of 2011. The Address Book service is rebuilt on REST & JSONRPC with the MongoDB store. Developed a migration tool and process to migrate millions of user contacts from Oracle into MongoDB without disruptions. The Address Verification and Tax Calculation services wrap 3rd party software stacks and make them highly performed and scalable. Established a role model of future projects migrating legacy functionality to the shared service platform (SSP).
Developed the Archive Service/API to support content/image uploads into Shutterfly using HTML 5 or mobile.
Drove the investigation into remoting a 3rd party e-commerce platform that consists of a set of Spring services tied to JPA persistence. Developed a reverse engineering tool to generate DTOs from JPA entities as well as Tuscany facade services that delegate to the Spring beans.
Led the effort to adopt ELK platform the collect massive log data from all servers into an ElasticSearch cluster for searching and analytics.
Continued to contribute to open source projects. Co-developed a Tuscany binding to support REST based JAX-RS. Enabled Tuscany integration with Spring Web and MVC. Developed a Tuscany composite diagram Maven plugin to visualize the deployed services. Contributed Google Protocol Buffer and Apache Thrift providers for JAX-RS to Apache Wink projects. Submitted multiple patches to Apache Amber project to support the latest oAuth 2.0 specification.
05/2002 – 04/2010 IBM Corp. Foster City, CA, USA
Make SOA practical to build composite applications: Decompose, Componentize, and Assemble
Senior Software Engineer
05/2006 – 05/2010 Apache Tuscany PMC member and committer
A key developer of Apache Tuscany project - http://tuscany.apache.org/ with leadership in many of the areas, including:
- The composable and extensible kernel that comes with modularity, extensibility, and pluggability
- Java models for SCA and supporting artifacts, including assembly, policy, interface, and WSDL/XSD
- High-performed StAX loading/saving of SCA configuration between XML and Java
- Core runtime for metadata driven activations and invocations
- Distributed SCA domain that consists of multiple nodes that share the endpoints and policy definitions using stacks such as Apache Tomcat Tribes or Hadoop Zookeeper
- Databinding framework that facilitates data transformation between JAXB, SDO, AXIOM, DOM, SAX, StAX, XMLBeans, JSON and XML String to give the application components freedom to choose their own databindings
- Java annotation processing and dependency Injection
- Component Implementations such as Java, OSGi, XQuery, Spring and BPEL
- Protocol Bindings such as Web Service, RMI, JSONRPC, ATOM, EJB and CORBA using stacks such as Axis2, Tomcat, Jetty.
- Web Integration for Tuscany SCA including Google App Engine
- Led the efforts to enable Tuscany runtime with OSGi
- Led the design and implementation of OSGi remote services with SCA for the emerging OSGi enterprise specs including OSGi remote services, SCA configuration type and remote service admin.
- The main contributor to Tuscany architecture Guide, extension Guide and databinding Guide
- Provided technical leadership in Tuscany to deliver required features for WebSphere SCA Feature Pack through iterations.
Open source community building:
- Followed Apache’s guidance to drive the Tuscany project through incubation to become a top level project
- Advocated Tuscany in the Google Summer of Code (GSoC) program
- Mentored contributors including GSoC students to become committers
- Hosted a Google group for the Chinese-speaking Tuscany/SCA Community
- Interacted with other open source projects
Contribution to industrial standards
- Member of OASIS OpenCSA Assembly/Java/Policy subcommittees
- Member of OSGi Alliance EEG
Evangelist for Tuscany SCA
- Articles (JDJ, InfoQ.com)
- Conferences (JavaOne, ApacheCon, OASIS Symposium, SOAWorld etc, ACM SIGMOD)
- Book - Co-author of Tuscany SCA in Action - https://www.manning.com/books/tuscany-sca-in-action published by Manning
01/2006 – 05/2006 Team Lead, WebSphere Process Server SCA development
- Successfully led the team to deliver the features and bug fixes for the 220.127.116.11 release in time
- Migrated SCA on top of WebSphere 6.1, especially the integration with OSGi which set a guideline for other WPS components
- Fixed a list of complex defects for WPS 6.0.1 to ensure the on-schedule release. Fixed around 40 defects in SCA for WPS 18.104.22.168 to achieve the performance and stability goals. Resolved several critical customer issues to support customer adoptions
Advisory Software Engineer
01/2005 – 12/2005 Team Lead, WebSphere Process Server SCA development
- Successfully led the SCA team in delivering features in time with high quality following development processes and guidelines across Beta, GM and GA releases of WebSphere Process Server (WPS) 6.0.0 and 6.0.1. As the owner of the foundational stack of a complex product, resolved more than 500 issues, including fixes for more than 200 bugs.
- Contributed to open source Tuscany project with the Web Service feature for Apache incubation.
01/2003 – 12/2004 WebSphere Process Server SCA development
- Incubated a component based programming model and system design for building composite applications following SOA principles as the foundation for IBM WebSphere Process Server - a business integration platform and enterprise service bus. Such ideas led the introduction of Service Component Architecture (SCA) - https://en.wikipedia.org/wiki/Service_Component_Architecture.
- Designed and implemented key features of SCA runtime using J2EE. Provided technical expertise in many areas including SCA container/qualifier, J2EE and WebSphere for inside and outside the team. Took ownership to test drive platform integration of SCA with the WebSphere and Rational Application Developer (RAD) and provided guidance to the team. Supported other IBM teams to adopt the SCA technology. Supported the rest of the WBI team to integrate their components on top of SCA.
05/2002 – 12/2002 J2EE-based business integration platform using WebSphere
Evaluated and prototyped J2EE and WebSphere Application server as the stack for building business integration platforms.
Investigated various technologies such as J2EE, Web Services, WSIF, Workflow, JCA, AsynchBeans and WorkArea to deliver features for WebSphere Business Integration Server via CrossWorlds acquisition.
12/1996 – 05/2002 Soft Tech Development, Inc. (San Jose, CA, USA)
Principal Engineer/Architect (8/1998-05/2002)
- Architect/Project Leader of e-OpenBridge, a middleware suite that provides Java APIs to access legacy data and applications on IBM S/390 mainframes using state-of-the-art technologies such as Java, XML, EJB and CORBA.
Senior Software Engineer & Training Instructor (12/1996-7/1998)
- Provided architecture and design consulting for People’s Bank of China’s national consumer credit reporting system.
- Delivered more than fifteen IBM courses on S/390, CICS, MQSeries, RS/6000 AIX and RS/6000 SP, Java, TCP/IP to our banking customers
- Implemented a Web-based online banking system using IBM CICS on OS/2, SUN Solaris and S/390.
03/1992 - 07/1996 Freelance Developer (Part-time), Beijing, China
- Developed the high performance trading engine and clearing system in C, SQL and 4GL on HP-UX for first three futures exchange opened in China.
1993-1996 Master of Computer Engineering, Institute of Software, Chinese Academy of Sciences, Beijing, China
- 1996: Honor graduate of Chinese Academy of Sciences
1988-1993 Bachelor of Computer Software, University of Science and Technology of China, Hefei, Anhui, China
- 1993: Honor graduate of Anhui Province
- 1988: First place in Anhui Province, National Higher Education Entrance Examination