1913 Days

17 Dec 2019

1913 Days

Equivalent to 5 years, 2 months and 26 days or about 1/4 of my life, that’s how long I’ve been coding for. Ranging from individual to small group projects, and even teaching, there’s a lot of variation in the subject and still much more to go. This class, ICS314, teaches us skills which are useful if not fundamental to software development such as project management, version control and IDEs (Integrated Development Environments). However, for the second time in a programming class, my biggest takeaway has been a language rather than a concept. Yet I need to write a paper on concepts I have learned, so I will discuss how I’ve used some of the topics discussed in class previously, in projects and in the workplace.

As a Team Member

In Spring 2018, I participated in a UH Manoa VIP (Vertically Integrated Project) under the name Shaka Scheme. VIPs are often multi-semester long and include students of all years and various disciplines from the College of Engineering. The project itself, Shaka Scheme, was what is known as a Scheme to C++ transpiler. Code is inputted as Scheme, it’s translated into C++ and executed, and is returned as Scheme like a translator.

It was about a team of 12 and worked in small groups of about 3 to work on different parts of the implementation, with me being tasked to work on implementing functions according the R7RS document. This document defines various requirements a language needs to complete to be considered Scheme-compliant. We used Agile Project Management methodologies and Slack/Trello for communication, with the CLion IDE (coincidentally enough made by the same group as the one we use in-class, IDEA) as our development environment. In essence, imagine the final project of this class, except spread across an entire semester. Development is currently suspended, but you can still view the (Shaka Scheme GitHub repo here)[https://github.com/uhmanoa-transpiler-project/shaka-scheme].

As a Team Leader

In Summer 2019, I was selected as an intern to compete in Booz Allen’s Summer Games for the Honolulu office. This 10-week program had 5 interns (including me) work on a real client problem/solution idea and develop it along with a business plan. Our solution idea was a meeting transcriber, which would automatically create meeting notes by recording a meeting and transcribing it using speech-to-text and running various analytical methods on the transcription. Our team consisted of 5 students from various colleges, including 2 MIS (Management Information System) majors, an Economics major, a CEE/EE (Computer/Electrical Engineer) major and me, another CEE major. It so happened that our problem was very much in my wheelhouse, so I filled to role as leader managing the project.

For this, we went with Python as our language of choice for it’s simplicity in learning (tight schedule and relative freshness to programming) and the sheer number of open-source libraries available such as NumPy, a very popular package for handling Big Data. To manage this project, Agile Project Management methodologies were used along with a scrum board which is essentially like GitHub’s Project Board except physical. For development we used PyCharm, yet another IDE developed by JetBrains, with PEP8 as our coding standard (a set of rules/conventions to make code look similar and thus make reading and interpreting easier) and GitHub as our version control. We held discussions on where milestones should be set and to where we want our program to be at that point, and as scrum master, I led our weekly meetings to determine what goals we need to hit that week. It was my first time leading a software development team, and was a great experience.

As a Teacher/Mentor

Since Fall 2016, I’ve been employed at Maryknoll School as a Robotics coach. Although I was initially brought on to coach a team of 4th-8th graders participating in the VEX IQ competitions, I later moved to the high school to coach their FIRST (For Inspiration and Recognition of Science and Technology) team. Having participated in the program myself in high school, I was responsible for teaching the students mechanical skills like fabricating parts and robot design as well as project management along with 2 other coaches helping with electrical and programming aspects. This case is probably the most interesting, as I’ve used the same Agile Project Management skills for these projects, even though this isn’t strictly software development.

Concluding Remarks

I probably have more experience in software development going in than the average person in the ICS314 class, so this wasn’t anything revolutionary to me. I’ve already been using many of these tactics for a year or two for a multitude of applications and undoubtedly I will continue to do so in the future. A lot of small things I did take away were technical skills: JavaScript, Semantic UI/React, MongoDB. Those are the things that were the most foreign to me, yet like most languages I know my skills are nowhere near the best they can be. I am thankful for this experience, knowledge, and most importantly a bit more confident that what I’m doing is the right way to do it.