Java 9, Docker and Big Data: What are your New Year resolutions?

For the most part, a New Year’s resolution is a commitment to do something that, assuming you were an upstanding person, you should already doing. People commit to losing weight because they shouldn’t have got fat in the first place. People commit to quit smoking because smoking is a bad habit they should never have adopted in the first place. People commit to exercising more because being lazy and lacking energy isn’t a great way to live your life. And while many New Year resolutions are personal, it’s not out of line to make work related New Year resolutions as well. So, what type of New Year resolutions are software developers be making?

Improving code quality

From the standpoint of code quality, these are the following commitments I’m making:

  • Improve the commenting of your code
  • Use good variable names
  • Make your code readable to even junior developers
  • Don’t write code that can’t be tested, and more to the point, make sure test cases are written before writing the actual code
  • Regularly run performance profilers on the code I have written

Of course, these are just software development best practices in which I should already be doing, but as I said, that’s what New Year resolutions are all about, that is, committing to doing thing the way they should be done.

From a personal development standpoint, there are two technologies that I can’t boast about having as part of my software development repertoire, and I believe that needs to change.

Docker and Big Data

I actually know very little about Big Data processing. I’ve worked quite heavily with JSON and other data formats that lend themselves nicely to document stores, but I’ve never actually used a NoSQL database like Cassandra or MongoDB, and I’ve certainly never used any of the Big Data processing technologies like Hadoop or Yarn. I’m going to see if there’s some type of project I can take on that might get me more familiar with those technologies and potentially writing some tutorials on the topic.

The other technology I’m anxious to ramp up on is software containers like Docker, along with the various technologies that compliment it like Kuberneties and Swarm. We’ve done an incredible amount of coverage on the topic of containers, and I even attended the Docker conference last year in Seattle, so there’s a certain degree of shame associated with the fact that I’ve never actually containerized an application and got the Docker software to run it.

Writing about Java 9

From the standpoint of TheServerSide, I’d actually like to do a bit more writing about Java 9 and the various JSR APIs that are being either released or significantly updated. We’ve spent a great deal of time on TSS talking about Agile and DevOps and how technologies that sit on different levels of the software development stack are changing the software development game, but we’ve got a bit away from the task of writing code. Learning more about Java 9 and writing about what has been learned is another big goal.

What are your software development resolutions for 2017?

So what are your goals as a software developer? Is it to start working with a new language, to stop saying ‘yes’ whenever managements asks for something with an unrealistic deadline, or is it to just start replying to your emails faster. Let me know what your New Year plans in terms of your software development career.

EDIT – By the way, another one of my New Year resolutions is to use social media more often, and to get more followers on Twitter, so if you’d like to help make that resolution come true, here’s my handle: @cameronmcnz

App Architecture
Software Quality
Cloud Computing