Tim Graham
- Project
- Django
- Location
- Glen Mills, PA USA
- Day job
- Django Fellow
Tim Graham
Tim Graham started contributing to Django as part of a college research project. Now he helps maintain the popular web framework full time as a Django Fellow.
I started Vue as a personal project when I was working at Google Creative Labs in 2013. My job there involved building a lot of UI prototypes. After hand-rolling many of them with vanilla JavaScript and using Angular 1 for a few, I wanted something that captured the declarative nature of Angular’s data binding, but with a simpler, more approachable API. That’s how Vue started.
In late 2015 I started to seriously consider working full-time on Vue since its growth was very promising, and I had many ideas that I thought would push the project even further. In February 2016 I started a Patreon campaign where users and companies could make monthly pledges to support my work on Vue. To my surprise, the campaign got traction quickly, and now I'm able to work on Vue full-time. I'm extremely grateful to the community for making this a reality.
Over time many wonderful community members have joined me and we now have a core team and other active community members helping me with all aspects of the project. Vue is currently funded by the community through Patreon.
Working on Vue was how I grew as a developer: It motivated me to research and learn whatever it took to implement the features I wanted, and I had to hold myself up to decent engineering standards to keep the project maintainable. When the project got bigger and more opinions started to surface, I started to understand the art of trade-offs in software engineering and how different goals can lead to different design decisions.
As Vue grows in popularity, comparisons with other frameworks have led to long debates. Being the maintainer of Vue actually allowed me to look at all this from a different perspective and realize how important it is to keep an open mind and embrace the fact that having choices is a good thing.
"Working on Vue was how I grew as a developer: It motivated me to research and learn whatever it took to implement the features I wanted."
Properly prioritizing different types of tasks. For a very long time I tried to fix issues as fast as possible and only work on planned features after. My experience so far is that this model isn’t sustainable. My work schedule became very ad-hoc because issues can arrive at unpredictable times, and it’s hard to know how long it will take to triage and fix certain bugs.
I'm now experimenting with a different model: I have unsubscribed from most of the projects’ notifications and only triage issues in batch with a fixed schedule. The core team members filter the incoming issues and only ping me when something is critically wrong. This allows me to take better control of my time and stay focused.
As a maintainer, most of the time you get pinged for problems in your project. Although it happens less often, it’s very heart-warming when users send you encouraging messages telling you how your project has made their work more enjoyable and how grateful they are for that. I'm quite proud that all the private messages I got on Reddit are the extremely positive type.
"It’s very heart-warming when users send you encouraging messages telling you how your project has made their work more enjoyable and how grateful they are for that."
Don’t press yourself too hard, take breaks from time to time, and take it easy when there is negative feedback. Keep in mind that you are already creating value for all your users and issues are just room for improvement.
The greatest contribution to Vue would be things that can benefit the entire community: experimenting with new ideas, educational resources, or sharing solutions to encountered problems as reusable plugins, components, and CLI templates.
There are already a ton of these, but as of now the discoverability of high-quality resources could use some improvement. We’d greatly appreciate input from the community on this.
Tim Graham started contributing to Django as part of a college research project. Now he helps maintain the popular web framework full time as a Django Fellow.
Henry Zhu splits his time between working on Adobe’s Behance team and Babel, a popular JavaScript compiler used by companies like Facebook, Google, and Netflix.
When Ariya Hidayat is not a VP of Engineering, he maintains PhantomJS, one of the most popular tools used by companies to write automated integration test for web applications.
per user / month
Starting at $25$25 / month which includes your first 5 users.
per user / month
* Sold in packs of 10 users and billed annually.
Want to use GitHub on your own? Check out our personal plans.