Using Git and Github
Before this internship I had very little experience with either git, the version control system used by ScaleFT and most development teams, or GitHub, a collaborative interface for working with git. Whenever I finished a project, I committed my code to a new branch on GitHub and created a new pull request with my branch. On the GitHub page, all of the changes I made to the code are visible and easy to identify. Once the pull request is submitted, other developers review the code, point out issues and suggest changes. I originally thought this part of the process would be relatively easy. Instead, I had to go through several iterations of having changes requested to my code, making and testing those changes and finally submitting a new commit to the pull request. This process took up a much larger amount of time and effort than I originally thought. Once this is finally complete, someone “plus ones” the pull request and it is merged with master. The difficulty was compounded by my lack of experience with GitHub. I once again had to learn as I went. In the end, gaining this experience is very useful as any development teams I’m part of in the future will likely use a similar system.
Debugging and Error Trapping
I often ran into problems while writing, compiling and testing code during my internship at ScaleFT. These ranged from small typos in my code to logic errors forcing me to re-write all of my code. For example, I ran into a lot of errors when writing react frontend code. I eventually figured out how to use the console in my browser to find exactly where the bug is allowing me to fix it. Additionally, I ran into problems using the HTTP API to call backend functions from the frontend. I would get 404 errors, 401 errors or no response at all. At first, I was unable to identify what was causing these problems. These errors could be identified from looking at the API logs from inside vagrant. Debugging is a tedious and annoying part of writing code, but it’s still crucial to the development process. Without it developers would have to start over everytime they run into a problem. It’s certainly one of the most useful skills I learned during my internship.
All in all, my internship at ScaleFT was a very rewarding and enlightening experience. I got to see and be part of a software startup, something very few high school juniors do. Additionally, I was able to work with some of the brightest minds I’ve ever met. I learned a plethora of practical and valuable skills while still enjoying myself. It is great being part of a team working at the forefront of technological innovation.