Raymond Hua Get In Touch

Get In Touch

Prefer using LinkedIn? Click here.

IT Intern at Methodist Mission Southern

Placement for the DipGrad programme

Mentor and host

Dave Eggers
Chief Data Advisor
Methodist Mission Southern (MMS)

Summary

My placement for DipGrad was to work as an IT Intern at Methodist Mission Southern, a non-governmental organisation based in Dunedin.

The main project of the placement was to migrate the on-premises access control system (ACS) to the Microsoft Azure infrastructure. It is part of MMS’ ongoing part to move all its services to the cloud to reduce maintenance costs.

When we hit a roadblock due to third-party holdups, I had the chance to complete different tasks, such as assisting the ENGAGE programme manager Simon with VBA coding and extracting MSI files from an EXE installer.

ACS project

The main project of my placement was creating a virtual machine on Azure, installing an access-control service (ACS) software and migrating the configurations from the existing on-premises infrastructure.

It is the ongoing part of MMS’ migration to the cloud to reduce on-premises maintenance and costs of maintaining and replacing dated infrastructure.

My tasks were:

  • Creating a virtual machine: This was quickly done since I have previous experience creating virtual machines on Azure with my course choice paper. What I can recommend for next time when creating VMs is to create a PowerShell script that would automatically create the virtual machine to make things easier.
  • Hardening and penetrate systems: I used a Kali Linux VM to penetrate testing on the cloud VM. I used login cracker Hydra and penetrating testing tool Metasploit to attack the virtual VM. I enjoyed having to find out what the security breaches are. I did it again when the ACS software was installed to ensure no vulnerabilities were found after installing the software. I had recommended to David to use Azure Bastion, which allows access to the VM using its private IP address via the Azure Portal. This is useful because it is more secure than accessing it via the public network. David had taken on board with my recommendation.
  • Migrating controllers: I witnessed the installation of the ACS software and migration by switching the configurations from one machine to another, and I learned from this that there are always problems with migrating from one server to another. What I know is that there is always help when you face these problems.

“Raymond showed a wide variety of ICT skills during his placement. Originally, the project was to move some infrastructure services (security) to the cloud. Because of some delays in obtaining licenses, Raymond turned his hand to a couple of other tasks while waiting.”

“Raymond was successful in standing up a virtual server on Azure running Windows server, configuring secure access using Bastion, securing the server, developing a script to blacklist IP’s used in failed logon attempts, and running some penetration tools to test potential external attack vectors.”

- Dave Eggers

VBA project

The main side project throughout my placement duration was completing a date validation with Excel VBA code for Simon. ENGAGE facilitators had been entering incorrect date formats into spreadsheets (date with invalid special characters (DD.MM.YYYY) and numerical only values (DDMMYYYY)); Excel does not recognise these invalid inputs; therefore, Excel would leave it as it is. It is a hassle for Simon because he does not have the time to correct them.

  • Researching what VBA is: VBA is new to me, and I did not know what Simon meant when he brought it up. I looked through online resources about what it means; that gave me a sense of what it means. By the end of this step, VBA feels like another programming language to me.
  • Try out VBA: Before developing the feature, I tested out VBA that would be relevant to developing the feature by looking through video tutorials. I did not start developing it because I felt I needed to try it out before making a start. This mirrors what I had done with assignments where I completed labs before starting the project.
  • Developing date validation feature: How I did this by borrowing code I had done from the previous spreadsheets and combining them into one spreadsheet.
  • Testing the feature: When testing out the code by modifying the spreadsheet, we always ran into problems. However, I did not give up and tried fixing these errors because there will always be bug problems when programming and the best I can do is to resolve them and not give up. I researched those problems online and tried to implement them; most of the time, it was a success. I documented these problems in case I came across them again.

The source code for validating dates for Excel spreadsheets with VBA found here on GitHub.

“Raymond was asked to provide help in developing some VBA scripting for an Excel spreadsheet, to validate dates. This was very much appreciated by the staff member who was developing the spreadsheet for our ENGAGE service.”

- Dave Eggers

Reporting server

In the penultimate week of my placement, David wanted me to migrate another VM to the cloud. The server sends emails using PHP scripts. I installed PHP using resources online manually because there was no installer.

After installing MySQL, we ran into a problem where I tested out sending an email. After I passed on the problem to David, he realised that the cloud provider blocks port 25 on its pay-as-you-go VMs by default, and there was no way to bypass the issue. The solution was that we use the PHP package, PHPMailer, to send emails.

