menú

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.

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.

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.

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.

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.

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

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.

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.


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.

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

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.

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

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.

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

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

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.

Tools

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

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.

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

Help us

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