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.
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.
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.
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.
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.
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 🤓
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” 😄
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.
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.
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.
Postman — API development or testing? Use postman.
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.
InfluxDb — Time series database? Good choice 👍
Pixelmator — Do you need Photoshop on MacBook? Choose Pixelmator.
Redis — Key-value database? Best choice. Redis is really powerful 🤘
Seida PDF Editor — Sign your invoices digitally to avoid using a real-life anti-digital scanner 😁
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