Internship Experience

In the last blog entry, I spoke about searching for an internship. In this post, I’d like to talk about my actual experience interning at Scentsy in Meridian, ID.

Overview

My internship lasted for a large portion of the summer, beginning in mid May and ending at the end of August. I was paid $20/hr and worked 40 hours a week.

Working from home was an option, but I didn’t over the summer for a couple of reasons. One, our program at Oregon State has been exclusively online and I wanted to take the opportunity to be around other developers, build relationships, and work in a physical collaborative space. Second, I wanted to leave the best impression possible in the hopes of securing a job, and doing that online is not an easy task.

I was one of three interns, each put on a separate team. The other two interns were more traditional students, and were placed on feature teams where they worked on one of the company’s web applications. I was placed on an infrastructure/cloud migration team in a more database centered role. My mentor during the program was a database developer and I would be taking some work off of his plate.

My first couple of weeks

This period was mostly spent doing setup. I had general orientation the first day and was able to meet on of the other interns. For lunch, I was met by my mentor and we ate and got to know each other. The next few days I spent setting up my PC and development environment, which turned out to be a huge pain. Build errors, lack of permissions, IIS Express, missing data, random settings, it was all a big mess. Eventually, though, I got it set up and working. I also spent quite a bit of time shadowing various people and doing small training with IT specialists. I learned what they do with the company and how I could use them as a resource. After a couple of weeks of this, I got my first ticket.

Projects I worked on

My first project was to write C# code that would perform a one time data migration of HTML content stored in MongoDB into DynamoDB tables. This project came in two parts, and some of it piggybacked on work others had done. I first wrote a command line program to export the MongoDB collections into CSV files. This was a really great way to acquaint me with C# doing things that weren’t too far off from work I had done for school. The second part was an AWS Lambda function to write to DynamoDB. In retrospect, this also could have been done with a command line tool and I knew nothing about how to make a Lambda. However, another developer had written a Lambda template for taking a CSV file from an S3 bucket (AWS simple storage) and putting that data into a DynamoDB table. I merely needed to alter it for my needs, which entailed putting in the DynamoDB schema (research done by a different developer) and adding dynamic naming of the DynamoDB table based on the name of the CSV file.

The middle of the internship had me working on smaller tickets. One was implementing a new IAM role policy pattern for our web applications that had me inserting and deleting some lines in cloud formation templates. Another ticket I did during this time was researching compression options for SQL Server databases and providing an email write up containing results and a recommendation.

Finally, my piece de resistance. I was tasked with providing (another) command line tool that would restore a DynamoDB-Local table from a backup in S3 (a feature AWS provides) for local development. I even took the opportunity to learn and implement dependency injection by created interfaces for services and repositories and then write unit tests for the project. Unfortunately, when it came down to it, performance of DynamoDB-Local turns out to be sub optimal because it is merely a wrapper for SQLite… but alas, I’m proud of the work I put into it.

Intern group

Late in the summer, our HR department set up two events a week that lasted the course of several weeks. The group was led by an HR employee and contained the interns throughout the company. Three of us from IT, a finance intern, a marketing intern, a couple of supply chain interns, someone in UI/UX design, and an HR intern. Some of the activities we did included a networking workshop, a Myers-Briggs personality activity, and a workplace conflict workshop. At the end of the several weeks, we all did an escape room together off campus which was a lot of fun.

The end

My last project was presented to me as a sort of assessment of my abilities because my manager wanted to offer me a full time job, but needed to justify not waiting until I graduated with my CS degree. She was leaning this way because I already had a previous degree. Fortunately, they extended a full time offer and I am able to get my start as a Software Engineer as I finish up my second degree.

Print Friendly, PDF & Email

Leave a comment

Your email address will not be published.