For six months I was employed by Loanflare for my first Professional Engineering internship.

Loanflare was a Fintech start-up company specialising in the mortgage broking industry, who aimed to provide mortgage brokers with a Customer Relationship Management (CRM) platform, with the main goals of improving administration time, digital presence, and client retention. Being an early and rapidly evolving company, we were situated within a small, leased working area at Tyro’s Fintech Hub in Sydney’s CBD and consisted of around 6-10 employees, which varied throughout the six months that I was there.

Working within an Agile Development Environment enabled me to involve myself with flexible tasks and roles. However, due to time constraints of a 12-week product launch date, I mostly undertook tasks relating closely to front-end web development, where I would retrieve data from the company’s back-end, and create responsive User Interface (UI) layouts that display the information in a meaningful way.

Ultimately, this role birthed my gradual and eventual love for ReactJS.

Chatbot Integration

In this research proposal I demonstrated creativity and innovation by investigating the potential benefit of introducing an emerging technology (chatbots / machine learning) into our platform.

Problem Solving - Mortgage Calculator

DAC 1.B.1 CILO 1 - Identify and apply relevant problem-solving methodologies

I was assigned the task of designing and developing a mortgage overpayment calculator. Although I had become more familiar with the necessary formulas required for determining suitable loans for clients, I was unfamiliar with mortgage overpayment calculations.

Initially, I designed the layout of the User Interface (UI) of the calculator. The main issue was that the calculator needed to be designed from a User Experience (UX) perspective, as our website was required to be mobile responsive. Additionally, it was important that it engaged the user and made them feel comfortable with configuring the settings. To overcome this, I implemented the layout in a series of collapsible cards which offered the support of both desktop and mobile views. This gave freedom for the user to be able to hide information that they did not wish to see, while minimising the amount of content on a single screen.

The next step was to develop formulae to calculate the amount that can be paid off a mortgage over time. After some initial research, I found an implementation of a mortgage overpayment calculator on GitHub. However, I was not able to provide the inputs and outputs required for this function, which meant I had to update the function to match my requirements.

After some careful debugging and testing, I configured the formula code to match the inputs and outputs that were required. From this, I configured the UI to interact with the formula successfully. The final step was to compare my calculator with a mortgage overpayment calculator provided by HBSC. All test cases conducted on my calculator matched the results from HBSC’s calculator.

Understanding Best Documentation Practices

DCC.E3.a - Consistently document work in a way that would enable another person of comparable ability to continue and complete your work should you be unable to do so due to circumstances beyond your control

As a practicing Software Engineer, it is important to consistently document all work that is completed to achieve reusability. Throughout my time working at Loanflare, I have taken several steps to ensure that my work is readable and able to be reused efficiently.

For example, I was required to implement code that would calculate the comparison rate for home loan products. My first steps were to ensure that all code I had written was supported with extensive documentation. Before implementation, I commented short statements within the text file to verbally plan the steps needed to calculate a comparison rate. From this, I wrote a function for each statement, using each as a heading to explain what the function achieves.

After coding and testing each function, I elaborated on the existing statements, providing an explicit explanation on what the function achieves, the input variables that it requires and the output variables that it produces (see Figure 1). Additionally, comments were added to sections within the functions that were difficult to understand. Once everything was complete, I made a commit (save and update code changes) to our main code repository, using a version control system called Git. As a commit requires a message alongside every code change, I followed good commit practices (see https://chris.beams.io/posts/git-commit), to ensure that I specifically state why I have decided to update the code repository. This ensures that if something unexpected occurs within the near future, the Loanflare development team will be able to clearly identify which commits caused the issue, and will be able to revert the code back to a working version.

By applying my knowledge of consistent documentation within my work, I have enabled others to re-use and improve my contributions effectively and efficiently.