Star of the Month David Cauchi tells us about his responsibilities as a QA Engineer, learning from his son, and his plans for the future.
Hello, I am David and I’m from Malta. I have always had a passion for technology. The more bleeding edge it is, the better.
At home, I like to tend to our terrace “garden”. It’s currently barren due to the colder weather. Nowadays, the lion’s share of free time is spent with my son. I think he teaches me more than I teach him :)
Before joining OTGS, I spent some time working as a freelancer and on personal projects.
Prior to that, I spent a good amount of time as a QA Automation Engineer at a gaming company.
Once I came across OTGS on a remote job board, everything came together. WordPress has always intrigued me, OTGS needed a QA Engineer, has stellar reviews, and is fully remote. All this made the job an amazing fit for me. I joined in August 2020. Time flies.
I work as a QA Engineer. There are 3 main parts of the job: manual testing, automated testing, and customer service.
With manual testing, we get new features that have just been developed and take them through various rounds of testing based on acceptance criteria. These criteria are previously defined by the project manager or the developer (who has developed the feature).
It is an important step in the software development life cycle which ensures that our customers end up with high-quality software.
Occasionally, bugs get through to production. This is another instance where manual testing is used. Basically, we test to verify a bug and if needed, open a ticket for this to be fixed.
Automated testing is where we get the tests that have been run manually on a feature and write software that can reproduce the test steps in an automated way. Creating these tests is highly valuable. Once created, they can be run at any time and will always run through an exact set of steps, which helps reduce human error. I say reduce, not eliminate, because these tests are still written by humans and can contain bugs. But on the whole, given that a test is written correctly, you have a reliable suite of automated tests. Our test automation framework is written in PHP and is built on Codeception.
Finally, customer service. Being a QA Engineer is not just about testing. There is a massive human element involved. We constantly interact with various stakeholders within the company, and indirectly with customers. It is important to be polite, approachable, and have good communication skills. This part of the job cannot be understated.
The most challenging part is when we get an influx of tickets that are ready for testing and need to go to production quickly. At the same time, there are always a number of normal daily and weekly tasks, such as planned releases, that also need to get done.
As cliché as it may sound, my great team helps me overcome challenges. There are 3 QA engineers on the team, so with good communication as well as planning and splitting the work accordingly, we push through and get things done. I really believe that with the right team, any challenge can be overcome.
Qualifications… it’s nice to have a formal education in software engineering. While this can provide you with a good foundation, I’d say that practical experience is much more important.
To do this job well, you need to have a good understanding of object-oriented principles and ideally some knowledge of design patterns. We use PHP, but it doesn’t really matter which language you know. As long as you are willing to learn a new language and are able to apply the same OO principles, you’ll be fine.
Apart from this, you need to have good attention to detail and good interpersonal skills.
As a member of the Systems team, I work with various other teams. If something has anything to do with our websites, it goes through Systems. I would say that apart from my own team, I mostly work with the Design and WPML teams.
No, I have never taken part in anything like that. A while back, I watched a couple of videos online. It seems like a very interesting experience.
On average, I wake up at about 7 am, take a quick shower, and have my coffee. I’m at my desk by 8 am.
I like to start with administrative work first thing in the morning, so first, off I go through emails and see if there are any code reviews.
After these tasks are done, it varies. I either pick up a ticket that is ready for testing, improve or add tests in our test automation framework, or prepare a test run for a release on production. It can be quite fast-paced at times and require jumping from one task to another. There is never a dull moment :)
Around midday, I stop to make some lunch (one of the many perks of remote working).
At around 5 pm, my working day comes to an end.
After work, I play with Alexander and we have dinner together. After my partner puts him to bed, I go for about a 40-minute walk to wind down.
By 11 pm, I am usually ready to go to bed.
The best things: You don’t have to commute to work (saves a lot of time), you can have lunch at home, you get to spend more time with your family. When necessary, you can be more flexible with your time.
The most challenging things: It took me some time to think of something because working remotely is amazing. If I had to mention one thing, I would say that it can be harder to actually stop working sometimes. You really need to be disciplined enough to tell yourself “Stop, the day is over”.
Another 10 years :) I don’t plan very much into the future. Never have really. Once the pandemic eases up a bit, it would be nice to travel somewhere. Living on an island is great, but stretching your legs every now and then is a must.
Are you interested in working with a globally distributed team that encourages growth and advancement? Are you ready to harness the power of technology for a better future?