The Flutter team is in need of robust infrastructure to facilitate rapid development. To that end, we’re seeking software engineers to join our team and contribute to this effort.
The Flutter team is highly dynamic, and job responsibilities will change as the project evolves. Some examples of projects that you may be tasked with are:
- Ensuring that our continuous integration testing and performance benchmarking solution is robust, scalable, and reliable, by:
- Eliminating sources of test flakiness in Flutter’s automated tests. This may require some combination of the following:
- Refactoring large swaths of Flutter source code to make the code more test-friendly.
- Creating a means by which we can easily identify commits that introduce test flakiness.
- Modifying our test environments to be as hermetic as possible, thus minimizing the effect that environment setup has on test flakiness.
- Scaling our infrastructure to handle a higher throughput of commits without getting backlogged. This may require some combination of the following:
- Smarter scheduling of which tests to run in what order.
- Improved dependency analysis to know which tests may be safely skipped for a given commit depending on what code was modified.
- Avoid testing at every commit to save machine resources, automatically bisecting commits as necessary when a test fails.
- Integrating with existing testing solutions (e.g. Firebase test lab or Skia performance lab) where it makes sense.
- Growing our test matrix to include new target platforms, such as running Flutter on:
- Fuchsia devices
- Desktop devices (Linux, Windows, Mac)
- The Web (inside a browser)
- Building automated alerting for things like build breakages, performance regressions, and critical bugs
- Building automation for streamlining the submission of our community contributed code. This includes:
- Bots that can perform static analysis on submitted code and submit automatic review comments.
- Bots that ensure that code submissions adequately describe themselves (for later inclusion in release notes).
- Bots that ensure that code submissions have a modicum of tests.
The ideal candidate possesses these traits:
- Has the technical wherewithal to implement the example projects above
- Loves making order out of chaos
- Enjoys working in a team environment
- Enjoys talking to other people
- Enjoys problem solving
- Enjoys learning new technologies
Please send the following to firstname.lastname@example.org:
- A resume outlining your relevant experience
- A short introduction describing why you think you’d be a good fit for this position
- The preferred method by which you’d like Google to contact you