tech-stack/README.md
We have a standard technology stack that we use for each new project by default. This provides a proven base for rapid, quality development and ensures we have a large team of developers ready to jump on new projects using a known technology. It helps to avoid decision fatigue at the beginning of each project.
We deviate from this stack when we find something new that we need to evaluate. This allows us to practice our value of Continuous Improvement.
We will also swap in alternate technology as necessary when our default stack is inappropriate for the task at hand. This allows us to practice our value of Quality.
Most developers at thoughtbot learn our Core Stack. The stack is broken up into layers and each layer depends on another layer. This allows us to swap out an entire layer when necessary without losing all the decisions made for other layers. Developers will have varying levels of experience with each layer, but the gaps between layers are small enough that developers can learn a new layer while building applications.
ruby-kafka by default when connecting to Kafka from Ruby applications.Some applications require functionality that is difficult or impossible to provide using the Core Stack, or would require an unacceptable compromise on quality or user experience. In these cases, we utilize alternate, specialized stacks. Because the gaps between stacks are larger than the gaps between layers in the Core Stack, most developers won't learn these technologies, and the specialists who learn these stacks are unlikely to be able to learn many layers in the Core Stack.
xcodebuild for building iOS apps.xcpretty to format xcodebuild output.We recommend learning at least one of the following: