Do you have a mentor/career coach?
Do you guys have post-mortem at incidents?

 

Yes, I have atleast one (and up to 2) mentor(s)/career coaches, depending on the area.
Especially since I am only 20 years old and started working 6 months ago (directly after school) it has been something crucial. Not only development wise but mostly company and work wise.
To be more specific about what I am being coached in, I would say the following:

  1. How to develop with a safe and reliable outcome that is both efficient, up to standards and according to basic programming rules (such as: coding patterns, etc.).
  2. How to communicate with colleagues on the right way. What is the smartest and fastest way? When to go where and when to go when? Giving me a bigger perspective on the general work/company flow and responsibilities.
  3. How to develop on a test-driven way and how to implement that in deployment and failure prevention. (Coming back to this later).
  4. How to discuss something and how to strenghten your arguments and when to know when to listen and to what, its really balanced.
  5. How to work with huge systems and what to do in stressing situations.
  6. How to work in general and what to appreciate outside and inside of work.
  7. And lots of lots of personal and career related hints and tips for the future, coming from many different perspective.

Even if someone isn’t my mentor, they are always willing to give an honest opinion; both good and bad.
But if I were to say what I have gotten coached on the most it is how to develop efficiently and how to work with others.
(One very important thing for where I work at, despite it being a huge company, you always have a voice and have something to teach others.)

When it comes to deployment, testing, pod and environment management, security, etc. we have a post-mortem for any type of accident. Not only do you learn about how to prevent incidents (test driven development, CI/CD, code reviews, standards, etc.), I have learned a lot about what to do when the world burns.
What I want to address in special is how no one is the one who “did it”. We are a team and we solve problems as a team. One person knows more than the other on both work and or on that specific application/environment.
In conclusion, we have a very clear post-mortem on accidenta with both what to do and to whom to go incase you can’t fix it.

 

Before I started working, I never truly used CI/CD.
I did work around with some CI tools that GitHub gave out of the box for free, but never truly and CD tools. This, however, all changed the moment I started working.
Currently, I love to work with multiple CI/CD tools, some which come from GitHub themselves, but out of those tools are two tools (both combined and standalone) that I can truly suggest for anyone to use.
To answer your question, I would say that my preferred CI/CD techs currently are:

  • Bamboo (Atlassian)
  • Spinnaker

It really depends on the ecosystem you are using on whether to use one of these standalone or to use them combined. To give a quick sum-up with what I mean with that, I would say:

  1. I normally use bamboo when it comes to a single server application(s) which are all hosted within the same server.
  2. But when I like to work with multiple environments spanned over multiple clusters, I love to combine both Spinnaker and Bamboo. Especially because Spinnaker doesn't build your applications with tests integrated as Bamboo does, and Bamboo doesn't truly manage your clusters on a higher level. (In this case a Kubernetes cluster)

There is a lot more to my preferred CI/CD tools that come to mind in this reply, thus if you have any questions, please let me know.

This is amazing, thank you for your detailed answer, Remco, it's really helpful for someone trying to understand the CI/CD world.

What do you use Spinnaker for, exactly? You said it manages your Kubernetes clusters - how so?

I haven’t really looked into the essentials of Spinnaker, but we use it to deploy to multiple nodes (if needed) in our cluster.
I personally do not work directly on the maintenance of our Spinnaker tool, our DevOPS department does, so I can not go into any specifications on how this works and what exactly is being managed. That is also the main reason why this answer is extremely short.

 
 

Actually not a bad code, nice to see that you use future objects in Java. Don't you ever thought about switching to Kotlin?
I would highly recommend it, it's much more elegant. But of course that depends on your company's ecosystem.

 

As of now I have always been working with Java (when it comes to the JVM) and haven’t had the reason to use Kotlin.
But I have thought about using it in multiple scenarios, both at work and personally.

When it comes to our company’s ecosystem it is a bit more complicated. Most of our developers can work with one of the “main” languages in our company; Java, PHP, NodeJS, “Angular”, C, Python and Bash. With that it makes it hard to work with for example: Kotlin, as it is listed in our skillset at job openings.
Having said that, even though it is rather hard to switch to a new language, it has happened. Sadly enough not a lot, and most of the time with projects outside of our regular paycheck. For example: internal Android applications and or programs that are only for internal usage with the only criteria being: “it has to be understandable and a supported language that atleast 1 person in the company knows or has been doing research about (and can show that).”

So to the conclusion: its a bit double weither or not to work with Kotlin (or any other language outside of our skillset) as it does happen but depends on personal interest and personal investment. It doesn’t happen inside of the box. I have thought about it, but havent been able to think of a project that I wan’t to adapt internally.

 

Understood. Thanks for comprehensive answer! If you'll ever work on your own open-source project, I would highly recommend to try Kotlin. You'll see the benefits and its cool features (taken form Node, Python, Ruby, Shell etc.) in a very short time, I can guarantee you that ;)

Classic DEV Post from Jan 25

Language Features: Best and Worst

I'm interested in building my own programming language and I want to know: what...