I Did an Internship with ScaleFT -Zach Walravens

July 27, 2017

Zach’s Internship

I’m going into my junior year at Redwood High School and I have been doing an internship at ScaleFT for six weeks. When I began this internship I had no idea what to expect. I had programmed before, but never as a part of a larger organization. I had to learn to write code in Go and React, a Javascript library for building web interfaces. Additionally, I wrote and compiled code using a virtual machine and then submitted my changes to GitHub via pull requests. This process taught me how much cooperation and coordination in necessary to develop a large scale application like ScaleFT. When I ran into bugs or issues I would have to enlist the help of several different developers until someone could identity the problem. When a pull request is created, multiple people have to look at and analyze the changes, often requesting modifications, before it is ready to be merged with master. This process requires the development team to work together when creating each and every piece of the codebase. It amazes me how teams of engineers are able to do this to ultimately create a functional product.

Learning Javascript React

One of my projects while interning at ScaleFT involved adding functionality to a button on the web app. I initially thought this would be a relatively simple task. However, I soon discovered that ScaleFT’s web app is written in Javascript React, a JavaScript library used to create user interfaces. When I initially looked at the code, I had no idea what I was looking at. The way the code is structured and functions is very different from what I was used to. I had to learn the basic structure of React, including Actions, Components and Stores, and then use that knowledge to understand how the ScaleFT code was functioning. Once I figured that out, I could begin writing my code. I wrote a React component method that called a javascript client library method that used a REST API that called a controller method, which performed the intended function. Although it took a fair amount of time and effort, I was able to learn while I went and complete the project.

image source: Wikipedia

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.

image source: Github

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.

Overall Experience

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.


Subscribe to the ScaleFT Newsletter to get the latest and greatest delivered straight to your inbox.

Sick of VPNs?

All of our plans start with a 30 day free trial. No credit card required. See our flexible Pricing Plans.

Start a Free Trial Request a Demo