When the topic of graph databases — specifically Neo4j — has come up in the IRC chatrooms I lurk in, I hear a common refrain: “Neo4j is really awesome, and there’s no way my boss will ever let me use it.”
I also hear from its sibling a lot: “Neo4j looks really cool, but I have no idea what I’d use it for.”
Both are pretty common issue for developer types. They’re interested in exploring a technology or platform, but don’t think it has a place in the work they do on a daily basis. That’s where our friend the side project comes in.
The side project lets you make whatever you feel like on your own time. You get to build something substantive, and in the process give you opportunities to:
- Learn new technologies and techniques
- Follow a passion or curiosity
- Demonstrate expertise and a willingness to learn new skills. Career++!
Here are some ideas for side projects that would involve graphs:
- Ask 20 people you know for their top 5 favorite movies. Put the friends and movies in a graph. Find interesting patterns (my friends who like this movie often also like that movie). You’re now well on your way to making a simple recommendation engine.
- Build a blog driven by a graph instead of a relational database. While it doesn’t sound like one the traditional “sweet spots” for graphs, there’s no reason you can’t do it, and could explore both relationship/discovery and the simpler, easier model of nodes and relationships vs. tables and joins.
- Create a graph-driven version of the Open Movie DB. This is a big data source, so a lot of the work would be in conversion, but even if you got a subset you could do a lot of interesting stuff, and it would be a good examination of the power of the graph model vs relational databases.
- Grab your last X tweets from Twitter (because everyone uses Twitter, right?) and put them into a graph. Make sure to separate entity types like users, tweets, hashtags, etc. Then you can easily examine your posting and interaction patterns using Cypher queries. Extra credit for making fancy charts and visualizations.
Since you’re doing this on your own, you don’t have to be fancy. It doesn’t need accoutremont like a well-designed UI or an authentication system, until you decide it does. You can explore the stuff that interests you, and leave the bits that don’t.
It can be hard to find the time for a side project, especially if you have lots of other responsibilities. Making time for one can be extremely rewarding, both personally and professionally. If you have an idea, sign up for our free trial, and give Neo4j a spin.