When I realised I had used PHPMailer in the second project. I modified the code from that project and sent it to my email from the MMS account. I had one file that returns the PHPMailer instance that can be included in another file and the script to test sending an email to my account. I got it working the first time round of modifying the script. I enjoyed doing that mostly because I would get something I had done before and tailor it to David’s needs.

The source code for sending out emails using PHPMailer is found here on GitHub.

“Raymond also deployed a second Azure VM on request, for reporting purposes (an on-going project).”

- Dave Eggers

SurveyMonkey

For the final week of my placement, I created a survey form for ENGAGE ECEs to complete when they complete their workshops. MMS uses SurveyMonkey as its form builder. With experience in the third project, I found SurveyMonkey similar to other form builders such as Microsoft Forms and JotForm. David and Simon asked me to complete a form containing only one question and test it within the internal network.

Simon wanted to use images for the multi-choice question of Satisfied, Neutral and Negative. What I did for this was use EmojiIcons font for these faces and used Adobe Illustrator to flatten them out and give them a different colour for all three of them. I had done this because when I searched icons online, they looked boring to me with only one colour; therefore, they could bore the form user. Having different colours would make it stand out for external users.

When it was ready to test out within the MMS internal users, I invited the MMS team to try it out. The email collector was collecting emails from where it’s coming from; therefore, the form builder is ready to roll out to future ENGAGE participants after competing workshops.

This is the final version of the form (Note that I have blurred out the question for privacy reasons).

Other tasks during my time working at MMS

PBX Report

By the time of this post, MMS is migrating the telephony service to the cloud. This is the perfect time to stick with 3CX or use Microsoft Teams Calling (MST) instead. David wanted me to complete a product comparison report comparing 3CX and MST to the Director of MMS, Laura.

This process was done by researching the internet of both 3CX and MST, comparing the two products, and recommending the best software for the MMS to Laura. During report reviews with David, I learned to be more informative towards to the reader and make sure they understand what I have written.

This has boosted my confidence to write business reports in the future and I had a good time researching products I have no experience with.

“Raymond also developed an executive summary document, providing a comparison between two digital telephony servers, with a recommendation to our Director.”

- Dave Eggers

Extracting MSI files from EXE

The ENGAGE facilitators had trouble modifying PDF files using Microsoft Edge. the solution was to use Adobe Acrobat Reader (AAR) instead. The problem is that the installer file is an EXE file; installing it silently and automatically on facilitators’ computers requires an MSI file.

This process was done by researching how to extract the MSI file from EXE using the 7-ZIP extractor and testing the MSI installer on my computer.

I liked doing this mainly because it gave me an understanding of EXE files and improved my diagnostic and research skills as part of the process.

Helping out team members

I was involved with other team members at MMS to troubleshoot and resolve everyday problems. I was in an office with two other team members with limited technical skills, and they needed help with what those problems were. My mission was to find out the problem and how to resolve it. (e.g., adding signatures in Outlook and installing software required to open files).

I found resources online on resolving these problems once I went through them step-by-step. They were glad to have me on board and sad to see me leave because I was an excellent asset to the team, helping whenever possible.

“As Raymond was located with other members of staff in the same office, he was occasionally asked for technical advice on Windows and Office 365, so provided some user support functions.”

- Dave Eggers

Personal reflection working at MMS

I loved my time with MMS; the team are very lovely and friendly to get along with. We also had a good time going team-bonding exercises such as the daily quiz, and these skills would eventually carry into my career.

I also started to be positive about everything during my time at MMS because I believe good things will happen if I try to be happy, and they will.

I learnt from it that when the main project is at a standstill, there are other tasks to work on within the organisation. It is prevalent in the IT industry as there are projects that can be on pause, and I might get a task to put on that I have no experience in, but after learning what it is, I have a good starting point of how it can be completed.

How I applied my skills from my existing background

I have applied my experiences from my existing background in BIT and the DipGrad programme. I carried at least one technical skill I learned from the three Studio projects I had completed (documentation, PHPMailer and digital form builders) into my placement at MMS.

I also developed many soft skills and confidence during the DipGrad programme which has been beneficial.

Testimonial

“Raymond proved to be a very enthusiastic intern, who integrated well with our team, and was well liked by other staff. He was very punctual, and dedicated in pursuing the tasks allocated to him.”

- Dave Eggers


Kia ora, my name is Raymond!

Graduated with an ICT Degree and Diploma. Open to any graduate and junior opportunities in NZ and Australia.

Hard-working team player with skills in agile software development, web development, cloud computing, server maintenance, vector design, form design, and more.

I’d love to see how things go, feel free to send me your enquiry below or on LinkedIn!

Get in Touch