Development environment 2017
I believe 2017 was the most productive year in my career. I would like to share hardware / languages / frameworks / tools I used in 2017. Maybe somebody will find inspiration for themselves. My feedback will be Yes or No.
- MacBook Pro (Retina, 13-inch, Early 2015), 2.9 GHz Intel Core i5, 8 GB 1867 MHz DDR3. I am really happy that in 2016 I invested near $2000 in MacBook Pro. I didn’t regret for a moment for this decision. It is light and fast. Yes for some project and apps it is slow, but there are much more advantages than disadvantages. Definitely yes in 2018.
- Java ecosystem stack: Spring Framework — 101% yes. Yes, I agree it is not suitable for all of your projects, but Spring ecosystem can fit a lot of different cases. Apache Maven / Gradle — two yeses. Right now I cannot make clear choice on build tool. Lombok — 101% yes. Lombok is simple and useful. JMH — yes. If you are not using JMH for your benchmarks you probably are doing something wrong. Next: JUnit, Mockito — Yes. 0$ :)
- IntelliJ IDEA — yes. I am using Community Edition, so it is 0$. Eclipse bye bye. I know “never say never”, but I will probably never use Eclipse again. For front-end purposes I started using Atom IDE. I really like it, so it will be yes. I am using Sublime Text right now as I was using Notepad++ few years ago, so my verdict — probably.
- Git — Yes. GitHub, BitBucket — Yes. In our company we use GitHub for education and prototype purposes, BitBucket for free private repositories :)
- DigitalOcean — yes. DigitalOcean is simple enough to start some project that need to be deployed into cloud. AWS — probably. Right now DigitalOcean 100% fit our requirements. We pay $ for few droplets. I will explain later.
- Slack / Skype / Telegram / Messenger / Google Hangouts / Viber — yes and no for everything :) Sometimes there are troubles with each of this. I think there are no magical communication tool. Slack / Google Hangouts — work messages, Viber — private messages, Skype / Messenger / Telegram — in the middle of work and private messages.
- Trello — yes. Small teams management will be simple. We use our own approach: Assigned / Blocked / In Progress / Acceptance / Done. It is working. Labels: High Priority, Low Priority, Feature, Bug, DevOps etc. Due Dates / Checklists / Attachment — great. One minor issue we have it is estimations when you need to switch between tasks. Free version is awesome, so $0.
- Jenkins — yes. Jenkins — $0, but hosting on DigitalOcean is $20. I think you need to automate everything you can even if customer don’t want to pay $20 per month. It’s worst to invest time to CI approach at least. If you have CD approach with each of your customers — you are on a roll :)
- Now I will tell briefly about other tools, cause there are so many of them :)
Evernote — you need nice editable notebook? It is your choice. Yes.
Sentry.io / Papertrail — cloud log tracking system? Prototyping — Yes. Production — probably :)
mLab — database-as-a-service for mongodb? Prototyping — Yes. Production — 0$ only for 0.5GB.
Webmin — server monitoring? Yes, but it depends what you need to monitor :)
Tunnelblick — security + VPN? Yes.
Postman —API development / testing? Yes.
Calculator — do you need to calculate your real salary after conversation with your wife or girlfriend? I vote Yes. You will use it once per month, but it will be significant usage. Tool is $0, your result depends :)
Maybe I missed something, but I don’t think it’s necessary to talk about Gmail / Google Drive / Dropbox etc.
Totally: ~$2000 investment in 2016, $20 / per month in 2017.
In the end I want to use a quote I found in Internet: “We become what we behold. We shape our tools, and thereafter our tools shape us” © Marshall McLuhan