Mr. r00tdvd is a senior software engineer with a long-standing career in software development and he has been blessed to have been involved in high visibility Mobile projects in Australia. Mr. r00tdvd has worked at National Australia Bank for over 9 years and outside of NAB has been a key player in building Mobile iOS Apps for major clients like Suncorp Bank, Centre for Chris Hemsworth, ABC News and working with Deloitte on the Virgin Money Banking App and lots of other projects. He worked with different technologies on multiple platforms. It is our pleasure to have you here tonight Mr. R00tdvd
Thank you, Michael and Samuel for the intro and it's my pleasure to be doing the interview with you guys.
I sincerely hope it will benefit you and other aspiring developers who considering taking up this challenging but very exciting career path. So I'm, I'm hoping that you guys. Will be patient with my responses to your questions because I do intend to give you as much info as possible to help you. Go in your career path and feel free to either interrupt me or ask follow up questions but give me a chance to respond first.
Great, thank you.
Thank you, I'm sure your responses will be rather appealing. Mr r00tdvd. Tell us please. What are your experiences in the world of IT and for how many years have you been working In this field?
Sure Samuel, so I have well over 20 years plus in software development I finished the computer science degree at Latrobe University around 2001. I originally started my career as a microsoft.net C sharp developer, developed content management systems with web database applications. Building things like shopping carts, logging systems, lots of other features. However, about probably more than seven years ago I built a strong passion towards iOS development, and I have been involved in the apple platforms. And am currently contracting as a senior iOS engineer for the Australian Federal Government working on the Central Link app and the vaccination Medicare app that you have probably heard of.
That's pretty impressive.
It seems it seems as though you have major experiences in this field. Mr. r00tdvd.
It has been my passion.
This developer has had major experience in not only software developments, but different work environments. His insight will most probably reach far beyond simple information and common software development topics, he, according to his experience, will delve into wise guidance that will assist the reader of this transcript along with the interviewees. This may to some extent even aid the professional that is being interviewed, as studies show that offering advice boosts self-confidence.
(Eskreis-Winkler, Lauren and Milkman., 2019)
What kind of work is done by you as an IT professional?
OK for me. Specifically, currently, I write code using SWIFT for iOS, the Apple platform. I constantly create new features within the apps and integrate them with back-end systems. I'll also debug applications for issues and basically, the hardest ones to find are the bugs, that you cannot replicate, so these require special techniques to find the root cause of the problem and the solution is different every time, so these are the things that I do on a day to day basis besides working with lots of other IT professionals, obviously.
Mr. R00tdvd, has mentioned that he is mainly a software developer, this means that he programs and writes code, so that you, or I as a user, may use this software on whatever device feasible. This job requires high levels of cognitive ability and in some cases, can be very stressful.
When this developer mentions Swift, this is one of the many languages in the world of IT, this language specifically, may only be employed to create applications on apple devices (IOS).
This is a term used for running applications or, “code” in a certain way that allows you to locate where a bug is. If you have any simple knowledge of the world of IT, you will understand that the coding platform used an “IDE” (Integrated Development Environment), may put red lines under the code that has an issue, therefore, you cannot run the code, and it is easy to find the bug. This cannot be further from the truth, specifically within these complicated applications, you may encounter something called a run-time error, meaning that the code looks fine, but somewhere along the way, the code may fail, depending on the actions that you take... These errors can be rather challenging to fix. This means that Mr. r00tdvd has pushed himself to learn something that is not necessarily his role, it is the role of a tester. He will reach this piece of information soon.
Wow, yes. Well, how did you start off your professional journey? Was it easy getting your first job and how did you progress from there?
OK, wow, this question brings back a lot of memories obviously, so everyone has a story, and I will share with you my journey and my story. I finished my computer science degree and don't take that term for granted, by the way, because you truly become a scientist, you become a creator and an inventor, as a software developer, I had two options before me to choose from. Either to work on desktop applications using languages like C++, or working on the web. I chose to work on creating web applications because I wanted everyone to see what I was developing and the web was a huge thing at the time and I was going to get some kind of pleasure from that. When everybody is going to see a website that you've created, or they can use it to purchase something. It was a huge thing at the time obviously and until now, to this day. So, I was excited because I got my first role as a web developer, not long after I graduated. It's never easy. Nothing is ever easy in life and that will never change and anyone who tells you otherwise, perhaps, has different experiences than mine. However, having said that, after I got my first job, it wasn't that easy, so let me explain to you what happened.
Something huge has happened actually which impacted my life, my career, and the careers of many people also around the world, not just mine.
I didn't realise or know about this until Australia felt the impact maybe six months or a year later. Not quite sure.
What happened was right after I finished my first contract. There was something called the.com bubble or the .com boom and you can actually Google this and read up about it and what happened then, is all IT companies have crashed.
I would say about 90% of all IT graduates in my year or even a year after me and never got into IT at all. They just gave it up.
There were no jobs. If you were to get a job you were basically working, getting paid like a 7/11(Petrol Station) kind of thing and some companies were taking advantage of that at the time.
And obviously this was a very depressing period of my life. I didn't want to work as anything else other than as a software developer.
The crash lasted a long time, probably until 2002, which impacted me another two years. So maybe the first couple of years because of the dot.net the bubble, and then then it became hard for me to actually find a job. Basically, because I didn't have enough work experience and it was such a difficult time.
But I'm, so grateful basically that to God that I have gone through this journey because it taught me a lot about myself and about how I should feel towards other people who are either currently or have gone through hard times then... My life,my career took off. I did contracts on and off. Maybe that varied between a month or two months. Though at that time my career took off. Let's say four years later I started with a three-month contract. One agent I spoke with him, and he gave me an opportunity where basically I ended up creating two .net websites with, database applications and it was almost like when you're hungry for something. You will succeed then what? right towards the end of the contract I came back from lunch, and I found a bottle of champagne on my desk. From the agent. So, he was very pleased, the company was pleased and just one thing led to another, one job led to another to start off the career.
Mr. R00tdvd, has mentioned that he has experienced great adversities in his life, due to the .net bubble disaster, that occurred right after he had graduated with his computer science degree. These adversities that he had experienced have led him to “learn more” about himself and cultivate a sympathetic emotion towards others that have experienced the same.
He gave us advice regarding our determination, he mentioned that “when you're hungry for something, you will succeed...” This is a deep statement, and one that is not generally said without care. He is confirming that as long as someone is hungry, passionate, and deeply desiring a certain role or position, he will succeed.
You mentioned earlier that you had the choice of either pursuing the path of C++ development or web development, and you chose the path of web development.
Do you believe that anything could have changed in your life? Maybe it could have been easy for you at the beginning had you gone down the path of... C++ development or if not why?
Yeah, thank you Michail. No, it wouldn't have made any difference. It had nothing to do with the web versus desktop applications.
This IT crash impacted all IT companies in general around the world and Australia felt it also it was nothing specific to the language or the platform at the time.
Mr. r00tdvd, has confirmed that no matter the path that was taken by him (C++ Development or Web Development), he still would have encountered the same or similar problems. As the dot net bubble affected all the IT companies and not a specific sector.
Regarding the first part of your answer to the question. Can you confirm that the visibility, usability, and usefulness of the applications that you would create, impacted your decision?
Can you clarify your question Samuel?
You mentioned that going down the path of web development would result in far more useful and visible applications, than C++. Would this be a main factor?
It wasn't about it being more usable or not. It was about something that I enjoyed rather. So some developers will enjoy creating games, for example, I enjoy creating business type applications, right? So some developers enjoy creating desktop applications, so these applications are just purely sitting on your desktop, like accounting software for example, right? But I enjoyed creating websites that were basically accessible by anyone in the world. For any kind of purpose.
I see.
Mr. r00tdvd, has confirmed that the fact that he enjoyed web development, and that feeling was enough to lead him down such a path. This is a subjective matter, due to the fact that, although some developers are led by their desire to write in that particular language, not all are driven by the same desire, some may choose the language that is most in demand, and others may choose according to the salary when hired to work with this particular language.
So you basically enjoy the versatility and the amount of people that you could reach out through with the use of web development.
100 percent correct.
What kind of people do you, as an IT professional, interact with? Are they other IT professionals, clients, investors, the general public?
Yeah, sure. I basically interact with all sorts of IT professionals, so I work with business analysts, Scrum Masters, testers, project managers, other iOS developers, and Android developers. It's extremely important to work with all of these, even with solution architects or solution designers.
I've also worked with customers directly, to understand the requirements and come up with the solution architecture myself and a strategy. Strategic solutions. So you've got to be able to work with all different types of people.
Mr. r00tdvd, has confirmed that he, has in fact engaged with multiple different people through his IT profession. Moreover, he discretely lays out the team structure, that will be spoken of, in further detail, soon.
Is this an issue that you faced or is it something that you enjoy doing?
Yeah, it's 100% something that I enjoy doing. It's part of our job. Part of our day-to-day tasks. It's something that is normal to do so.
Mr. r00tdvd, has confirmed that he finds his interaction with said people, rather enjoyable, and typical.
Do you believe that the content learned at university has been essential to your knowledge and practise in your area?
All right, that's a really great question, and I'm going to try to be as honest as I can, and also to the best of my knowledge, and I will share a little bit of my story with that as well. So not all subjects in my time were at all directly relevant to software development.
But they do expand your mind to think outside the box. However, there were for sure some subjects that were completely irrelevant. And I suspect that may be the case today. I'm not sure.
The subjects at UNI, there would be subjects that you need that I passed and some that I failed at the expense of giving extra attention and focus on the programming subjects. As this was my passion, when I started for example, I remember failing physics... like twice.
I eventually passed it. It wasn't directly relevant to programming or creating web applications.
But if I had the opportunity to do it again, I will actually enjoy doing so, but that's a separate story. I also studied networking.
Again, it was also not directly related to software, programming or web development, however, it opened my mind to a lot of things.
I was already very interested in computer security a lot, right? So, I really didn't spend much time. Basically, this is what happened. I didn't spend much time doing assignments at the time. But I spent time creating software to gain access to other student's accounts.
Borrow their work... It got out of control at some time at some point, to the point that I was joking about it to other developers telling what I've been doing.
I used to install software in the memory of a computer, in the computer labs that basically presents the login screen to students so they can simply log in.
They would log in the first time, I would just tell them sorry your password is incorrect, but what had happened is I've captured their credentials.
I enjoyed doing that, but I also probably wasted so much time doing that, which impacted my other subjects, so I probably did that because of the lack of focus of the computer programming subjects at the time, and I knew this was going to be my thing. Let me try to answer you.
With regards to the question about the content itself. Now it was like maybe when it got to third year and 2nd year and 3rd year there was only a few subjects in my first year. Maybe it was like C++ programming couple of subjects or one subject.
Second year just a few more. Maybe there was like an assembly language machine code language. Third year was a huge year.
It was the year where all of the university students would do work on a universal software project to be developed using the waterfall methodology, which I'll try to talk about later. But basically, at university in 3rd year we were broken up into about 23 teams. Every team had a team lead, maybe a secretary, developers and so on and I wanted to be a team lead as well as a key developer.
So, by the way, let me just explain something briefly here and I will talk about that towards the very end. I'm actually not an "A” student, I'm average student. So, keep that in mind as I share with you all of this information because it's important.
I only had one friend of mine at university who was an A student. He was also in my team, and I wanted to choose people in my team based on their personalities, how easy I could work with them. My team was the most multicultural team in the university in that year and I will not discuss everything that happened, but we ended up achieving the second position, across the university and the software was potentially to be sold to other companies.
It's important to choose a course that has most of the relevant subjects that will lead you to specialise in a specific stream.
Mr. r00tdvd, has spoken about his experiences at university, he has revealed to us an unorthodox approach and has spoken about it. His experiences at university were not like those of a typical student, he did not only study and aim for distinctions. He casted his concentration to what he believed was important to him, and the stream that he wished to specialise in, but he made an important comment that is confirmed by a study (2021, June 15). “Although some of the subjects in his course were not relevant to him at the time... they expanded his brain and caused him to be cognitively challenged in ways that his software subjects may not have targeted”. This is a crucial point due to its objective nature. In addition, this statement is exclusively said, when it is too late. Referring to the reason we would interview an IT professional in the first place, it is due to us desiring advice, that will effectively reduce instances of oblivious and unwise choices.
Mr. r00tdvd also confirms that his software development skills, were not the only concepts that he learnt at university, he also learnt about working with a team and how to select team members. This is also a point that he will stress in the second half of this interview.
Zacharopoulos, G., Sella, F., & Kadosh, R. C. (2021, June 15). The impact of a lack of mathematical education on brain development and future attainment. Retrieved from https://www.pnas.org/content/118/24/e2013155118
Regarding your previous comment, what would you recommend with regards to assignments and focusing on assignments in contrast to personal programming projects?
Yeah, very good point.
You've got to focus. Your priority is your assignments. That is a given, that's 100% that's your priority, because that's what's going to give you the marks to be able to move forward officially.
On the other hand, you need to give yourself that time to innovate and create and learn these programming languages, they go hand in hand. But your primary job is to focus on your assignments.
Mr. r00tdvd, has confirmed that myself and Michail as students, should keep our focus on the assignments and tasks that we are assigned to at university, as these will allow us to move on professionally.
This statement makes sense, due to the fact that a recruiter will not look at our personal projects that we have developed in our years as university students, but, although that is the case, these side projects will help us to understand concepts that are hard to learn right off a book or a website, there must be a balance.
Earlier on you also mentioned that in this field it is essential to be able to interact with other IT professionals in a manner which is mutually beneficial. Could you please elaborate on this and share with us your own personal experiences in this domain?
Sorry, can you repeat that question? I just barely heard you there.
Earlier on you mentioned that in this field, in the field of IT, you're required to interact with IT professionals continually in a way which is mutually beneficial.
Could you please provide examples of how you approach this part of the IT world and elaborate on it in general?
Yeah, so working, with all the other various IT professionals, is something that you do on day-to-day basis. So, working with a business analyst. So, the business analyst will basically work directly with the business and translate the business requirements into a document that a developer can understand and if a developer has any questions, they will reach out to them, saying “please clarify this”.
A developer will also have enough knowledge about the application that the BA may make mistakes about, and the BA will then raise alarms to the BA. The required functionality may not work or may take a lot longer than what's expected.
You will also work with a with a UX designer who is specialising in just designing screens.
And again, the UX designer may not be, as he's a very skilled designer, but he's not as knowledgeable when it comes to the iOS platform, so he might create a specific design that's very complicated for a developer to implement, or may not be doable.
So, you need to be able to communicate as well with the designer. You'll also need to communicate with a tester in a scenario where you're debugging an application.
So, a tester, will try to create a video of replicating a bug of how it goes or how you can repeat it so you can see where the bug is happening and sometimes the tester is not able to do that.
In fact, one of the trickiest, as I mentioned previously, one of the trickiest bugs to debug is the ones that you cannot replicate.
I did run into that scenario a couple of times, and I spoke with one smart tech lead before, and he actually told me something very smart and it didn't click in my head until I actually gone through it. He goes to me, “why don't you try to create a code path where you could actually, cause the crash?” So even if the application is behaving normal.
You can actually go and make minor modifications in the code to be able to force it to crash, and funny enough when I did that, I was able to replicate the problem or the bug. But yeah, you've got to work with everybody. Managers, they manage the deadlines and you've got to give updates and so forth. We'll get into that later if you like.
Just a small tangent question. I know this is a subjective matter, but is it true what they say?
Software engineers are not generally fond of testers?
Not all, look, everyone does his role and plays their part.
The most important thing actually in IT profession and companies, is completely respect, respect to everyone's role. You give respect, you get respect back and everyone should be appreciating everyone else’s role, a tester enjoys being a tester. A developer enjoys being a developer.
But yes, we think we're a lot better than anyone else.
The question asked here was in the form of banter, it was simply in order to understand a certain aspect of the relationship between developers and testers.
Although that was the case, in this case Samuel Saad, as the speaker, decided to break the professional atmosphere before moving onto the next question
What would you say is the best way to approach our education in IT/computer science in general, does there exist a technique which we can use to retain most, if not all the information that we have gathered?
You have got to repeat that question, there was a lot in it.
What would you say is the best way to approach our education in IT/computer science in general, does there exist a technique which we can use to retain most, if not all the information that we have gathered?
Can you just try to elaborate that question, explain what you are you trying to find out of this question?
I believe through this question we're trying to find a fundamental method that you may have implemented in your studies, that would have resulted in you being able to retain more of the information, that you received from your professors.
Yes, sure.
Or any or any other general techniques which you might have used, which might have helped you out in other domains, throughout your studies.
That's a really great question, actually.
But I've only really honestly. I mean, maybe I was doing this when I was a student but wasn't aware of it.
But it's become a lot clearer to me after I graduated and started working in a professional work. So, there are two types of students, students that like to go and read books and spend time reading about theories and that could take a long time, like maybe a year or whatever, right? And the other kind of student, which is most like, that's the kind that I lean towards more. I'll go out and actually start coding, even if I don't know it.
I'll just start creating an app, I will go and research, read up about questions. How do I start this application hands on, so I'm going to GitHub (Programming Collaborative Software), or stack overflow.
And try to find answers to my questions, but it's all about opening up the IDE. Your integrated development environment and start coding right away and look at the existing solutions.
Learn from them directly without even reading a book. Maybe I'll try to read a brief documentation or watch a very quick YouTube video, but I'll get bored right away. I just, I just don't have it in me.
I hope that answers the question, but basically bottom line is you can choose either way. Both are right.
There's not one better than the other, but at the end of the day, you got to keep in mind at the end of the day, you're going to have to open up that IDE to start coding to put what you've learned, theories, into practise.
Yeah, so I believe that's a rather unorthodox but exceptional approach. Mr r00tdvd.
And it actually allows you to test yourself and to understand whether you have truly comprehended what it is that you have attempted to learn.
Mr. r00tdvd, has advised us against the common practices of university students. That is not to open up a book and start reading for the sake of simply understanding software concepts and paradigms, but instead, “open up your IDE” and out your knowledge into practice.
Mr. r00tdvd later confirms that the approach that we take as students is dependent on our learn style. The answer for this question may help my group significantly as the majority of us, have completed a learn style examination. This examination determined the methods that we are to employ that enable us to understand concepts in the most effective way.
Would you prefer working by yourself or in a team structure?
OK. You may not expect this response that I'm about to share with you, but it really depends on the project you're working on.
If you're a good, skilled, developer, you should be more than capable of releasing a software completely on your own.
Some developers are also very good UX or UI designers. I mean, I've learned Photoshop in the past on my own and created amazing UI and websites, and also, you can also be very good as a business analyst.
You're able to interpret the business requirements and create a simple document to document all the features that you need to implement, but it's all about the time, and the effort.
At some point in my life, I was working full time, at NAB, previous to NAB, and I was approached by a company to build a system for them. I was responsible for everything from gathering requirements to implementing the system and meeting directly with the client.
But, because of the time, I also had a web designer working with me and it was a great success. It took a long time, but it was a great success and we split payments in percentages.
Now if you are working on your own project also, it's possible that you can do everything on your own, but the time is a factor.
However, having said all of that, if you're working at a company, it's extremely essential that you work in a team environment.
First of all, you don't obviously have an option, but second of all, it's better that you focus on your specific tasks, the ones are allocated to you. Let the designer do their UI. Let the BA translate the business requirements, and a manager to manage the timeline and so on.
Mr. r00tdvd, has advised us against fulfilling other team members’ roles. Although this is the case, he helps us to understand that being able to fulfil a majority of these roles, is essential for a software developer that wishes to further his software development skills and create applications.
He mentions a positive life experience that he has encountered. He has previously collaborated with a web designer, the resulting application that came out of this collaboration, was rather satisfying, as they both pulled each other's weight and completed this application with profits at the end. I believe this is the ideal process of a team in this field, something that is unfortunately not always followed.
You said that at one stage in your career path you had to interact with clients. So, I'm wondering what was it like to interact with clients? And potentially I'm sure you have interacted with investors as well in the past. What was it like?
So let me clarify something I actually interacted with clients' multiple times, not just one time, but this was one-time where I did my own personal project, while I was working at a company, because whilst working at companies you will also get opportunities to interact with clients directly.
And it's actually a great feeling because you don't have a mediator between you and the business, you are there.
It's a front you are facing them directly, getting the information from them and you're meeting them on frequent basis.
So, the first time you are gathering some ideas, brainstorming session, get their questions. Second time you may be proposing your solution to them. So, you will definitely enjoy meeting up with clients. I wouldn't say, you meet with investors as a software developer.
There was no opportunity that presented itself or no need really to be meeting an investor. I mean generally speaking, a client is an entity, that requires a solution for their process, I don't know if you want to differentiate between an investor and a client. They're both sort of the same thing, in my mind anyway.
Mr. r00tdvd, has confirmed that he has indeed worked with multiple clients and that this process is one that is to be cherished and enjoyed. The pleasure that results in working with clients, is derived from the inexistence of a mediator, it is simply the developer and the client. This would consequently allow the software developer to see and experience the satisfaction of the client that see’s the progress, and in the end, the final product.
So, you have never ventured, also to develop something on your own, independent of some other entity which might have requested from you.
So, I have done that multiple times, yes. Would you like me to talk about it?
Yes please.
Sure, so this goes to the apps, some of the apps that I've worked on so remember? I mentioned earlier I started as a Microsoft.net C sharp developer.
Now it was a big thing in my life, about seven years ago when I decided I was really passionate about iOS, and I really needed to get into it.
And look, for me to do that, I actually did decide to create a new app and to learn a new language which at the time for iOS, was Objective C. So now it's swift. But seven years ago, it was objective C, a bit similar to C++, but even uglier language and it was quite complex, so I decided to create a replica app of the Apple Notes app to support an ancient language called Coptic.
Which is basically the fourth stage of the hieroglyphic language, and it's derived from the Greek alphabet. I am Coptic and basically, that means I am True Blood descendant of the ancient Egyptians, but those are the only like the minority, which are the Christian Orthodox.
At the time, people were actually, like friends and colleagues at NAB, while I was working on that, I was working full time, doing this on my own because I was really passionate about it, part time.
They were kind of like maybe having a laugh and mocking me, at the time, because who would use such an app?
You know who will? Who is going to use a note app that just supports an old ancient language.
But the biggest shock, and, to my surprise, I was receiving phone calls from around the world basically on how huge of a gap this the existence of this app was missing, to the point that I actually received phone calls from scientists in Germany about it, because in order for them to decipher hieroglyphics, they actually needed to learn about Coptic, and this app helped them to do that.
But after I finished this, and this was a big one, because it took me a year basically working. I'm working full time as a Microsoft developer, but part time late at night, teaching myself, objective C.
And I'm a perfectionist. I had to do a number of re-alterations to get this one out.
I wanted to do something different so I'm also a jailbreak developer for the jailbreak community. I don't know if you guys know about jailbreaking, but iPhone jailbreaking is basically simply hacking the internals of apples internal system to be able to customise it, and I decided that I wanted to do something innovative about five years ago.
Where I basically reverse engineered, the native phone app at the time where iOS nine was about, we're now reaching iOS 15. It basically allows the user to simply swipe left, right on a contact to be able to do FaceTime, send a message Facebook message.
All social media apps were right integrated at the finger of the user, I created like a YouTube demo and it's been watched by over 46,000 users from around the world, the next day my friend at work at NAB, he said by the way, there's an article written about your reversed engineered tweak. It's called phone++.
It was such an exciting moment and it wasn't just one article. There was lots of articles and videos that were written about it from Italy, Spain and it was an amazing feeling at the time. But yeah, these are a couple of personal apps that I've worked on.
Not talking about the commercial ones, that I did, yeah.
Mr. r00tdvd, has confirmed that he has indeed worked with multiple clients, and that this process is one that is to be cherished and enjoyed. The pleasure that results in working with clients, is derived from the inexistence of a mediator, it is simply the developer and the client. This would consequently allow the software developer to see, and experience, the satisfaction of the client that see’s the progress, and in the end, the final product.
I'm sure that it would have been rather satisfying and joyful, understanding that you've helped multiple people across the globe.
It was a great experience building them, and learning from it. Yep, absolutely.
So, this particular factor, being able to help people and understanding that you have helped people across the globe. Will it give you a sense of a driving force, moving forward with iOS app development?
Absolutely, look. This is generally the case when you're working and developing apps on the mobile platform. You're really creating something for everyone in the world to use.
Believe it or not, I created that Phone++ app initially for myself, because I found a gap in there and then I thought you know what? Why not let everyone else use it? Maybe others will use it. And again, I wasn't ready. I wasn't at all expecting that there was going to be demand.
Believe me when I tell you seven years or six years down the track, I'm getting emails about both apps.
The first notes app as well as the second one, which is amazing actually.
It truly must have been an amazing experience.
If you're determined and you're persistent, and you always finish what you start, that is the key thing. You will succeed no matter what you do.
By the way, was your name anonymous when the articles were written about you?
Yes, correct. I actually never revealed my identity about it.
Mr. r00tdvd, has confirmed that it was a pleasurable experience, what he went through, and still till today, he is receiving flattering comments, regarding his application. This pleasure is experienced by many people across the globe, according to this article on a study revealing the results of people helping others in opposed to a life full of self-centred actions. This factor is one that drives people to enter their profession, it is simply the way that the individual is willing to help. Whether it be, on site, as a physician giving sick people the aid that they require, or remotely, on a computer, working on an application that will simply help many people that are in need. And it is for this very reason, that Mr. r00tdvd, has chosen to, and is leading us through the narrow road of software development.
Yes, well I'm moving on, how many members, does a team usually consist of?
How many teams?
How many members, does a team usually consist of?
So that depends on the organisation, and the company and the size of the company that you're working for. Some can be small teams; some can be large teams. In some organisations you can be the developer and the tester and the BA all in one actually. And in some organisations, there is a sort of a perfect kind of setup where there is BA’s, testers, managers and you as a developer. So, depends on the company.
So, I believe that company that you spoke about just previously, would be considered an agile work environment.
Which one?
Where you may fulfil multiple roles.
You mentioned that in some companies or organisations you may fulfil the BA role the tester role, the software engineer role.
Would this be classified as an agile work environment? And how do you find that in opposed to the perfect?
No, not at all. I was just answering about you. The previous question was about how many in in your team, right?
And the response was depending on the company that you work for. Sometimes, companies can't afford to have everyone in in their teams.
And in some companies. There are large enterprise companies, that can actually have proper teams. If you're talking about agile, that's a completely separate topic. If you want to talk about it, I’d be happy to.
So, would you prefer to have multiple roles or fulfil multiple roles? Or would you prefer to stick to one roll?
Obviously as a software developer, you want to focus on just your role. These are very rare situations when you're in that sort of environment, but you want to be only focusing and specialising on your programming role. You don't want to be distracted by anything else.
Earlier on you made reference to some companies, some enterprise level companies, being able to afford to have proper teams. What do these proper teams normally consist of? How many members and what roles does each member have?
Sure, yeah, that's a good question. Let me just say in order for me to explain that I need to give you an idea, about the differences between sort of agile versus, say, waterfall for example, because it's kind of relevant and believe it or not, even large companies are integrating and incorporating agile methodologies. Now it's become a huge trend even a few years back.
Basically, all my life. I lived and breathed agile for about maybe 15 years now, out of my 20 years' experience, and basically, agile is a process. It has nothing to do with how large or small a company is.
Agile can be basically interpreted differently based on the different teams, different teams will interpret agile differently all the time. One company can be using agile in one way that is completely different to another.
So just to quickly explain the difference between agile and waterfall. Now waterfall is really a sequential development process OK, which flows like a waterfall. It takes you through phases. In a project from requirement gathering, analysis, design, development and testing, and each phase needs to be completed and wrapped up before it goes to the next one, before the next one begins. Now agile, it's about rapid development and it's divided into spreads.
A sprint can be basically two weeks or three weeks. Now I need to mention that companies generally use JIRA. It's a software to manage tasks for task allocations.
So basically, let me now come back to your question what's the set-up? And if we're talking about agile.
So, in a team you pretty much have a business analyst, you'll have a tester, you'll have Android developers, iOS developers, and the Scrum master running. From the board or going through the board.
So, it's on, JIRA board you can see everyone tasks. Basically, the JIRA board will be divided into multiple columns.
So, we've got your back log which contains all the features, the new idea is to be implemented. You've got another column says to-do.
These tasks are about to be ready. Then you've got another column. I'm hoping that you're able to visualise as I'm explaining this, you've got another column, which is in development, then another column, that maybe says PR review. And I'll explain that later, maybe.
And then another column that says done. So, usually a developer and the scrum master, the tester and a UX designer, will do something called a kick-off.
So, before every story, we call them stories and the story is, for example, let's say a developer or a business, would like a login screen to be implemented. So, that in itself becomes a story. The business analyst will write all the acceptance criteria.
OK, what will happen? Or how will this screen behave? What will happen when the user clicks the button where will it take him?
Are there any specific business rules so the business analyst will go out to the business will translate the requirements? We will create a story and will write down.
A developer will have a look at it, it will also be associated with some kind of UI. The UI is designed by the designer and so basically, uh, developer, once they do, they do something called a kick-off to discuss a story and share that information.
We also have something as part of the agile process, like an estimation session, where developers will go and, estimate how long a task may be right? They use the Fibonacci way of estimating and goes like from 2 3 5 10. These are the points they represent the points of complexity of implementing a task, so, for example, if myself Michail and Samuel here, are all iOS developers hypothetically speaking, and we need to implement something now, we will be asked to estimate each one of us. How long something might take.
You may say two points for you, Samuel may say five points. I may say 13 points, right? These will all vary and we need to discuss what?
What are the reasons why you chose that number? So maybe you thought it was so simple, but maybe I thought that there is a piece of work that's completely unforeseen, or there is a level of complexity that you didn't think about, right? So, we're all sharing an estimation session, and it's almost like a friendly chat, but you got to understand. People are also estimating based on their own skill set.
So, we've got to be careful that we don't underestimate, and we also don't overestimate. There has to be a balance, but basically the teams as I mentioned. You've got the scrum master, the BA, the tester the developer, the designer, and we're all working together.
Proceeding confirmation and elaborative questions, Mr. r00tdvd, has confirmed that the size of the organization is the largest factor when it comes to the structure of the team. A team may consist of a rather small number of members that will consequently lengthen the time it takes to complete a certain application, or to implement a certain feature. The quality may also be compromised due to time constraints, and in addition, the team members may not have specialised in all of the roles which they must fulfil. With regards to his preference, he mentioned that as a software developer, it is rather obvious that you would prefer to be in a “perfect” team environment, where everyone fulfils the role, that they specialise in, this will, in contrast, result in a quicker, more organised process that will end up with an application of exceptional quality, due to the input of every member’s specialty. Mr. r00tdvd also mentions a software that seems to be rather popular in the world of software development, “JIRA”, this software is a task allocation application, that is used in large organisations, to allocate tasks and track the different “stories”(phases) that the application/program is passing through, he also touches on a certain procedure that is completed preceding the creation of the application, this is the process in which all of the developers are to quote how complex they believe this application will be, this is also a rather subjective matter as this estimations foundation is based upon each developer’s expertise and experience in this field, the end complexity estimate will then be discussed among the developers in a simple meeting.
Could you please explain what the PR review is.
Yeah sure, absolutely. So basically, the PR is a pull request. It's when you're given a task to, either build a new feature or fix a bug. You're going to most likely modify, let's say 1 to 10 files. Possibly. Let's say the application has, got 1000 files, right? However, when we went and you implemented this new task, you actually needed to create three or four files, right?
So, what happens is, you want to notify all the other team members that you've finished and completed, that piece of work.
By the way, as a software developer all your life will revolve around PR’s. So that's essentially your job in an ideal environment, so let me get this right, so an ideal environment, a company, will have something called CI that's set up. CI stands for continuous integration.
What happens is a developer will go out, they will create 3 files with the new feature, another tech lead or other developers will go out and review that code.
This has been a pleasure actually, to get your code reviewed and can be quite an intense process because it's almost like playing a chess game.
Depends on the personalities that you're working with. With regard and with respect to the other developers and tech leads, some could be very, pedantic about every little thing, and that could be a good thing and a bad thing.
I worked with an army of developers, reviewing code, like I'm missing an empty line here, there is a space there. And some that were commenting on the logic behind a specific function, but you will learn from everyone.
So sometimes people take it personally, but you don't want to take it personally and at the same time as part of the reviewer is to make sure the question is raised, not in a way to intimidate the developer, but let's say you have implemented something in a certain way. A smart tech lead will not say no, don't do this, that way is not right. No, that's the wrong way of responding or making a comment on a specific line of code, a smart tech lead and experienced one would say, should this not be done like that?
It's a question. But you're getting the other developer to think about his technique, right? Also, if you as a tech lead, if you are sensing that the developer has a little bit of weak skills, so you want to also propose or suggest a different solution, to him to help him out.
Either way, if a developer is stuck at a PR or there is a comment that he's not understanding, it's best to connect with the person who made the comment, have a quick chat about it, and yeah, these things can become, like war, by the way but yeah. It can get quite intense.
But on the other side, there are many companies and many places that unfortunately, lack this best practice.
This of reviewing codes and PR's they just don't have the skill set or they don't have the right environment setup, but that's what all PR is all about, yeah?
Mr. r00tdvd, has elaborated on the process of PR, and this simply, is the last stage before the code that has been written, will be pushed to the main code. He explains the PR process to be a rather “pleasurable” one, as the code that is checked on your behalf, is returned with polite comments on what approaches and modifications that may be implemented, that will result in better code, this is indeed in the best of times. Alternatively, the PR may come back with quite demeaning comments, ones that may not uplift, nor edify the developer. Mr. r00tdvd explains that software developers are not to take this personally, and to consult the reviewer if there are any misunderstandings that may have occurred.
As you mentioned just previously, this software that manages the program as the program is moved through these different phases or stories, as you called them. How much is the code refined and modified?
Sorry, thanks Samuel for reminding on a point that I needed to finish off actually. So, I mentioned CI. And that's continuous integration. So, what happens actually when you create that PR after it gets reviewed?
Basically, it's best to have two reviewers, right? And we get 2 ticks' man in one of my last jobs everyone was like I usually get the first tick and I'm waiting, could please someone give me the magic hand for the second tick, right?
Not just me, a lot of other developers, were in the same boat because we need two ticks. Once you get the two ticks, there's a button called complete right, and what that does, is it merges the code into a master branch.
That means your piece of code that you've worked on, it has been approved in JIRA. We will be able to move the task from a PR column, onto a done column, and then probably the last column actually, which I forgot to mention, is the testing column right? So that then gets tested by a tester.
So, what the CI does once a PR gets merged, it will automatically generate an IPA which is the extension for an app for iOS.
And then it will also take care. It will all happen automatically because it's been set up that way. It will also upload it to something called test flight. Test flight is an apple platform to allow users or anyone have access to this app to be able to test it on their own devices once it gets done, so it's not released to the whole world but only to specific pilot of users.
And that's the process of circle CI.
I presume that, the reviewing process is not always a pleasant one, and one which can often entail disagreements between them. So, could you please tell us if you have ever had any unpleasant experience in general with reviewers, or with your team in general, and if so, how did you handle them?
Absolutely, this is a very important question, and one that you can only learn about as you start to accumulate life experiences.
Let me tell you, so yes, of course, I've encountered this, but please keep in mind that these unpleasant experiences will vary from one experience to another.
So, there will be some unpleasant experiences that you can tolerate, and find ways to work around. But there will also be some that you cannot handle and may impact your sanity and will cause you to make serious decisions.
Now, if the situation is a bit extreme and you don't have a choice, but to raise it to a manager. And follow the proper channels. It's straightforward as that now, generally speaking though.
Communication is a powerful weapon, one that many developers need to work on, and if you try to master your communication skills from now, you'll have a huge advantage over other developers.
Creating some kind of a bond with other IT professionals around you. It's very important. As I mentioned before, if you show respect and humility, you will receive respect back.
It's important to humble yourself, and be patient and I'm still working on those two, by the way, in some situations you don't want to show how smart you are, or better skilled you are, than another person, and I'll explain to you why or how.
Sometimes it works, sometimes it doesn't, but it's important especially if another person has a higher position than you, in order for you to maintain a healthy work relationship with that person, and I'll give you an example.
This one is actually happening currently as we speak, so I'm working on something and in the app, I've discovered code that's broken. I actually spoke to the tech lead and told him, hey, by the way, it's broken. The tech lead went, tried it and it's working fine for him. Then I went, had a look I spoke with another developer. It's broken for the other developer. I spent time to help the other developer to get it to work and I tried my best. Didn't get it the first day, but in the morning the next day I actually found what was wrong and it was actually because in in the project, they are using a third-party library.
Without using an explicit specific version, the third-party library was written four years ago. And because they were not, and it's pointing to the absolute latest and the greatest of that version. But they weren't, setting an explicit version of that library. What had happened? Funny enough, only about 3 days ago, after four years, the initial developers made an update and they actually killed and broke their own code, which impacted the project. Now that I found what was going on, I just started laughing and I know why the other tech lead couldn't replicate it because he needed to delete some kind of file to start fresh to be able to see and the master branch is broken.
This is a very challenging situation because I don't want to hurt the tech leads ego because when there is an issue, I have got to bring it up in a very diplomatic way, because obviously, this is saying out loud here: By the way, I'm better than you. It's just it's not a good, message so you've got to be diligent and funny enough. I tried my best today, in a stand up. I tried to raise it in the meeting and explain it in all humility. One of the presentations that we were given recently where I'm working is that you never ever when somebody is saying something you never want to, ever tell them this line, “let's take it offline”. Let's take it offline? It's belittling your comment, right? And it's just showing that whatever you're saying it's not quite important right now. Now imagine this right? We are in the mobile team for iOS and Android developers. And here I am. I decided to raise an issue about, broken code for iOS. And unfortunately, as much as I tried my best, not to hurt the ego, of the tech lead the tech lead did respond with, let's take it offline, you know. Even when they did that, he was heavily noticed by others, and it's heavily noticed because it was very clear that the code is broken, but let's shut it. Shut up, don't talk about it here.
You know, I mean everybody is listening, but sometimes people are sensitive, and you have got to be able to learn how to work with them. And yes, so I hope I have answered your question more than enough.
Mr. r00tdvd, has elaborated on the common practices in the world of IT and how to implement certain unorthodox methods that would assist you to earn the favour of the tech lead. He mentioned briefly that discussing an issue with a higher position can, in the worst-case scenario, be of mutual benefit, but the best alternative, is to build relationships and develop communication skills, that would aid a developer to not have to experience this unpleasant process.
He mentions that in certain situations, it is not mutually beneficial to reveal your cognitive ability as it may not be perceived in the right way. The best way to make connections is to be humble, and reachable, and that winning the argument, may not necessarily mean winning over the person.
Well, thank you Mr r00tdvd for assisting us to understand common practises in the IT world. You mentioned previously that your team for the last year of your computer science course consisted of multicultural nature. If you were to put together a team, what would be your main criteria in choosing your team members and why is that?
Absolutely, that's a great question. I would definitely do it the exact same way as what I've done back at my university.
I would choose people based on their personalities; how easy it is to work with them. First and foremost, their communication skills and also their passion. You've got to share a common goal.
And finally, it would be their skill set, but it's extremely important to basically work with people that you're able to, work with.
Because everybody can code but not everybody, you can work with easily.
They can't manage to communicate with other people in an effective manner.
That's right.
Mr. r00tdvd, has again elaborated on the importance of choosing a team based on their ability to work with others, and not only their programming abilities. As there may be a team that is made up of five grade A students, and although this may be the case, it will not necessarily result in higher quality work. This is due to their possible inability to communicate in a mutually beneficial way, something may compromise the entire team spirit and hence be detrimental towards the common goal.
It's well, I'd like to suggest something as we've reached the one hour and 10-minute mark. Would you like to have a simple two minute to five-minute break just to get a cup of water or drink and we can resume this? Or would you like to continue?
I'm happy to continue. Thank you for asking
I'm happy to continue as well.
Just putting it out there for us.
In the IT world the as you have mentioned earlier on, there are multiple problems which you have to face in combat on a day-to-day basis.
Could you please elaborate on exactly which are these problems that you personally have faced in the past? And also, what methods you used so as to solve them, or at least mitigate their impact?
Yeah, for me personally, sometimes workload can be overwhelming, especially during COVID. I was being overworked.
So, you need to teach yourself how to how to be able to switch off and be able to manage business expectations.
Another important challenge working as a contractor. Or just working for a consulting company and this is a real-life example here, is that you're constantly moving from one project to another.
The duration can be from one month to three months to 12 months in a project. The biggest challenge here is learning new frameworks, learning new code base's, working with new teams and adapting to their new methodologies. Every time you move to a new gig, basically you need to prove yourself over and over again.
So, you need to be on top of the game and be a really quick problem solver.
Now, the experiences that you get out of this is 10 times more than a permanent employee.
It's definitely worth it if you can handle the stress behind it and the risk from salary perspective and experience.
The other challenge behind being a contractor, is in order to secure an interview for a position you actually need to complete code challenges. Now depending on the company, they may not have code challenges as part of their hiring process, but this has become a trend in recent years.
When you say code challenges, do you mean challenges like which refer to one’s problem-solving ability like the type that you might find on websites such as leet code for instance?
Possibly, but they will vary from one company to another, so in many scenarios ive being asked to create simple prototype applications, something like ABC News to integrate with some kind of news feed and create the UI for it to show that you're able to connect with the back end and display data.
And choose your UI skills as well. You know all in swift you know? I mean, this is just an example of one code challenge.
There are many. Once I created like a Rover that landed on Mars and it's all got to do with mathematics numbers and stuff like that.
That's another code challenge, I've done so many now. The thing is, I hated code challenges at the very beginning, hated them, and I was so scared, of them.
But let me tell you, it is the one thing that helped me get my jobs. And you know, it made me stand out. Then a lot of other developers.
Basically, there is another thing another tip let me just give you now. It doesn't matter how good other developers have done their code challenges as well. If the developers don't really take care of the security around their code and leaving it lying around, by mistake, then just remember what I used, to do at uni? You don't get it, but that's OK.
These code challenges, do they normally have to be completed on the spot during an interview, or are you given a certain time period that you can complete them in?
That’s a good question. There are so many different varieties of these, so depending on how the company will run their code challenge, some code challenges might take 2 hours at the office.
These, you know I have done these, and even though I got one job out of it in the past, I really don't like them. I don't, you know, it's just a little bit over-stressful for no reason and then there was other. The usual typical per challenges is ones that you take home, they'll send you an email, you spend a weekend or a couple of days just to come up with what you can do, and then you can discuss it with them obviously. And some code challenges are from the web, where basically it's using a timer as well, right up to writing recursive functions and things like that.
I don't like the timer ones I hate them and then one code challenge I rejected to do completely, and it was basically an online code challenge where you're actually on video. You're on video basically, and you're getting recorded and I felt the sense of insecurity like, like it was not safe for me to do it that way, I just didn't like it and I just knocked back that one because of that. However, I hardly ever knocked back a role from my end, but that one was a special scenario. But code challenges is part of being a software developer. Get used to that idea from now in your head.
I can see how that would impede on your privacy.
Upon confirmation that with these code challenges, time is a great factor. Would you say that these are quite similarly linked to competitive programming?
Can you tell me about competitive programming? Because I'm not familiar with the term.
Competitive programming is an online kind of a competition that would time your code solutions to multiple problems that are thrown at you.
yeah, yeah, that's good. So, what's the question then?
So, would you say that these code challenges are quite similar or linked to these competitive programming competitions?
No, so as I mentioned, there are variety of different challenges, so these, and most of the code challenges typically, they will ask you go and create an app basically to do something simple, not a complete app but a portion of the app right but, as I mentioned, depending on the company, you might get some of these programming competitive challenges that you just mentioned.
Mr. r00tdvd, has elaborated on the complications that he has faced within his speciality as an IT professional. One, is that he was being over worked, meaning that the workload that he was required to do, was beyond his capability. This resulted in him having to implement a switch-off method, this consisted of a mental separation of the work life, and his own. Another of his complications was with regards to, contracting, when it comes to the field of contracting, the professional must always be on the lookout for the next job, and in order to secure an interview, you must complete code challenges that are being assessed according to multiple factors. Including the quality and speed of your code. He mentions that this is an unpleasurable process, and one that he was not fond of. An interesting point that was made, was that, even if a developer's code was successful, if their code was not secure and feasible to be used in a company, it would greatly decrease the developers' chances of securing the role. This ties into some of the subjects that my peers are studying at the moment, where they are being taught professional computing practice, that may not be necessary for the code to run but will enhance the security and professionality of the code.
Myself and Michail, we are sure to encounter these kind of code challenges in the future of our applications to multiple jobs and consulting companies. What would you say is the best way to prepare or study for these challenges?
Yeah, absolutely. I think first of all, in order for you to gain skill set, if you like reading some books, watching YouTube videos on some of these programming languages, then please do so. But at the end of the day, those code challenges are about you writing code, and you'd need to actually start going into GitHub (Programming Collaborative Software).
Download examples of existing code bases. There is an enormous wealth of information there, completed projects, but pick something that is simple because you want to be able to learn from it.
You want to be able to delete that and start it and write it all again from scratch, do avoid, doing a lot of copy and paste.
That will not help you, you want to be able to manually and slowly type every letter, because every time you type a letter like the word int for example, or integer that gets implanted into your brain.
The word public or function or private, you know, so you want to write it by yourself. So you've got to get your hands dirty with the code.
Whenever you get stuck, Google it 100%. You've got to be, you know researching actually the word Googling, don't worry about that. But researching something properly is an art. There's an art to search you've got to be able to understand that Google is a machine, that can definitely interpret what you're after, you just need to ask the right question. What am I looking for?
And obviously, most of the questions and their answers will lead you to Stack overflow links, or other sites, similar sites, or just go and have a look at existing solutions on GitHub.
Even searching on GitHub, it's an art. There's an art and techniques to be able to search for specific phrases with it that are dug and buried into code bases, that you can find what you're looking for.
Thank you for this. I'm sure that will be extremely useful for us.
You have already mentioned that you have created a plethora of different applications.
In order for these applications to be created, which parts of them did you find were most time-consuming for you and how much of your time did each of them take per week?
So generally speaking, as an employee, I can give you a really quick idea about my personal apps versus the apps that I worked on for companies.
So, for me personally, when I was learning or teaching myself objective C to make that switch in my career, it took me a whole year, working part time, right, being a perfectionist, bring something out to the world and creating a replica of pretty much what Apple has created, and it's actually funny that it was accepted.
You know there is like a process where Apple can reject your app or accept it. It's not that simple and actually Apple, for your information, is against anyone doing or implementing or creating an app that is almost identical to theirs, and I created one that's 100% identical to theirs.
However, I needed to provide specific, reasons why I needed to do so, and it was because at the time Unicode, I'm not sure if you understand what Unicode is, but Unicode is basically a way to support characters of all different kinds of languages, right? It's a system-wide thing, and that was not available at the time. So, by providing those reasons and for that specific reason, just go back to your question. It did take me a year because I was learning, making something perfect. And yeah, it was a little bit tricky at the time. Phone++ took me 6 months. Jailbreaking, reverse engineering is again learning something new. It's about hacking internals, learning new stuff now, apps that I've worked on. Now that's not just up to me, but it's up to the company and the project that I'm allocated for a contract can take...
Six months to a year or if I'm working for a consulting company, they might look at me for three months if I get extended then I continue working on that.
I don’t want to get de-railed
Mr. r00tdvd, has elaborated on the length of time that it takes to create an application, along with all of the other complications that came with them, such as learning a language, or being approved. He has even spoken of his contracting projects and how long this took. The length of time on average is about 6 months to a year.
Yeah, well thank you so much. I'm sure this would have been a satisfying and quite enlightening experience you had. I understand that the answer to this question may vary according to whether or not you are experiencing, where you are located, the coronavirus restrictions and how that goes for you. But where do you, as an IT professional, spend most of your time? And the answer may consist of various answers.
Possibly answers regarding three years ago, four years ago, even as a university student or just as a graduate being employed. Where does an IT professional spend most of their time?
Well, prior to COVID, obviously, we were at the company and so I'll explain to you what happened and how we've been impacted by COVID and most likely it's not just my company, but it's all the companies around the world.
Since COVID started about two years ago, prior to that I have always been, you know, as I mentioned, working from the company.
The company that I worked for, it was a consulting company and they pretty much, were like any other company, and were anti working from home.
It's just hard to work from home for any specific reason, right? You've got to give really valid solid reasons to be able to work from home.
When COVID started we were all suddenly forced to work from home and operate, keep that company running.
And actually, it was a huge shock to the CEO of our company that he found himself making much more profit than ever before during COVID, pretty much because this is true. Because they come out, and give us the financial reports and they were so happy and proud of all the developers that are contributing keeping that company running.
He said you guys proved me wrong, right? And it was only about 8 or 9 months ago when my IT consulting company introduced a work from anywhere policy to everybody and this is the way it should be as a software developer you do not need to be at a specific place to be able to do your job.
It's all about technology. You're communicating digitally everywhere.
Just to let you know I have been reached out or approached by Facebook twice. Once about four or five years ago and another time recently. It's actually a year ago, they explained to me exactly what I've just told you, that they were trying to convince me, hey COVID, because he (The employer) knew that I didn't want to travel to the US just now, so he told me look, you could still work remotely COVID has changed everywhere, right? Everyone around the world, I am just explaining to you how COVID has impacted everyone. So the short answer is I've been working from home for almost two years now haha.
Mr. r00tdvd, has spoken regarding where his time as an IT professional is spent. Prior to COVID, the organisations expected the employees to work at the office, and this was the case with most if not all companies. Proceeding COVID there was a notice put out in one of the meetings revealing the complete opposite to what the IT companies inferred. This confirmed their trust in the developer's productivity, even when working from home. This resulted in these companies producing more lenient rules when it comes to the location of the developer.
What aspect of your position as an IT professional is most challenging?
Uh, anyway, just to go back to that last question. I have been working from home for almost the last two years I've been working from home.
However, I've been working with so many people from all around Australia, so with projects like ABC News for example, I worked with people from Brisbane, Sydney, everywhere around Australia, federal government I'm currently working from with people from Canberra, Sydney and Melbourne. You know? Now to go back to your question.
What aspects, as an IT professional is most challenging. The most challenging is sometimes working with the business or someone who doesn't really appreciate the effort required to do a certain task. I mean, sometimes business, or even Tech leads, think about things from their perspective only.
And it's easy to estimate the task, but you're the developer who will be implementing this task and, you know, there may be unforeseen issues and it will be based on your skill set, so that estimate needs to be fair for yourself based on these variables that I've just mentioned.
Also, sometimes the most challenging thing is not the work itself as mentioned. Also, again, but people around you, so some employees can be driven by ego as I've given you an example before and their own personal goals opposed to the success of the team, or project, I guess that's the most challenging. It's not really the tech itself, although that has some complications in its own.
But doesn't the success of the team normally coincide with the success of the person himself and hence in the end increasing ego which he will feel?
Ah, that's a good question. I think I understand your question. However, the success of the project is actually about the success of the team, especially if you're working at a company.
You're not succeeding, for yourself there, yes, you are in the process. You are succeeding for yourself, but ultimately when you're releasing a piece of work, it's the work of all of the team.
Everyone has been involved, I gave you a rundown previously about how many people in terms of a BA, a tester, a designer, a Scrum Master, have been involved, and you need to make sure that feeling, the team spirit. It's all about a team, not individuals. Otherwise, you will not be able to survive. People will not enjoy work.
Mr. r00tdvd has confirmed that the variety of complications result in the various personalities that a software developer must work with, one of the most difficult is, when an employee is driven by their ego. This may result in their satisfaction, not proceeding the success of the team, but the success of themselves as an individual. This may, in multiple cases corrupt the team's mindset. Thus, resulting infectivity on a large scale .
So, I can imagine it be quite a frightening experience entering an entirely different new workforce. I mean, you wouldn't know anybody there and you won't know, how they work.
Yeah, absolutely, that's always a challenging task. Every time you start a new contract, but, over the years, and with experience, you'll be able to adapt. You need to be able to adapt to whether it's a big, large, medium or small company, adapt to everybody. Everyone comes from different backgrounds, different skill set.
Mr. r00tdvd has elaborated on the challenge that follows receiving a new contract, said challenge encompasses a need to adapt to the different workspaces constantly, it is unadvised that you would get comfortable in a workspace as a contractor. A method that he has employed regarding this particular complication, is learning to adapt in general to different team members with different capabilities.
Yeah well, please let us know if you don't feel comfortable answering this question, but me and Michail have seen and heard a lot of people quoting a variety of different salaries. What are the salaries that you see in your profession?
OK, so salaries will depend obviously if you're a contractor, or a permanent employee.
Obviously as a contractor you'll get paid more, but there's advantages and disadvantages to this, and it depends what kind of person you are and what you're comfortable with. Most of the years in my life, at the beginning, I was a permanent employee.
It's always safer, especially when you have a mortgage, and you have huge debt. You want to always feel that you have stable income coming through.
However, you will not be getting paid as much and sometimes you will feel you're not getting paid enough and you'll try to raise it and you'll get knocked back.
What happened to me about maybe let's say, five years ago. A whole team and I as part of a large structure at National Australia Bank.
I was made redundant, and it was such a yeah that was a huge experience. Another challenge in my life. I'm telling you like; life is full of challenges.
At the time, like my whole team, and there were people in the team crying. They had mortgages; they're married with children.
What are they gonna do? I was scared I didn't know what I'm going to do. I had not done a code challenge for nine years. You know what I mean? Like all I've been doing is what I'm being asked to do, at NAB and that's it.
To think that I've just lost my job, that I have to do code challenges and compete with intelligent younger guys than me, was overwhelming and scary, right?
But as I told you about the code challenges, it was the worst thing, the scariest thing at the beginning, but then wow, it's been an experience, by the way.
In my life at the time worked out to be the best thing that's ever happened in my life.
NAB has given me a nice redundancy package and God has blessed me with basically better jobs, better pay in the field that I'm passionate about.
I got to taste contracting, that's when I started to taste contracting and got used to it and I got into work and however, in the last couple of years, I decided to go back to being permanent.
Let me explain to you this and I hope you guys understand is working as a permanent for a consulting agency. It's almost like working as a contractor but getting paid as permanent so it's not worth it.
What they do is they're just like an agency, they're in charge of, finding a project for you.
You get paid as permanent, but the thing is, if you're working as a contractor and just dealing with an agency directly to find you the next job or whatever, you'll get paid as a contractor. So, I made the decision recently, earlier this year, to make a move to become a contractor again, and now it was a huge decision, leaving a permanent putting myself out there, facing the world, facing code challenges, getting interviewed. But yeah, it's the thrill as well, you know, and it pays off.
Now, sorry, let me get back to your question now, unless you're working up to a large enterprise company or financial institution, like NAB, ANZ and Telstra. These places you can call home. You can grow and move on from one position to another. But you know this is my advice to anyone in general do not stay at one company, other than these big companies, more than two years.
If you're at a comfortable position in your in your company, then just know that you're no longer being challenged. You need to find your next challenge, you're not growing, so whenever you make a move to a new role, you ask for a higher salary. So, you've got the belief that you're capable and you will be careful. Don't sell yourself short.
And remember one thing, this is important. The recruiters, really are clueless about IT and Technology. However, they are in an important position to consider your application, because they're in the middle in between you and the company.
Sometimes, by the way, companies hire by themselves directly. But recruiters are a bit like real estate agents. They're required only for a one-time transaction. Yeah, so they care about making a sale, so you need to be able to sell yourself to them and show them that you know your stuff and just have a couple of tablets of extra confidence basically before you see them, that's all you need.
You always need to follow up. You know, with a phone call and try and build a relationship with a recruiter.
Now let me tell you about a secret as well, you've always heard that salaries generally depend on the years of experience. Generally, that's true, but not always.
Samuel, or Michail, you know, at the age of what? 16, let's say 17 or 18,19 doesn't matter.
(Michail confirms our age)
You guys could be actual geniuses, and by next year you can release your first iOS apps and you would have developed enough skill set to be writing actual complicated apps.
Another developer who's a graduate, who spent, three years at university, finishing off his degree, and he will graduate both of you apply for a job both of you get asked to do a code challenge.
Who will do a better job? The guys that have started long ago to get their hands dirty with code and built an app (application).
He spent time doing years at university, but you've created an app. Both of you have a chance and opportunity to do well in that code challenge.
I'm a company, I'm an entity. I have no idea who's applying. I'm only receiving a code challenge before my eyes and I'm evaluating both, I don't know enough about your past experience or his past experience, so people got to really understand this is IT, and this is the world that we're living in now.
I'm only here because I have lived this and it's happened to me and you do not need that many years of experience. I have that many years of experience do not get me wrong, but I made a serious switch in my career from one field to another.
So as a software developer you should be capable of learning different programming languages. That's true, but it's not easily done. It's a very complicated task 'Because when you're learning a new language. It's not just about learning a new language; you're learning about all the frameworks associated with it.
So just to briefly answer your first question, my first job was around 23,000 a year. Let's leave it at that.
Thank you for your inspiring words. Mr. rootdvd. I can only equate your experience with NAB as almost as someone asking you to sit your driving test again.
You mentioned that your first job was 23,000. Generally speaking, after a few years of experience and tenur. How much can someone expect to be making? As permanent employee and as a contractor.
I will answer you this question differently. All you need to do is just log on to seek.com.au, search for your role, the role that you're after.
See how many years that they're requiring and just have an idea about how much they're willing to offer.
I cannot answer for all of you know the different experiences, the different years so everyone is different, and this question has a lot of variables to it.
Mr. r00tdvd has generously provided advice regarding salaries, not only information. He mentions that a contracting job will generally pay more than a permanent. This is due to the intensity that a contracting job holds and the stress of having to constantly, as he stated previously, adapt to different environments. Although he mentioned these, he also mentioned creating an application for a vast audience, and the reason he has recommended this, is due to the fact that even if an application is a very minute amount of money, it will most definitely, if successful, result in multiple purchases, that will then return a large amount of money. He also mentioned staying at a company for too long, and how that may impact your skill set as a developer. He mentions that you are no longer being challenged if you remain at an organisation too long and become comfortable.
You also gave us advice to not remain at a company unless it's a very big one for more than two years I have noticed for some job applications you're required to have a tenur of at least four years.
There was a company that I was looking at the other day. Let me give you the exact name of the company.
So, what are they asking or they expecting?
At least four years average of tenure at previous companies.
Wow, that's not their right to do that.
That's silly actually, in my opinion. That should not be a rule, and you'll find that as a rare situation. However, it is important you know to show that you have some kind of stability in companies.
As long as you're not a contractor, though, there's a difference. You know, if your resume is all about being in permanent roles, but very short periods, right? Well, there's a question mark, but if you are a contractor, it's a different story altogether.
Mr. r00tdvd has expressed his personal opinion regarding what a recruiter is allowed to ask, he then specifies that if we are planning on moving into permanent roles, it is best to keep jobs for a while as leaving jobs early may not look as pleasing on a resume. This is apparently in contrast to contracting which requires you to leave jobs on a regular basis.
Well, I personally, thank you for sharing your experience at NAB and I believe I can only hypothetically, equate this experience to somebody asking you to do your licence exam again after like almost nine years after having your licence, you wouldn't be able to do it.
With regards to permanent and contracting, you mentioned that you switch between these two worlds almost quite frequently. Which one would you recommend for a graduate?
For a graduate?
Yeah, that's a really good question. Samuel, actually,
You've got to assess, your life circumstances at the time, so you may actually not have a choice, let me make that clear.
Sometimes first come, first served. That's the way it works, if you've been offered a role, a permanent role, you will get excited about it and you'll just need to take it because it's your first opportunity. And even if it was a contract, you'll do the same, right?
Do not reject any offer, even if it was just as small as six weeks contract, because that could be the beginning of a huge thing. Actually, that is precisely what happened to me after I finished with National Australian Bank.
I was given the choice of getting a high salary like what I used to at NAB, or pursue what I'm really passionate about for a six-week contract.
I actually made a phone call to one of my good friends and she gave me that advice. Go with what you're happy with and take the risk. You've got to learn how to take calculated risks, so don't ever reject anything that is small because it could be the beginning of something huge.
Yeah, sorry have I answered that question or not?
Here the advice is given that calculated risks are not necessarily unwise decisions, and these risks should only be taken when you have options. This is because when you are desperate, the advice here is... do not be picky, as this may lead you on a road that you really desire.
Yes, perfectly brilliantly. Thank you for answering that question.
Well, moving on to the next question. How many different organisations have you worked for thus far? Just brief number.
Let's say 20 organisations plus from large enterprise, to medium, to small agencies and some of them were through a consulting agency as well. So they were, you know, as a consultant company they were allocating me to say ABC News, or working with Deloitte. Or working with a company called reading eggs, whatever, yeah.
Which work experience was the most pleasant for you and for what reasons?
To be honest, at lot of the jobs it has been pleasant. It's pleasant to what I've delivered. Being part of a team. So, at Suncorp Bank app, we were 60 developers, half Android, half IOS, and basically the way that works you are broken into something called pods.
And every pod consists of an alteration manager, a product owner, 2BA’s 2QA’s four iOS devs (developers) four Android devs (developers) and there was like six or seven other pods working together, delivering the Suncorp banking app.
It's a huge thing, and it brings pleasure to yourself when you see that release date. When you see the app is out and everybody is now using it and in the same way working as a contractor for one year on the Chris Hemsworth app called centre, it's a health and fitness life app and we were just three guys at the beginning, then a few guys joined us. Then you know they left then we remained three and with regards to that app.
I was like in the tram going to work about around 2019 and seeing you know, people in the tram using that app in front of me and I'm like hey, by the way I did that app.
And for your information you know between (this is not like secret information or anything), but between Chris Hemsworth worth and the company I worked for, they made something like $40 million in the first day of its release.
So, you know at least getting paid that much, but they were (Chris Hemsworth and the company), but at least I'm happy about it.
As well, you know ABC News again, it's another app that's used widely by all of Australia.
Another app called reading eggs. It's a platform for games for children. On it we implemented features like sign in with Apple, signing in with WeChat. Although documentation, it was all in Chinese but I had to go around that.
But you'll also find some pleasure, and pleasant moments in the work that you do.
Mr. r00tdvd here is explaining the different concepts of a software development process he enjoys in general; these include releasing the software, and monitoring its progress and success, and working with other developers into simple broken up teams.
We as a group are approaching the deadline quickly, so we are actually about to experience that kind of a pleasurable moment together.
Would you consider like when it comes to these companies and your teams? Would you recommend developing an almost emotional attachment, or friendly attachment to your team members? Or would you believe that is worth it?
That's a really, really good question. That is really, and one that I have experience and not just me. Other developers have, so this is the annoying thing about working for a consulting agency.
So, I worked on the Virgin Money banking app with Deloitte. These you know even though I'm working as a permanent employee they would have to actually interview me to accept me, right?
And in such a challenging interview again, ask questions about security and stuff, you know what happened?
Actually, it's funny, one of the other developers from my company. He had the interview before me so he helped me out with some of the questions and their answers as well, right?
And it's so ironic. Now let me let me get back to you guys about a point that I made earlier about how important it is to be able to work with someone.
So, check this he was a very smart intelligent guy. He's the one who gave me the answers or at least an idea about some of the questions. And he was also hired, as part of my company working with them.
However, this other developer, he found difficulties working with them. They found issues working with him. He was just constantly arguing about their way of resolving something, or a solution.
Whereas I was the kind of guy that says “hey can I ask about this?” I don't know how this is done. Always engaging the tech lead.
You know, and he was happy responding, to me about these questions and you know it was crazy, suddenly he had to go because he couldn't hack it anymore.
Now emotional attachment, for me personally I work with these guys and develop. Let me explain to you the scenario these guys and this was right in the middle when COVID was sort of new.
With the difference between this and I had done a number of projects before that one on zoom meeting everybody on zoom face to face and communicating on zoom. The difference with this one, it was like 16 developers. No one, not anyone turning on their cameras at all, just voice only.
It was really good though it was crazy.
And however, having said that, we actually bonded, it is crazy I honestly don't know how it worked out, but we bonded, I became friends with some of the guys from Deloitte, and the guys in QLD, and you know I was there for like 3 months.
But they made a mistake. I was one of the few four developers only, that were asked to work on weekends, which meant that I was getting paid as well for that because I was productive.
But they made a mistake in terms of not extending me at the right time. They were delayed, they didn't extend me.
Usually I get extended, and they asked the company here can we have this developer again for another 2-3 months? They didn't do that at the time and suddenly, they were hit with the news. Sorry we're taking away this developer from you. It was a shock for me, it was a shock for them.
I felt like oh, now you have got to start ABC News right? This is what happened it's an experience and I'm so annoyed I was yelling with the CO the boss.
Is it because he was securing me for a longer duration from the company perspective. He needs to make sure that I'm constantly being engaged in paid work.
Which is correct, that's the way it should be, but for me, personally, to answer your question, yes, I was attached to the team I was attached to the application itself you know, and now I have to start all over again.
Mr. r00tdvd is explaining the enjoyment that he has personally experienced when working with a variety of IT professionals, and how he has experienced bonding with them in the most unorthodox way possible, and that was a simple meeting with a group, no cameras, voice only. He also explained complications when shifting to different companies and how the ability to adapt is of uttermost importance. The bottom line was, yes, it is not only recommended, but it is inevitable, when working with individuals, producing a tool that will help people, is going to result in a sweet and pleasurable, emotional attachment.
Yes, yeah, this makes absolute sense and I believe it would bring a more pleasant experience, of course, like you said.
So next question...
How can the university students gain the experience necessary to find a decent job whilst at university, through extracurricular activities? Or is there any other form of methods which he might be able to employ?
Yeah, absolutely. I think I partially answered some of that question. By pointing out that you need to start building your apps. Create your profile on GitHub.
Do some code and make it clean. Don't treat your GitHub as just a piece of a place to accumulate junk.
No, make it professional from now. Create that image about yourself that you're a professional software developer. Now there are other important things that you need to consider.
You want to create a website for yourself, right? Also, begin learning about how to buy a domain. It's very cheap, right?
But it's the process about it buy domain, how to host a domain?
You need to learn about all of these things, most importantly, if you want to start your career hard and ready for when you graduate, you need to start creating a LinkedIn profile so this is crucial for a professional. It's a professional networking platform. Start connecting with recruiters in the field of IT and other developers from other companies.
So, I was out of work for a month or so, or two months. Throughout life you'll find those situations that come up. I'll go sit down while I'm not doing anything having coffee. I will just start sending random connection requests, to other developers in companies that I do not know, they do not know me, but you'd be surprised about how many people are willing to help others and they will accept.
I'll give them a period of two weeks if they don't accept my invite to connect, then I'll just remove them. If they accept, that's great and it's amazing how, many times nowadays, I get approached by professionals and companies using LinkedIn. In fact, my last role I was approached by LinkedIn so I got approached quite a lot but yeah.
You got to be ready for the interview process, this is important, so you've got to really, understand that in order for you to pass and to succeed in life, you have to fail.
Think of failure as your next important step towards real success. If you're thinking that you're just gonna go and interview and take that and be successful right away. You're mistaken, right? Otherwise, it's a fluke, or you're lucky, I don't believe in luck, by the way, but I believe either in a blessing, or it's not the right time for you.
So, you've got to be able to accept defeat and rejection. This is the key thing. I went through in my life earlier on, before my career started taking off 4 years. Think about that, four years, and not just that even up until recently I would get knocked back, you have got to get knocked back many times until you land the right one, you understand? It's part of life. It's not just with me it’s with lots of other developers.
Mr. r00tdvd here is explaining the different methods that we may implement when it comes to being more hireable, and he mentions that our GitHub accounts are closely monitored by our recruiters along with our LinkedIn accounts, and to not treat them with carelessness, but to treat every connect and git push, like an investment that may one day result in a career opportunity. He also mentions a concept that may have been new to employees, Mr. Rootdvd, aids us to understand that in order to succeed, you must fail on multiple occasions. This is not an easy truth to receive, this is due our common sense. “When failure comes, discouragement follows”. His phrase is inconsistent, he is saying that we must use failure as a driving force to proceed with our careers, and to not be dismayed. These are wise words indeed, and ones really we may make reference to one day.
Yeah, well thank you for your enlightening words.
I've most definitely heard multiple employers confirming what you said, though. I just wanted to ask a simple sub-question regarding Stack Overflow. One of the employees that I mentioned that I researched on, he mentioned that, he hires people based on their answers in Stack Overflow. And their activity there, would you say that you would confirm this as true?
I don't have knowledge about that, but I wouldn't be surprised that some people think like that or use that as a way to measure, but it's not really a way to measure anyone's capability in reality, or skill-set or passion. I do not believe that is that a correct approach.
Well, you mentioned previously that you chose iOS as your passion and due to its future.
hich languages, in your opinion, have the greatest potential for the future and which languages do you find to be the most useful in the modern world and in which sectors of the industry.
Yeah, sure, with Apple, they started with Objective C. Which is an old, outdated language. The more modern language now is called swift. And recently they've released Swift UI as well for iOS so, that's for iOS. For Android it was to be Java and now it is Kotlin, for Microsoft it's C sharp.
They all are important languages for important platforms and they're constantly getting innovated. These are the modern languages at the moment.
So, Kotlin has actually managed to surpass Java in terms of the amount of, people needed to develop on Android?
Yeah, absolutely. From my knowledge just about all the companies right now that I have been in, in the recent times they've been using Kotlin as the one language.
Yes, it's very similar to Java. I've done some research on Kotlin, but far more secure. It compiles slower, but I've heard it's a lot more secure and usable. JetBrains created it, correct?
Mr. r00tdvd here is explicitly mentioning three languages that are currently rather popular and of uttermost importance, one of them being Swift, Swift is the language that the Apple operating system utilizes exclusively. The other being Kotlin, Kotlin is very similar to a language called Java, and is being employed in various Android applications. And C sharp being used in Microsoft to develop desktop and web applications. All three of these languages are sure to carry far more job opportunities and are worth learning. Another perspective may possibly be, “These languages may be outdated by the time that they are learnt by you.” There are two reasons that this is not the case. One, once a language is employed to create a large application, it is very likely that multiple companies will not move platforms for a while as this can be an expensive process. In addition, the updated languages that are made, will hold various different features of an older language and may only have features that have been updated, it is not necessarily going to take an entirely different syntax.
Would you say that working for a smaller company gives you more of an advantage to learn and experience on Agile work style compared to larger companies. What experience have you gathered from both working environments? In which domains do they differ?
So, I think I've sort of touched on that previously when I spoke about the agile, and explained the fact that basically, agile is really a process. It has nothing to do with the size of the company itself, right? Can you repeat it again just to make sure?
Basically, what are the differences between one small company and the larger company, what kind of advantages are there with small companies, and large companies?
And if there are any extra ways to learn, and gain experience from these smaller companies in comparison?
I think the biggest advantage for some smaller companies, in contrast with the bigger ones, is that you're able to use the latest and greatest of technologies. The big companies, basically, they could still be using software as old as 30 years old, you would not believe it.
Like National Australian Bank or Telstra their mainframe, they're using something like mainframe system that appears in green, you know what I mean? That was the core of how to manage incidents that happen across the bank, right?
Large organisations tend to be much slower when moving forward with technology because they've been building their platform for decades, basically, and it's hard to make that innovation, the biggest challenge is actually the people in these places as well, because, they're a little bit reluctant for change. They have become accustomed to something that they've been used to for so many years.
And I just want to add that there's something important about it. It's not so much about big companies versus small companies.
There is another point that you guys need to be aware of. If we're talking about specifically mobile development, whether it's iOS or Android, and that is basically your audience of the project of the app, right? So, let's say the majority you know of the users are. You are still using old devices, that they need to stick older versions of the operating system. This basically limits the company to make innovative functionalities based on the new Apple or Google operating system platform updates, right? So, till the time comes until they make an executive decision, hey, let's make an update, you're stuck.
Pretty much on that iOS version. So, for the Mobile World basically, you're limited by the specific operating system that's been targeted by the application, so it's always best in an interview, that you ask these companies about the platforms. The dev stack that they're using, the languages as much information as possible.
Their continuous integration, CI is it's set up? So you need to gather as much information from these companies to make a conscious decision, whether or not this role is relevant to you.
Mr. r00tdvd here is going into further detail as to what benefits smaller companies have over larger ones, and his answer was simple, larger companies, as previously mentioned, utilize older mainframe systems, as moving platforms may be a rather cumbersome process. The devices that the target demographic are using, may also entail various complications, as to the technology they may employ when creating said software and applications. He mentions that questions regarding these particular topics should be asked in the interview to get a brief idea of what technologies they will be utilizing.
Well, I believe that we have gone quite long, so just one more question before we conclude. Thank you so much by the way for answering all of our questions and in.
Yeah, we've got 2/3 questions.
Course, I believe that you've answered a lot of our questions, so skipping ahead, what factors would determine where you would choose to work?
OK, so this is an important question, but it also comes with some kind of common sense, so obviously it's going to be based on the skill set, or the stream that you'd like to specialise in. I mean, if you want to be an Android developer, right? You've got to have the skills that backs it up. So, you've got to have Kotlin skill set, you're not going to go and apply for an iOS developer role. It's got to be relevant to your skill set and your passion. So, these are very simple criteria. You're not going to be in a position at the beginning, to be very demanding.
Other than the fact that it's going to lead you to specialise in the stream that you chose to specialise in. That is your focus. Do not also focus on salaries at the beginning, it's important you've got to accept what's offered to you at the beginning and consider it as a future investment in yourself for your next role. So, you got to focus what you need for your first job.
Mr. r00tdvd here is simply helping us to understand the importance of selecting work first and foremost because that is what you wish to do in the future, he mentions that if that is the domain that you wish to specialise in, then proceed with the role, with all gratefulness and disregarding the salary in the beginning. He goes on to mention that there is no reason to apply for a job outside your passion and certain skill set, this is rather paramount in our success as developers, as we may be discouraged by the salary that we receive on our first job.
Uh, how can a student take advantage of remote internship? Is there a way to learn as much from a remote internship as with an on-site one?
And also, what are some methods that you suggest of him actually finding a place to do his internship at? Are there any places, workplaces which you suggest for him to go?
That's a very good question, so let me answer the first part of the question because I think I can answer the first part, but maybe not the second.
So, in terms of working remotely versus on-site, I can try to, answer that from my personal experience as I am working right now.
Prior to COVID and now during COVID would just force me. It's actually almost identical, of course it's not exactly the same, but you are just as efficient, if not more.
I am no longer spending my time travelling and wasting time going around and coming back for travel. In fact, the moment I wake up after I do a couple of things, I just turn on my laptop, and say good morning to the team, they respond back with good morning. We're constantly online.
So, it's very time efficient, now in terms of communication, zoom and meeting. We use Microsoft team meetings.
We're constantly, whether it's Slack or messaging on Teams (Microsoft Teams communication application), constantly doing that throughout the day, meetings as usual.
Some people want and enjoy turning on their camera, and some just don't. They just have voice only, either way it works! So that's the first part as it should not impact you any different as long as you are connected and you're communicating with everyone.
Whether digitally or face to face, it should be the same. Yes, there are advantages as well to be working face to face.
That human interaction, for sure, but you'll also end up wasting a lot of time. So, either way, it's whatever you feel comfortable with.
Now to answer you the second part of your question, I'm honestly not sure about companies that would accept student internship.
But with that being said, there is no harm in actually approaching and searching about those IT companies, because maybe they have lots of programmes for that.
I am not across it. I don't know because I haven't been searching for this specific topic.
Mr. r00tdvd is speaking of how to take advantage of remote work and internship, the way that we can indeed take full advantage of this type of work, is by communicating. By communicating, we are bonding with our team members and consequently learning new skills from them that we can employ in our profession down the track.
Well, Mr. r00tdvd I've heard that there is a common deterrent factor when it comes to entering the IT world and that is keeping updated with the common IT languages.
How difficult do you, as a software engineer, find it to keep updated with these languages and their syntax?
I'll probably mention a couple of the points that I've already mentioned, but for me personally, when it comes to learning, a new language can be time-consuming.
And as I mentioned before, it's not just about the language, but it's also about the frameworks associated with it, so I'll give you an example when I was doing the Chris Hemsworth app, I was asked to investigate and create, we were going to integrate some kind of an Apple music player within the app and it's something that I was keen on being involved in.
So, you know, learning Swift or knowing Swift at the time was not enough, it's just not enough to know Swift and know that you can go and build a music player application within the app.
You actually need to learn about something called the Music SDK, which is like the Apple’s API framework to allow you to communicate with music-like functionalities.
You've got to be able to go out and search again on GitHub, look at existing solutions, breaking down, start from scratch, search within the code about the specific functionalities that you are after, and learn how to use them. Go and read documentation from Apple and the SDK, and their API. That's pretty much it
Mr. r00tdvd is expounding on the time-consuming task, learning a new language. This task will consist of multiple sub-tasks. These will include learning the framework, the layout of the language and how it best and most regularly is implemented. Another aspect of learning a new application is the sub languages that you may have to learn that will support this language, such as Music SDK, Apple’s API framework to allow you to communicate with music-like functionalities. And he mentions that the best way to grasp the language and its uses, is to look at code examples, that will further your knowledge and understanding.
Lastly, unless Samuel has any other questions after this. In which field of IT do you believe there are the most opportunities nowadays? Which field of IT would you suggest that students should pursue?
That's an important question. I don't want to be responsible for my response, but I'm only sharing my opinion.
However, having said that, it really depends what kind of student you are. If you don't like to code and you find it stressful and it's not for you, you may want to consider taking up a business analyst role which basically revolves around translating the requirements from the business, and communicating with developers. But you'll need to do a bit of documentation. I personally don't like documentation, but it's important, but a lot of developers don't like documentation as well
Now you may want to be a tester, you may just because it's so hectic, be a BA and a coder, you may just want to test the software. It's not as stressful.
You've got to be able to test your own product. That's really important. You've got to understand that. However, I'm talking about predominant, being a full-time tester, that's a different story, right? You've got to learn then, if you're a full-time tester, you've got to learn all about automated testing tools. There's a lot of third-party tools that you've got to learn about if you run the team as an IT manager, you want to keep track of the project progress, deadlines, project costs and funding. If that you know pleases you then that's an option.
But if you want to be a software developer. You got to get into that get into the mobile world, basically right now, in our day, in our era, you guys were born in the era of gadgets, iPhones, androids.
And then if you create an app, the whole world will use it right? If you create a simple app that you sell for a dollar, whether it's simple or complicated and some people buy it, and the target audience is everyone in the world, anyone you know. There's a huge market for that. So definitely if you're a software developer and you're asking me which IT specific field that you're gonna be in. I would say a mobile developer, also web you know. Obviously, Web is a whole other stream, but for me, I personally enjoyed the Mobile World.
Mr. r00tdvd is elaborating on the different fields he has seen is his profession, and how they have suited individuals according to their preferences, a BA will not have such an intense and stressful role, although that is the case, he will be required to fill out large sums of documentation. A tester simply must test the code, and again, it is not such a cognitively heavy task as software development is. He then concludes on specialising in mobile development, as this is a domain which he enjoyed and found most pleasurable.
Thank you for your enlightening words. Well, in conclusion, it was a pleasure interviewing you, Mr r00tdvd. The interview has definitely been very enlightening, and I'm sure your wise words will help us with our future personal, professional endeavours. Goodnight.
@article Eskreis-Winkler, Lauren and Milkman, Katherine L. and Gromet, Dena M. and Duckworth, Angela L.
10.1073/pnas.1908779116 https://www.pnas.org/content/116/30/14808