Posts

Showing posts from June, 2022

WEEK 4: ENTRY 2

  Today at my internship, I worked on the configuration of my Kubernetes deployment. A Kubernetes Deployment is simply “used to tell Kubernetes how to create or modify instances of the pods that hold a containerized application.” My Kubernetes deployment was done  through the Gitlab CI/CD Pipeline, which is not as easy and simple as I initially thought.  I have been working on it for two days before it successfully passed all the test cases today. Prior to today, my manager and I were copying a codebase from a Github repo project that was similar to what my project is based on: Using GET Request to request data from an API.  Although the codebase we were referencing looks all great and easy to read and understand, I must say that it was not a good idea to copy it. Partly because we had to change many lines of code in that codebase to customize it to our desired configuration. This methodology has taken us several commits and pushes to GitLab before it finally worked ...

WEEK 4: ENTRY 1

  At my internship today, I was tasked to restructure my code and deploy it to Gitlab. As part of my project, I will be querying Big Query, Google Cloud Platform, to generate a weekly report of certain logs. To make sure that I query from the Big Query, I must first of all establish connectivity to the Big Query API, which is the first step. Thus, the goal today was making sure that I was able to use the GET request that I learned last week and test it on a web server before creating the connectivity to the Big Query API. So too, I had to refactor my code so that I can only have one main to call and run all the different files and functions.   Initially, I was running my code locally and printing to the Intellij terminal. I was also running each Go file independently. This was of course for testing but it was not great practice. I thought that by doing this, it would be easier to eventually call all these functions on my main.go file at last. But, it was quite a hassle to...

WEEK 3: Entry 3

Have you ever felt like you know something but you still can’t explain it? Well, today at my internship, my manager surprised me with the question, “Do you know an HTTP request?” My answer was a no only because I did not want to say yes and end up giving an obscure explanation. For a second, I felt like he would be disappointed because it should be obvious for a CS student at my level to understand what an HTTP request is. On the other hand I was glad that I said no because he gave me a very simple explanation about what an HTTP request is. Simply put, HTTP requests are protocols that are used to access the resources hosted in a server. They are basically a communication tool that ensures the transfer of data from a client to a server. So why would he ask me that question? I figured out that it was just a chance for him to introduce me to the next task of my project. I started the issue of connecting the server that I finally deployed to Kubernetes to the Big Query API prior to today. ...

WEEK 3: ENTRY 2

  Today at my internship, it must be said that things are now getting into the nitty gritty. Over the past couple of weeks, I have been setting up environments and learning the Go programming language, but today was a little different. Unlike those weeks, I had the opportunity to get started on my project today. My manager finally introduced me to the milestones or project timeline if you would like to put it that way. I was not expecting him to divide my project into different sections like the way he did. My presumption was that I would be given the main components and be told to develop the project from scratch up to the final product. However, it appeared that just like how the Student Software Developer team at Berea College uses the Agile methodology, my project will be using a similar approach. Instead of Trello, my team uses a dashboard called Jira to assign issues to me. It is a very user-friendly interface, where I can mark my current issue as in-progress, or under review...

WEEK 3: ENTRY 1

  At my internship today, I was tasked with learning Concurrency, which consists mainly of Goroutines  and Channels in the Go programming language. As mentioned in one of my previous blogs, my project would be coded in Go programming language and these two concepts are very instrumental in Go. As a result, I am currently spending time learning the language and getting familiarity with the Go codebase my team built. So what are goroutines? Unlike how the flow of processes or code lines in a conventional coding programming language like Python gets executed, goroutines are used to run different parts of the code at the same time. It is usually done with the Go keyword called go . For me, this way of writing code and calling functions  is very unfamiliar. Transitioning from Python to Go has really been a tough transition because with Python, I never had to do with running the different parts of my code base at the same time. I mostly just called the functions in the order I ...

