Every week here and in our newsletter, we feature a new developer/blogger from the DZone community to catch up and find out what he or she is working on now and what's coming next. This week we're talking to Trisha Gee, developer at MongoDB, expert in high performance Java systems, and leader in the London Java Community. Some of her most recent posts on DZone include:
- Getting Started with MongoDB and Java
- Readable, Succinct, or Just Plain Short?
- Career Advice for Programmers
1. What have you been working on lately?
Fairly recently I switched from working on the core Java driver for MongoDB to working on a library that sits on top of that, Morphia. This is interesting for a number of reasons, but the most challenging thing is actually owning and leading a project that I'm fairly new to and therefore by no means an expert. It's fun, because I get to make a lot of the decisions, but it's scary, because it'll all be my fault if something's not right. It's also interesting because it's open source, and I'm currently trying to get better at involving the community and responding to issues, questions and pull requests - I'm not protected by a project manager or business analyst.
I'm also working on refining my code demo Cafelito for JavaOne, and in theory I'm writing a new presentation about how to get the most out of the stuff you learn at conferences - I'm presenting that in November so some lucky people might get to see me practicing that over the next couple of months. And finally, as always I have a backlog of things I want to blog about, but the backlog is ridiculous at the moment, so I've actually scheduled a week off work this month just for writing.
2. You've been a Java developer for a while, but only with MongoDB for the last year or two. Has it pushed your Java skills compared to previous positions? What sorts of new challenges have you faced?
The skills I need at MongoDB are quite different from the ones I used in my last position. Previously, I had to understand quite low-level details of how Java was executed at the machine level, and it was important to write simple code that performed complicated high performance things. All of that was at the heart of what the business did. But that's the thing, it really was at the "heart", hidden away from view. At MongoDB, it's quite the opposite - all the code is visible on Github, and thousands of developers are using it every day, relying on it to run their systems (of which we have little or no visibility) and loving or hating our API. Our job is to make other developers lives as easy as possible, making our API a completely different "User Interface" to the ones I've worked on in the past. It's much more difficult to measure ease-of-use of your library API than it is to measure the latency in a system you control. And it makes the other part of my role, the developer advocacy part, really important - not only do I need to go out and let people know about the cool tools we have, but I also need to listen to the developers I speak to in order to feed that back into our design.
3. Are there any particular developer tools or resources you couldn't live without?
IntelliJ Idea and StackOverflow. Pair programming with a lot of very smart, experienced people taught me a lot about effective IDE use, and I'd be much less productive if I hadn't learnt this. I've been trying to spread the joy of IntelliJ with my most recent conference presentation, where I build up a Java/AngularJS/MongoDB application in 50 minutes. As for StackOverflow, now I can barely remember the days of pasting stack traces into Alta Vista to try and locate the one person in the world who spoke about having the same problem. I find a lot of my answers there (I've been particularly struggling with making all of our Gradle builds more efficient recently), but I probably spend even more time answering questions. Having spent 15 years or so either enormously grateful to the internet for answers or insanely infuriated by not being able to find them, it seems only fair to give back a little.
4. Do you have a favorite open source project (or projects) that you've contributed to recently?
Ooops, I should have read the questions ahead of time! Obviously, I've been contributing to Morphia over the last few months and the MongoDB Java driver for the last couple of years. I've also been posting more and more of my sample applications and tutorial code on github. I've stopped worrying so much about perfect code or full documentation, I figure if one or two people find the somewhat rushed example code even slightly useful, it's worth having it out there. One of the things I want to get better at over the next year is contributing to other people's projects, particularly those that are dependent upon the MongoDB driver - we're probably making changes to our API in the next big release, so I can help other libraries migrate to the new API.
5. Do you follow any blogs or Twitter feeds that you would recommend to developers?
Twitter can be really overwhelming, and I don't think you can "follow" it. I think you can surf the tsunami when you fancy it. I tend to add people who I've seen present at conferences who have interesting things to say, and people who have a sense of humour. I have a random collection of some of them here: https://twitter.com/trisha_gee/lists/techellaneous
For blogs, ever since Google announced Google Reader Is Dead I've lost momentum. However, one blog I still follow is Rands In Repose (http://randsinrepose.com/) - there's a lot of good stuff in there about things like your company culture, how to manage geeks, and so forth, but it's also awesome for geek lifestyle stuff - that blog introduced me to TripIt 6 years ago and my life has been much much easier since then because of it!
6. Did you have a coding first love -- a particular program, gadget, game, or language that set you on the path to life as a developer?
I guess it was the BBC Micro. I was coding BASIC on that when I was 8 or 9. I can't remember what hooked me, I think I loved giving the computer a command and then seeing that executed - first as a "Hello World" and later with basic graphics. I wrote a couple of those terrible "choose your own adventure" text games which I inflicted upon my sister. Writing them was definitely more fun than playing them. I only just got rid of my two BBCs last year - I've moved them from place to place, had them in storage for years, and finally with my move to Spain last year I bit the bullet and accepted I was never going to use them again, and got rid of them. Sad times. Well, not really, as now I live in the sunshine, and that's worth a sacrifice or two.
7. Is there anything else you'd like to mention?
I think I've said plenty! But look out for updated blog posts soon, and if you're at JavaOne, JAX London, GeekOutUK, or GOTO Berlin this year, I'll be there - come and say hello!