By Ian Goncalves | Co-Op Student, Dalhousie University
Third and final Co-op Internship performed at NorthBay
On His Goals for the Internship:
Get hands-on experience using AWS services and resources, and get a better understanding on cloud computing. I’m interested in the software development lifecycle, as well ML/AI.
During this internship, I:
- Learned how to use AWS services such as Lambda, S3, Glue, Kinesis Data Streams, DynamoDB, SQS, and SNS
- Created a web scraper
- Familiarized myself with integrating external libraries into applications
- Used various frameworks and libraries to create solutions
- Researched and weighed various possible solutions to an issue
- Created a project using node
- Learned how token-based verification works
On the NorthBay Experience:
“Work and learning at NorthBay has been a fantastic experience. The team is incredibly friendly, diverse, and knowledgeable, and everyone was always more than willing to help me in every way. I was able to accomplish a number of goals I had with my time spent here, thanks to my co-workers and mentors. I had a buddy in Tata which was incredibly helpful for bouncing ideas off of and figuring things out, and I had Martins as a point of contact for anything I needed help with.”
Highlights of Projects Worked On:
A NorthBay Gaming Client
This project gave me hands-on experience using AWS services for the first time. I was able to take events generated from advertising data, and partition the data into bronze, silver, and gold stages to help with business insights. The solution used a Kinesis Data Stream to receive the events from the target data source, which triggered a lambda function to sort the events into an S3 Bucket (bronze stage) based on the time the event was created, and store it in the bucket as a compressed Gzip file. A Glue job would run every hour to take the sorted data from the past hour, and further partition it based on the type of event it was, as well as the time the event occurred. This time the partitioned data was compressed into parquet files and stored in another S3 Bucket (silver stage).
NorthBay Solutions
I was tasked with creating a simple chat bot script that helped users navigate the NorthBay website. The first part of the project involved creating a web scraper to collect and organize the links and sections on the website, and the second part was to create a chat bot on my own that could take user input and return information they may want based on this input. To scrape the website I was able to use the cheerio npm library to help accomplish this task. I learned how to write a recursive script to scrape information from a website. To build the chat bot, I utilized another npm library called bot-ui, which handled displaying and receiving messages from a user, making creating the bot a much easier task. This project not only helped me further my JavaScript and frontend development skills, but also gave me an opportunity to learn how to make use of third party libraries in an application, to help ease the workload needed for my solution.
A large NorthBay HealthTech Client
One of NorthBay large HealthTech Client creates cloud-based tools to help in the medical field. I was tasked with researching a java based solution for verifying Okta users when they make a request, as well as creating a module that updated users on their status through a WebSocket API. This project gave me great hands-on experience with a number of AWS services, as well as how to use and create WebSocket APIs. I was able to build the module that processed and returned the status of requests to the user. The module includes a WebSocket API to handle the user connection and disconnection, a DynamoDB table to store the users connection ID, a second DynamoDB table to store requests made by the user, one Lambda function to confirm the connectivity and the current status of all requests made by the user, another Lambda function to send the status of requests to an SQS queue, and finally the SQS Queue to return the status of the requests back to the user connected to the WebSocket API. I learned how to use SQS Queues, DynamoB tables, all about WebSocket APIs, Java's Spring Boot framework and its different uses within Java projects, along with token based validation.
On Getting His AWS Certification:
The most useful and tangible thing I got out of this internship was my General Cloud Practitioner certification from AWS. I was interested in getting the official certification after completing the basic AWS training when I started my Co-op term, as I felt it would be incredibly valuable to my future career. With the help of my coworkers and peers I was able to schedule the exam, and I was given a plethora of materials to help me study for it.
Advice for Future Co-op Students:
If you have any interest in AWS, the cloud, or anything surrounding those topics, Northbay Solutions is a great place to do so. You don’t need to worry about asking questions or asking for help if you need it, as everyone on the team is ready to help or assist you in anyway possible to help you succeed.