WEEK 3: ENTRY 3

  Today at my internship, I was tasked with learning Go programming language. My team uses Go programming to develop their application because of its great features and flexibility. Some of the reasons why the team uses Go are the language's fast startup time, low runtime overhead and ability to run without a virtual machine. In addition, Go can also be used for concurrent programming - a strategy to execute multiple tasks at one time. These are some of the reasons that my manager mentioned that are very prominent and vital as to why they are using Go. So what did I learn about Go before today? Well, prior to today, I read an article about how easy Go is, especially if one had programming skills with Java, C++, and Python. I am only fluent in Python and a little skill in C++. I wish I took some time prior to my internship to learn the Go programming language because if I did, the transition and start of my internship would have been easier.  I procrastinated on learning the Go...

WEEK 2: POST 2

  Today at my internship, I had a whole session about Kubernetes and a brief introduction to some Go programming language code files that my team has built. Kubernetes is basically a container orchestration tool, which is open-source as well. My prior knowledge was that it is only used for hosting containerized applications; however, I was made to realize that it is also used to automate the deployment and management of native cloud applications. I needed to know the basic architecture and set my environment through a Kubernetes host because I will be needing it to deploy my containerized application once my project gets done.  For Go programing, I am expected to use it mainly for developing my project. Although my buddy explained the architecture of Kubernetes within the firm’s structure, I must confess that I did not grasp the concept of Kubernetes after his explanation. Perhaps, I should have had read about it in detail prior to meeting him today. I failed to dive deeper i...

WEEK 2: ENTRY 1

  Today was a tough day as well as a very insightful day at my internship. Having set up IntelliJ and Github last week, it appears that unlike other summer engineering interns, I needed a different setup because I will mainly be working on a Linux/Unix project. I thought I was set with all the environment I needed to start working on my project, but my assumptions were wrong. It appears that different teams have different setup environments because we will be developing, managing, and deploying to different environments.  So what did I realize today? Well , I must say that I am now more startled by the difference between developing, managing, and deploying  a firm’s application compared to a personal or school project’s application. A firm’s application requires using secured DevOps tools because they are very much concerned with the security, scalability, flexibility, speed, performance just to name a few. This is not to say that a school/personal project is not concerne...

WEEK 1: ENTRY 3

At my internship today, I was introduced briefly to what my project for the summer is going to be. Basically, I will be working on a System Log project in the next nine weeks. I learned that system logs are basically records of activities related to a specific server/ virtual machine in a specific period of time. These activities range from logins, authorizations etc. To be specific, my project will focus on auth logs, which are a type of system logs that contain system authorization and information including user logins and authentication mechanisms that were used. The firm uses virtual machines that require their auth logs to be recorded and tracked in order to ensure that they are up and running and incase of any downtime, these logs will be accessed to troubleshoot the issue. Thus, my main focus is to develop an application that will query specific critical auth logs (logs from certain servers) from Big Query, a Google Cloud Platform, and generate a report of those logs.  These...

WEEK 1: ENTRY 2

Today at my internship, I was tasked to set up my working environment.  Just like many engineering setup, the environment setup today was specifically based on the tools that I will use throughout the internship to build my project. The tools I set up were basically the Integrated Development Environment, IDE: to write code on; Github: to commit and push the code, and the test suite dependencies. Although I had prior knowledge about the Github environment and the IntelliJ IDE, I still struggled to set up the environment and run a simple “Hello world” Java code. The reason being is that my prior experience with Github and IntelliJ has been that I only understood Git commands and installation of simple packages on the IntelliJ IDE respectively.  During this setup, I learned that there is a lot more that one can do with Github: not just pushing code to it. For the first time, I learned that there is actually a deployment environment related to Github called Gitlab, and there is a...

WEEK 1: ENTRY 1

  Prior to my first day of Orientation, I read a couple of blogs and documentations on Goldman Sachs divisions and its main operations. Thus, I was pretty confident that I had an idea of the divisions in the firm; however, after the first session of my orientation, I must say that my little knowledge about the company was not quite enough compared to what I learned about the firm. The company has numerous divisions and each division works hand in hand to achieve the firm’s main objective. For me, the first days have been very eye-opening moments because I was not only amazed by what the company does in terms of Business, but what they also do with Engineering is pretty awesome. I had the belief that it is mainly Finance and Marketing driven, but with what I have learned thus far during the orientation, I must say that the firm is heavily utilizing AI, Big Data, and Cloud computing to make sound decisions and improve the systems in the company.   Besides, I was met with an...