First and foremost, I just want to get this out there. I’ve never been a massive fan of Technical Certifications.
As a Software Engineer, in the software industry; certifications is very much still sought for. There was a time when everyone was crying out for doing certifications and such that these certifications are a must have on one’s CV Resume.
When I was doing Java software development, everyone was saying oh you need a Java certification. At one point I did actually studied for a Java certification and actually sat the certification exam and also passed it. I obtained the…
Have you ever written a piece of code or submitted a Pull Request on GitHub and you get back a comment in return in the lines of your ‘code is clean’?
Have you ever wonder what that actually means?
Here, i am going to list a few guidelines in what makes code ‘clean’.
When something is dirty then that thing is not clean. Simple! Right?
So what does that entails one might ask?
First of all, let me come to my very first point which is an easy point.
#Comments! or //Comments or /* Comments */
Pretty much all programming…
When i first came to know of about Jenkins Shared Library, my thoughts were that it is an opportunity to abstract away common pipeline code that can be reused by many pipelines without having to repeat the same code definitions in your pipeline code. Thus making your pipelines more ‘DRY’ (Don’t Repeat Yourself).
However, when i scoured the Jenkins official documentation for how to implement a Shared Library, i was quite taken a back because i simply can not find any good documentation about it. As much as i love Jenkins to bits, i was a bit underwhelmed by their…
Cucumber is a BDD (Behaviour Driven Development) tool and BDD is a software development design technique aimed at developing End 2 End tests to drive the design of the application code.
Reference: Behaviour Driven Development
When you have read what i’ve just wrote above, you might immediate think that it is very similar to TDD (Test Driven Development).
In a way it is.
Reference: Test Driven Development
Thus, BDD aims at solving the inefficiencies that TDD produced. Although TDD seems perfect in its philosophies, not many developers took up the TDD approach.
Maybe developers were so used to writing application…
In the software industry you might have heard of the role as a Software Developer or the role as a Software Engineer.
One might think naively that both roles are equivalent and that they are the same. There are certainly commonly used interchangeably. However, they are not the same. Let me explain.
A Software Developer is basically a programmer who writes code to implement features for building a software application.
On the other hand, a Software Engineer is pretty much similar where a Software Engineer can program features for building a software application but where it differs is that a…
DITs (Developer in Test) and SDETs (Software Development Engineer in Test) are pretty much the same role but i personally prefer to distinguish them separately simply because i have seen those roles used different in my past companies.
I want to encourage the usage of SDETs more than DITs because i believe the SDET model works well within modern Agile Software Development.
DITs are really Test Automation Engineers. Their prime responsibility is to write test automation code to automate the testing of a software application. This is fine and certainly i believe DITs have their place in this industry. …
This article is for non DevOps Engineers who want to become DevOps Engineers.
First of all, what is a DevOps Engineer?
There is an argument for not having DevOps Engineer as a role but more of a culture or practice that every one within a software development team should do. This is quite true and i certainly can not go against that argument.
As a Software Engineer myself, i have embraced DevOps over the last few years and definitely know one thing or two about what it takes to become a DevOps Engineer. Sometimes, i am in favour of not…
GitHub Actions is the new kid on the block in terms of CI/CD tools available to use.
This space is congested. First of all, the most famous one of all is perhaps Jenkins. Who haven’t heard of Jenkins right?
Jenkins was born out of a fork of the old Hudson. Remember that?
Then we’ve got a bunch of new CI/CD tools that is mainly online & serverless or more appropriately a SAAS (Software As A Service) meaning you don’t require to run or manage your own CI/CD build servers infrastructure unlike Jenkins/Hudson etc. …
Despite all the tools and features available out there today to assist you in setting a project easily, there is yet still a lot to do to get it set up properly. This is certainly the case for me when i start a new Java project. Spinning up a new Java project these days might seem easy and painless (see section on Spring below) but there is definitely some extra work involved to get the project in a really good usable state that is releasable, deployable, production ready, and with good test setup.
In this article i am going to…