菜单
Committed to Open Source
ThoughtWorks contributes to and uses open source software wherever possible.

Software excellence


We are a bit fanatical when it comes to delivering software. We’re serious about our craft and are always striving to improve the way we do things. And we like to push the industry as a whole to improve. This is a central tenet of our software excellence mission.


We believe that software quality is driven by open communication, review and collaboration. That’s why we’re such vehement supporters of open source and have been throughout our history. Open source enables us to build superior solutions to those based on proprietary software in terms of cost, freedom, privacy, security, quality and community. Building open source allows us to pay it forward, share new ways of working, and learn from the wider community.

What we are building


Our technologists bring successful, field-tested techniques and ideas from around the globe to open source solutions. Here are some highlights of our work across many domains including machine learning, security and privacy, global health, continuous delivery, monitoring, testing, and software development tools.

Machine Learning

DeepLearning.scala is a domain-specific language embedded in Scala, for creating complex neural networks. DeepLearning.scala enables programmers who aren’t machine learning specialists to build complex neural networks from simple code. A developer simply writes code in Scala with static typing.


Learn more >

EmoPy is a deep neural net toolkit for emotion analysis via facial expression recognition (FER). It serves as an accessible educational tool and practical example of how to approach the problem of emotion detection via FER. It has already generated interest with students, academics, robotic scientists and other tech consulting firms.


Learn more >

Security and Privacy

Data Anonymization, a tool written in Kotlin, helps build anonymized production data dumps, which you can use for performance and security testing, as well as debugging and development. With Data Anonymization you can avoid data leaks while copying data for test/debug purposes.


Learn more >

Deprovisioner is an account deprovisioning platform for heterogeneous systems. If you're using GMail, Google Drive, Okta like us, Deprivisioner is a tool that can help you. It’s also architected to accept plugins for other deprovisioning work, giving you the potential to handle a heterogeneous environment through a single "deprovision user abc" command.


Learn more >

By hooking into the pre-push hook provided by Git, Talisman validates the outgoing changeset for things that look suspicious — such as authorization tokens and private keys. Install once and it works for every repository, which makes it easy to setup and ensures accidental check-ins to personal repo won't happen. It can also be used as a scanner in CI pipelines.


Learn more >

Hawkeye scanner-cli is a project security, vulnerability and general risk highlighting tool, which integrates into pre-commit hooks and pipelines.


Learn more >

Health

​Bahmni, an easy-to-use EMR & hospital management system, combines and enhances multiple open source products into a single solution (including integration with DHIS tracker which was built in collaboration with PSI Zimbabwe). It has been designed for hospitals, including those operating in resource-constrained settings.


Learn more >

Continuous Delivery and Monitoring

Understanding your build pipeline and continually improving it isn't always easy. buildviz provides graphs detailing runtime behavior, failures and stability of your pipeline, answering questions like "has a job gotten considerably slower?", which can help to improve your pipeline.


Learn more >

Your builds should always be green. As a build monitor with attitude, Nevergreen understands this. It only shows you projects that have failed or are building.


Learn more >

Simplify Continuous Delivery. GoCD enables you to easily model and visualize complex workflows end to end. It also supports modern infrastructure and cloud deployments.


Learn more >

Testing

batect (build and testing environments as code tool) makes it easy to set up and share a build environment based on Docker. It becomes the entry point script for your build system, launching containers to perform build tasks that don't rely at all on local setup. It solves the "works on my machine" problem nicely.


Learn more >

Enqueuer is an integration testing tool that supports multiprotocol flows, with an easy-to-use CLI you can add it as a CI task.


Learn more >

Mountebank is the first tool to provide cross-platform, multiprotocol test doubles over the wire.

Simply point your application under test to mountebank instead of the real dependency, and test like you would with traditional stubs and mocks.


Learn more >

A GUI client for the Enqueuer service. It aims to provide a clean, fun, and good looking interface for interacting with polyglot flows.


Learn more >

Appium Test Distribution is a tool for running Android and iOS Appium tests in parallel across devices.


Learn more >

Taiko is a node.js library with a clear and concise API to assist with Chrome or Chromium browser automation. With Taiko there's no need for ID, CSS or XPath selectors or adding explicit waits (for XHR requests) in test scripts, the interactive REPL recorder comes in handy when you want to develop the tests side by side as you explore the functionality.


Learn more >

Tools

Want to start learning code? Code Newbie is a small project with useful references that are free.


Learn more >

Fork Awesome is a fork of the famous Font Awesome icon set. The intention behind the fork is to keep the legacy icon set alive and fully open source, while continuing to improve it through truly collaborative and open design practices.


Learn more >

Laconia is a small, lightweight framework for developing AWS Lambda functions in JavaScript.


Learn more >

Help us


Apply for a job at ThoughtWorks to join these and many other contributors.

Be a part of our open source community