Buildkite is CI tooling that's powerful enough to get the the job done without getting in the way
What do you like best?
Buildkite's biggest advantage is it's flexibility and extensibility of the platform without needing to reinvent the wheel for every little thing. The plugin system allows easy use of third party extensions, while also allowing teams to fork those extensions and customise as needed quickly. The simplicity and flexibility of the agent will enable teams to customise their own worker pools to meet specific needs. The community is also very welcoming and knowledgable; usually willing to share thier experiences and examples of how to solve problems.
What do you dislike?
The main weakness of Buildkite is the lack of reporting and dashboarding within the tooling. It would be helpful if there was a simple build status radiator page to use as a dashboard of failed builds. More reporting of build timings to help focus on areas of improvement would be great as well. Some kind of release management dashboarding would be great as well, providing a simple overview of the last build deployed per environment. This would make it a much more powerful CD platform also.
Recommendations to others considering the product:
Make sure that you leverage the elastic stack if you're on AWS. Make sure that you looking to the plugin system, and particularly how the library-example-buildkite-plugin for how you can easily share common code among different pipelines.
What problems are you solving with the product? What benefits have you realized?
We use Buildkite to manage all our CI across both monolithic and microservice applications, as well as serverless and infrastructure code. We also use it as a flexible job scheduler for adhoc scripts and processes. We've benefited by being able to keep complicated and specific pipelines with the code they're building, as well as leveraging plugins for more common patterns, reducing rework.