Thomas Step

← Blog

End of Internship

My internship with Viasat has officially ended. I am currently on vacation with my brother, sister-in-law, and new niece in Charleston, South Carolina. I have learned a lot over the summer. Mostly about web development, but also teamwork and general software development workflow. I started the summer knowing nothing about React, Material-UI, Redux, Node.js, or Koa. I now consider myself proficient in all of these languages and frameworks. I had done a bit of basic HTML, CSS, and Javascript previously, but just as much as you can find through the history of my personal website’s repo. It was minimal experience. I might go into more detail about some of the more specific topics I have researched throughout the summer including thunk-middleware, asynchronous Javascript, WebSockets, and UI/UX design among other things. I also spent some time over the summer researching captive portals. Captive portals are actually not too difficult of a topic to understand. Most people have actually already experienced this when trying to connect to public WiFis like the WiFi at Starbucks. They are a way to increase security of a network, and let the user know that they are in fact trying to connect to the correct network. Researching captive portals was also fun for me because they combine two computing subjects that I am passionate about, networking and programming. As far as software development workflow goes, I was introduced to using Git and GitHub in an enterprise setting. I also learned about developing software using Agile/SCRUM for the web application project and Kanban for the captive portal project. Learning how to use Jira came with using these two different methods of project management. Jira is a project management software from Atlassian. My team decided to use a wiki site for documentation as well as apiDoc.js for commented documentation. The web application project, in my opinion, has more interesting topics to write about and probably to read. The project included a UI and a separate server that exposed numerous API endpoints. The UI was created using React and Material UI for the actual interface and interactions with the user. Redux was used to control the global state of the application. The API was written in Node.js using the Koa.js framework. Both of the “sub-projects” were built into Docker containers. The CICD pipeline also used Jenkins. Gaining the knowledge of combining all of these elements, tools, and frameworks together was valuable to me, and I think that this higher level knowledge of putting projects together and system knowledge can be applied to many other projects that I will work on in the future.

Categories: meta