Ethan Leet
My name is Ethan Leet, I am a final year student undertaking a Bachelor of Computer Science electing the no major option. My goal throughout my studies is to gain knowledge in as many applicable areas as possible. When planning my degree, I noticed picking a purely Software Engineering or Data Science degree path would limit my knowledge area to those specific disciplines. I have instead opted to tailor my degree around the core courses which encompass these degrees, such as algorithms, distributed computing, artificial intelligence, and mathematics.
My ideal career goals are to continue broadening my knowledge in applicable areas in whichever path I choose to follow. The epitome occupation for me would be a role which heavily focuses on unique numerical and advanced algorithm creation and analysis in the fields of high frequency trading or physical computation. I believe either of these career goals allow the opportunity for continuous growth, learning and the ability to push the limits of what is possible with a degree in computer science.
Whilst my WIL placement did not focus on my ideal occupation it did align with my broad career goals, to continue to broaden my knowledge in applicable areas. The placement involved building new systems from the ground up with the goal to increase business efficiency and productivity. The languages and processes used throughout my placement were new, which is what appealed to me most. Through this placement I have been able to grow my skillset to include these languages and processes in my arsenal of knowledge. The team I was engaged in used a hybrid waterfall-agile developmental approach which again was exposure to a developmental approach I had not worked in before. Finally, the teamwork and constant interaction with colleagues was indispensable. The indirect soft skills learnt throughout these interactions allowed me to further work towards my career goals in a professional and supporting way.
Critical Analysis of McLellan Hill Placement
For my placement I was engaged within a three-man development team for McLellan Hill in their ‘Commercial Dehydrators Australia’ division. The goal of this placement was to improve business efficiency and performance through the refactorisation of existing systems and newly acquired systems. Particularly, the current backend system used by McLellan Hill has reached its limit in terms of throughput and is not portable nor scalable in terms of their continuous growth. To achieve this goal, a hybrid waterfall-agile developmental approach was chosen. The project was broken down into several phases highlighting the waterfall model. However, as systems were investigated, documented, and refactored, changes in each phase occurred which constantly moved our end goal.
Throughout each phase several hurdles become apparent; learning the new languages required, navigating the old logic used as well as presenting this in a new format, constant setbacks in terms of inadequacies in new systems and inconsistencies in the old systems, and finishing the second half of the placement remotely.
Node.js and PostgreSQL were the major languages used throughout each phase of development. Before this placement, I had no experience with either language which created a steep learning curve from the beginning. At the beginning of the placement most of my time was spent reading documentation. This was a slow process however it humbled me to be able to, in a sense, learn programming from the ground up in a practical way. The industry partner was indispensable in this learning phase. I was able to ask questions and be mentored in a way that I could not only learn the language but also learn how the particular functions relate to the desired end goal. This style of learning proves transferable to any aspect of personal or professional growth. Through investigation, enquiry and practice any skill can be built upon. This style of learning and growth is taught through university and is compounded by the fact it is applicable in industry. It is clear that to succeed in any aspect of my broad career aspirations and goals this style of learning and commitment to learning should be applied.
The second main hurdle faced was to first interpret and understand the original logic used in Smartsheets. This proved quite a difficult task. Having a close-knit team again proved indispensable to overcome this hurdle. Through huddles and help from colleagues I was able to learn how logic in Smartsheets is represented. With this understanding, I was then able to begin transferring this into new logic which I later used to build new functionality. The insight into this type of learning proved incredibly beneficial for not only the placement but my individual growth as well. Through exposure into different ways of thinking and problem-solving skills I was able to effectively carry out the tasks required. This further imprints the evaluation of the previous hurdle; to succeed in any aspect of my broader career aspirations this style of learning and commitment should be applied.
Throughout the placement each of us found inadequacies in our new system, such as certain functionality not being available, and inconsistencies in the old logic which needed to be refactored. These hurdles were concurrent and sequential throughout each phase which constantly moved our end goals as well as pushing out the timelines budgeted for each phase. To fix inadequacies re-planning occurred which involved research into alternatives. When inconsistencies were found rather than building the new system which would also contain the inconsistency, refactoring of original systems took place to clean the data before it was processed. Upon reflection of this approach, even though the timelines were pushed out, it was in the best interest of the company which was the penultimate goal of the placement. It also shows that even if in depth planning occurs for any small occurrence, problems do occur. This highlights the importance of working with your team to adapt and overcome these problems with a focus on the best interests of the company. This hurdle provided further insight into problem solving as well as an adaptive approach to development which is applicable to any role.
The final hurdle faced during my placement was working remotely. As mentioned, daily and even hourly huddles occurred when anyone in the team needed clarification or direction. Normally, this occurred by wheeling your chair next to the person. These huddles were still possible and effective when working remotely however a slightly different approach was required. Voice and video communications became prominent, and part of the tools used daily. This took some getting used to however proved just as efficient compared to face-to-face communications. Within this team it was easy to just call when help was needed and that was the approach we took. I can see in future though that this may not suit every team. If a remote position was involved guidelines and discussions should initiated to set up appropriate channels and times for communication.
During this placement, I have learnt many technical skills such as languages, systems, and procedures. I have also learnt indirect skills such as time-management, accountability, and communication skills. Although my learning with smooth, sequential, and concurrent there are always improvements to be made. Early on, I was a little shy towards the team which hindered my performance when I needed help. Rather than asking for help straight away I would waste some time trying to ‘brute-force’ an approach. I have learnt that this was not ideal for my growth nor the companies. In future, I should be clearer and more direct in terms of my current knowledge and seek guidance where applicable. As mentioned, my goal is to gain as much applicable knowledge as possible in as many areas I can. The internship at McLellan Hill provided me with the exposure to new languages, new systems and the teamwork required to build systems from the ground up. It also provided further understanding and experience in the soft skills required to be part of a team both face-to-face and remote.
Evidence of Technical and Transferable Skills
This placement focused heavily on NodeJS and PostgreSQL programming. These languages and their libraries/APIs were new to me. Previously, I had experience in C/C++ development, particularly distributed computing, and unique algorithm development. This experience focused on the creation of structures and libraries rather than using tools already available. To successfully navigate the placement, learning the fundamentals of NodeJS and PostgreSQL were the main transferrable skills learnt. In addition, the libraries and APIs offered also had to be learnt and understood in a way I could practically apply them to the task at hand. To navigate this, extensive research was done when a problem was faced. It was a new experience researching solutions to a problem rather than solving it on my own, which was the case with unique algorithm development.
Prior to the placement I undertook an online course for beginners in NodeJS. This did help slightly however the real-world practice of the language proved much more beneficial. The main hurdle of learning this language was syntax, as I already had extensive programming experience in other languages. In addition to the syntax, the second hurdle of learning this language was how to apply the tools given in the APIs to the task at hand. Throughout the placement the industry partner provided resources, tutorials and personal help with code blocks and functions needed to achieve the current goal. With these resources I was able to extend them via my own research which focused heavily on official documentation and practice. The first few weeks were slow in terms of actual code written as the focus was to learn rather than achieve deliverables. This proved more efficient in the long term as the fundamentals I learnt during these first few weeks proved indispensable for my efficiency as the weeks progressed. Each day spent at the internship provided an opportunity to learn and grow my skills in NodeJS and its link towards the deliverables. Upon reflection, this did grow my understanding of programming however the main growth occurred in the intricacies of the specific language. Due to my prior knowledge of programming and development in other languages I was able to interpret the current goal in a way which made it possible to convert this logic into the applicable language. As an example, this is how I would write this in C++. By following the documentation, how can I convert this function to NodeJS syntax?
Before my placement started, I thought learning NodeJS would be the hardest task. However, when I moved on to PostgreSQL queries on the data produced by the NodeJS code I was challenged, I found the analytical data-driven approach to PostgreSQL quite difficult to understand comparatively speaking. This was compounded by the initial PostgreSQL database setup being written in queries inside NodeJS code blocks. Another hurtle which interrupted the learning process was the dirty data previously mentioned. When writing queries, I was unsure if my queries were incorrect, or if the data used was dirty, or a little of both. When learning the fundamentals skills of PostgreSQL I completed some basic online tutorials. From here the industry partner spent a lot of time with me to help convert these fundamentals into practical examples I could apply. As previously mentioned, when dirty data was found investigation was conducted and cleaning the data was a top priority before queries could be completed. The ‘one step forwards, two steps back’ approach proved slow in terms of deliverable results however crucial to the overarching goal of increasing business efficiency. Whilst all the PostgreSQL queries were not completed, the benefit of having clean data to compare future results will speed up all future endeavours of the company. Learning this language form the ground up was very overwhelming however crucial in my learning. Through exposure to practice to implementation I was able to successfully build queries from the ground up and convert these to actual end goal deliverables.
The placement with McLellan Hill proved crucial to my growth and broad career aspirations. I was able to learn new languages, systems and procedures which will prove beneficial no matter what career path I choose to undertake. I directly applied these new language and systems in real-world applications as well as indirectly grew my skillset in these areas. I indirectly learnt task responsibility as a result of undertaking this placement. Asana was used for accountability and task distribution. This was a new management system I had not previously used. Using this tool kept my focus and individual task requirements clear throughout the development phase. The indirect knowledge gained in terms of soft skills, developmental methods and approaches are also indispensable towards both my personal and professional goals.
Interests Outside of Personal Curriculum
PASS Leader & Tutor
Throughout my degree I have had the pleasure of mentoring students as a PASS leader and tutor for computed science related subjects. Although my long-term goal is to gain understanding in broad areas, the mentoring roles allowed me to deepen my understanding in already learnt roles as well as provide knowledge to peers who are undertaking the same degree path. I initially thought that I would gain a deeper understanding in the areas I was mentoring. However, as an extension, I indirectly broadened my skillset in time management, public speaking and other soft skills as a result of being a mentor.
At the beginning of my mentoring, the main challenges faced were building rapport with peers, organising session and study plans whilst also focusing on my own study, and re-learning old material in a way which I could confidently deliver the materials. To overcome these challenges, I set aside strict timetabling deadlines for myself where I actively scheduled set times I would focus on mentoring duties, set times for my own study and ‘down-time’ where I would focus on hobbies outside of university. When re-learning materials to present I had a great focus on the areas I struggled in when taking that course, whether that be actual content or navigating uni-personal life by using my previous experiences to guide my peers through their study. The final challenge was building rapport. This came quite easy comparatively. By tailoring sessions to my experiences and how to overcome important and difficult content areas the rapport with peers grew weekly. With a heavy focus in these challenge areas, I was able to succeed in not only my mentoring positions, but I was also able to thrive in my own studies.
The skillset gained in time management, soft-skills and actual content are indispensable skills needed to succeed not only professionally but personally as well. With my experience in industry, time management and soft-skills are unwritten requirements for any position. Throughout this mentoring position. I believe that I have broadened my knowledge and practice in these areas to a sophisticated level desirable to the industry.
Outside of academia my main hobby is exploring the ocean. Throughout my lifetime, I have had the pleasure of cruising several thousand nautical miles of the Eastern Australian coastline, predominantly in the Whitsunday's and Great Barrier Reef regions. Fishing, diving, and exploring are my main activities when undertaking this hobby. I find the outdoors, particularly the ocean, a soothing and meditative experience and a good escape from the screen time involved in Computer Science.