For those who have been following Lesotho tech space should be familiar with the name ‘Melvin’ and his involvement in the premier hackathon.
Today, Melvin Thoabala is a Software Engineer at Superbalist.com, Cape-Town. Superbalist is a home for people who love fashion. It’s a subsidiary of TakeALot.
Roles like “software engineer” seem obvious on the surface. In reality, they are very fuzzy roles that can be highly variable across different companies.
Melvin not only shares about his journey as a software engineer but also invites those with interest to become his mentees. Here the transcript of our chat.
How did you land a job in Cape-Town?
I went on LinkedIn and set my job search preferences as Software Engineer, experience 0-2 years, location Cape Town SA, Melbourne Australia and Perth Australia. There were a lot from Australia and I applied to almost all of them but not even one came back.
Some from SA had a requirement to be an SA citizen, until I got graduate program from TakeAlot and I just applied. They sent me a programming assignment almost immediately. I had to submit in 3 days and almost missed it because I wasn’t checking my mails often and sync was off.
We went on with the interview process and all went well. However, I needed to get a work visa, specifically a critical skills visa, of which one of its requirements is for one to register with a certain body in one’s field. In my case, I registered for Institute of Charted IT professionals. I also had to do SAQA evaluation of my degree as I studied in Lesotho. Then, just go in and apply and cross your fingers because no one really knows how long it takes. I guess it depends on one’s luck.
Can you give an overview of the duties, functions and responsibilities of your job?
Some of my duties are to write code and tests, push to production independently (without any supervision), designing significant chunks of code and delivering significant team-level projects. Developing detailed technical analysis and design specifications based on functional requirements. Performing code reviews and maintain levels of quality control. Contributing to technical solutions, to business problems, and investigating and solving defects.
All this I do in a team called checkout and fulfilment, which mainly deals with, checkout: payment and delivery selection.
What are the major qualifications for success in this occupation?
Academic qualifications: I want to say none. As much as background in Computer Science and other related fields is definitely a plus it is not a hard requirement for one to be a successful software engineer(SE). I think experience and a lot of practice is what make a successful SE and separates a SE from just a developer or programmer.
What are the skills that are most important for a position in this field?
Desire to want to learn new things almost daily and most of the time on an hourly basis. The tech field is generally moving too fast, and one has to keep up while not entirely letting go of all the other things they learned in the career so far.
One also needs to be a bit active on online platforms just to know when new tech is coming up. Most importantly if it is the right tool for your current or future tasks. One also needs to be hands on and try out new tech and practices.
Are there organizations you are expected to join?
Not organizations as such, nor is it a must to join this kind of thing, but being active in meetup groups or even just attending meetups helps learn a few things from other developers.
There is also a slack user group ‘za-tech’ where there are a bunch of channels one can join depending on one’s interests. Even though it is not a binding requirement at Superbalist, we are encouraged to work on open source projects and engage in the open source community. We even have repos that are open sourced and people are encouraged to work on them at least twice a month.
How is the economy affecting this industry?
I see it more as how this industry is affecting the economy. I think we are very close if not at the centre of “the fourth industrial” revolution and we are seeing more and more companies that were traditionally brick and motor moving into the tech space. Some of them aren’t just stopping at creating e-commerce websites but are actually becoming tech companies.
I guess it is fair to say at this point the survival of a company or even a country depends heavily on this industry.
What are some areas of growth in this field?
Since the field itself is way too broad, there are areas of growth almost everywhere you look. The mere fact that the industry is moving so fast gives almost everyone an opportunity to grow. As an example, few years ago we didn’t have people with titles such as ‘devops engineers’ or ‘cloud engineers,’ but now almost everything is moving towards cloud technology and people with those skills are in demand.
Do you have any advice for someone interested in this field/job?
The most important thing is for one to develop an almost obsessive interest to your field. This owes to the fact that this field moves very fast. You need to be very passionate about what you are doing and most importantly find a mentor, someone to learn from on a regular basis.
As much as there is content all over the internet, finding a good mentor helps you filter out all the clutter. Being able to know which code to use and not to use from the internet helps. This of course comes with experience, but for someone just starting out, it helps having someone to show you the ropes.
Do you have any special word of warning or encouragement as a result of your experience?
As much as a degree might not be a mandatory requirement, it helps to have one. More especially if you are from Lesotho like I am. There are cases where one needs to apply for a visa and there are special visas that are issued for this field and having that degree helps in a way. There might be other ways or there might be countries that don’t necessarily require this but it does help to have one.
One thing to add is, once you find your feet in this field make sure you find your focus. A lot of people end up exhausting the breadth learning a lot of tech/programming languages but only a few are able to actually go deep, as deep as knowing if a piece of code might cause a memory leak by just looking at it. This is the reason we are seeing most companies having positions such as backend/frontend guild leads. Otherwise head to GitHub, open your first repo and start coding. You can reach out on GitHub, my username is ‘melvinthoabala’ and I would be glad to collaborate with other engineers or play a mentor role to newbies. Also connect on LinkedIn.