Development environment 2018

Posted by Yurii Luchkiv on November 04, 2018 · 6 mins read

Right now looking back to 2017 I believe 2018 was the most productive year in my career. I would like to share hardware, languages, frameworks, tools I used in 2018. Maybe somebody will find inspiration for themselves. I cannot say that I changed my environment significantly thought last year, but still, there are some major interesting changes.

1.MacBook Pro (Retina, 13-inch, Early 2015), 2.9 GHz Intel Core i5, 8 GB 1867 MHz DDR3. I am still satisfied with my working machine, so I think I will definitely use in 2019.

  1. Back-end. Let’s start with the best and still most popular programming language. Java. Yes, I know: Java is dying, as usual :) But there will interesting changes in 2019, due to Java11 release: Java will be no longer zero-cost? What about the ecosystem and frameworks. They are still the same, but later and later versions: Spring Framework, Apache Maven, Lombok. Our company still invest a lot in application testing: JUnit, Mockito, RestAssured and even few internal “libraries” to simplify resolving similar tasks across a lot of projects. In case of fast project start and proper configuration, we use our skeleton to simplify development at the beginning. Please review our codebase.

  2. Front-end. It seems that major trends in 2018 were the same: Angular ecosystem vs. React ecosystem and separately developing a Vue.js framework. Webpack is de facto standard build tool: no more any Grunt or Gulp.

  3. Docker. Docker became for me big player this year: both in development and production. We use DockerHub private repositories to publish images so we can use them in the production machines to avoid ssh-ing files. As well I use several additional UI tools when I become exhausted from terminal: DockStation and Portainer. I can easily connect to any of our production machines and check docker containers activity.

  4. IDEs. It daily routine a lot of developers switch between different IDEs that are typically used for different purposes. I use IntelliJ IDEA and Sublime Text, likewise in rare cases, I use Atom IDE.

  5. Codebase. Where should you store your perfect code? 🤔 This year inside our team we did a lot of investigation into different platforms. But still, BitBucket is our winner. I use GitHub to create some small projects to verify an idea or complete some technologies spike. Besides those two we investigate GitLab with their own CI/CD. So far, so good. But we like our own setup with Jenkins: our own rules and standards which will be hard to maintain across 50+ GitLab repositories, groups etc. BTW, we migrated our delivery on Jenkins to pipelines. It was one hell of a story migration 🤓

  6. Servers. We use DigitalOcean and AWS. Typically, I know, but probably 80% of our servers are on DigitalOcean and only 20% in AWS. Hard to explain why DigitalOcean has such an advantage, but as they say: “When we start this project everything was already configured” 😄

  7. Communication. I use a lot of different apps for different reasons and different situation. But typically it is Slack / Skype / Telegram / Messenger and Viber. What I can say 100% sure that Slack is used for work messages. This year we delivered a product for our customer US-based startup, so I dropped using Google Hangouts.

  8. Trello. One year later we still use Trello as the main project management application: the tool is really simple and gives an easy way to create a dashboard that fit your requirements. We use Assigned / Blocked / In Progress / Acceptance / Done columns with High Priority, Low Priority, Feature, Bug, DevOps etc. labels plus typical Due Dates, Checklist etc.

More technologies and tools I used in the past year with smaller descriptions.

  1. Evernote — I do a lot of notes in my daily routine including images and complex structures so I need a really good notebook. Evernote is the best.

  2. Postman — API development or testing? Use postman.

  3. Sonarqube — Use CI/CD approach? Don’t forget continuous inspection of code quality. An easy way to analyze your code so you can concentrate more on feature development.

  4. InfluxDb — Time series database? Good choice 👍

  5. Pixelmator — Do you need Photoshop on MacBook? Choose Pixelmator.

  6. Redis — Key-value database? Best choice. Redis is really powerful 🤘

  7. Seida PDF Editor — Sign your invoices digitally to avoid using a real-life anti-digital scanner 😁

  8. Gmail, Google Drive, GSuite, Google Chrome, Dropbox — As usual :)

In the end, I want to use a quote I found on the Internet: “All the tools, techniques and technology in the world are nothing without the head, heart and hands to use them wisely, kindly and mindfully” © Rasheed Ogunlaru