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 Sander Mak, Senior Software Engineer at Luminis Technologies, JavaOne Rockstar, and featured author in DZone's 2014 Guide to Big Data.
1. What have you been working on lately?
I work as a Senior Software Engineer at Luminis Technologies. Currently I'm working on an educational product that challenges fundamental assumptions in present day schools. It's all Java in the backend, with TypeScript + AngularJS for the frontend. Since modularity is key to maintainable code, we use OSGi in the backend and RequireJS in the frontend.
2. You wrote about data science for developers in the Big Data Guide. As a Java developer, how did you initially become interested in data science? Has your Java background been advantageous for you when it comes to data science?
When you think about it, a lot of software in the enterprise world is rather boring. On the other hand, many apps we interact with daily (GMail, Facebook, Amazon etc.) do much more interesting things with the data we feed them. Recommendation, classification, fully automatic sorting of your priority inbox, these are all features that require more than your typical CRUD approach. That's how I got interested in data science. I wanted to know how this stuff works and how I can apply it myself. Little did I know how deep this rabbit hole goes...
Having a Java background did not really give me an advantage. Even though a data scientist should be able to code, it is much more important to understand the theory behind the concepts. Basically this means wading through a lot of statistics and maths. Fortunately there are lots of really great and accessible courses available for free to get you started. For example at Coursera and EdX. Generally the toolkits used there are based on Python or the R language. These are great for interactive data exploration due to their dynamic nature.
On the other hand, many popular frameworks for doing data science at scale (Mahout, Spark, Hadoop) are all JVM based. These are the products you would use to scale to production usage. In that case, having a Java background is certainly a plus.
3. Are there any particular developer tools or resources you couldn't live without?
Since we work remotely in distributed teams at Luminis Technologies, modern communication tools like HipChat and Skype are indispensable. In addition to the traditional IDEs, Sublime Text combined with Package Control definitely makes my life easier.
4. Do you have a favorite open source project (or projects) that you've contributed to recently?
First of all I want to mention Amdatu (http://amdatu.org). We use OSGi as foundational technology at Luminis Technologies and Amdatu offers many building blocks for modern cloud-enabled webapps in an OSGi environment. For example to create RESTful services, database integration (both NoSQL and SQL databases), blobstore integrations etc. Since we're heavy users of Amdatu, we're also heavy contributors. This should be normal, by the way, but it certainly wasn't in a lot of companies I've been involved with previously.
I'm also a big Scala fan, so last year I launched a side-project at http://scalabitz.com. It uses the API of link shortener bit.ly to find and share interesting Scala content. The codebase for Scalabitz can be found at https://github.com/sandermak/scalabitz
Another open source project in the Scala ecosystem that I want to highlight is Akka. In particular Akka Persistence, which is a recent add-on for event-sourcing with actors. At JavaOne I'm going to give a presentation on event-sourcing with Akka:
I try to contribute to this project by being involved in discussions on the mailinglist.
5. Do you follow any blogs or Twitter feeds that you would recommend to developers?
I'm an avid fan of Hacker News (news.ycombinator.com). And if you're interested in Scala you should definitely follow @Scalabitz on Twitter.
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've been hooked on computers since I was six years old (already 25 years ago, time flies). But I can't say there was a specific experience that got me into programming. If anything, I got into coding fairly late. At least if you don't count my fiddling in (Visual) Basic and later PHP as coding. Which I don't...
7. Is there anything else you'd like to mention?
Be sure to check out Sander's work in the 2014 Guide to Big Data as well: