Below are some ideas that we would encourage members of the Bradfield community to work on. If you decide to pursue one, we will provide you with mentorship, guidance, review etc at the level that you might expect from a thesis supervisor.
- Interactive development in text editors, e.g. a "swift playground" style environment for JavaScript development in Atom
- Component-centric design tools - with React, front end engineering increasingly involves reusable components but tools for designing reusable components (rather than pages/screens) are very primitive (the state of the art is "symbols" in Sketch)
- Escaping the TTY legacy - what would a REPL look like if it were re-designed from scratch today?
- Riffing off the smalltalk method finder - given an input and output, how well can we algorithmically guess at transform logic? How would this integrate into developer workflow?
- A language (e.g. JavaScript dialect) optimized for maintainability of documentation (e.g. in a literate programming style) or test writing, or both
- An npm alternative or proxy that warns when an installed package is "low quality" or contains a security vulnerability
- A simple optional typing framework for JavaScript
- A testing library that encourages tests to be written alongside function definitions
- A framework for visual diffs and visual regression testing (prior art includes wraith and huxley)
- Improvements to eslint-plugin-react - experience has shown it to be buggy, and there is an opportunity to contribute to auto-fixing
- The atom linter plugin is one of the most popular and useful, but consistently has multiple failing tests
- Practical Algorithms and Data Structures needs work - porting to other languages, adding interactive or animated diagrams, editing, better examples and much more
- Fun, challenging problems for the Trainer app
- Any blog posts, videos, ebooks etc that focus on demystifying concepts that are usually abstracted away from junior engineers
- A one-pager negotiation cheat sheet focused on junior engineers
- A "market rate" calculator