Sunday, August 25, 2013

2013 Summer Internship



     This summer was a long one that included many classes, and an internship at a company called Innovative Routines International. At IRI, I created scripts that would create and validate international identification numbers, some of the countries that were included in this script were the United States, Korea, and Italy.

     The fun thing about this project was all of the special rules about national identification numbers and the way that they are created. Such as, the United States first three numbers are based upon the state that you were born in, or in Korea the first six numbers are the birth date of the person being identified. Also, some countries, Netherlands, decided that it was safer for their citizens to not have any format in their Sofi Number that would indicate the person to which it belongs.

     I spent most of my internship with the creation and validation of national identification numbers, but the final project that I worked on at IRI was one that involved tokenizing credit card numbers for Payment Card Industry Data Security Standards compliance. PCI DSS compliance is important whenever a credit card number is used on the internet or a network. To be compliant the company must take the credit card number and make it secure through certain ways of encryption or any other security methods. It is hard to explain exactly how I made a script to provide this compliance as it would then defeat the whole purpose of the compliance. However, anyone using a credit card with IRI or any other company that uses its product SortCL or FieldShield will be happy to know that their credit card number is safer.

     Below I will include links to the blog posts that I directly wrote for IRI so that if anyone is interested they will be able to check them out and find out more information about the methods that I used to create and validate national identification numbers. There will also be a link later for the PCI DSS blog post on IRI's website.

     When I was assigned this project I was assigned a 3 manuals that had the documentation for IRI's three main products: SortCL, RowGen, and FieldSheild. These three manuals were filled with information that I was not sure how to handle as this was my first time reading documentation of this size. Then to throw a wrench in the cogs, I was told to learn a new programming language, C. I found that I enjoyed learning C, it is probably similar to when a person begins to learn French or Italian for their upcoming trip to France or Italy. After defeating the learning curve I began programming and found that pointers and the changed syntax from my most dominant language, Java, were not anything to be scared of. I actually preferred to have all of that dirty laundry out in the open instead of hidden as Java does.

     It was a great experience and taught me further that programming is a meticulous practice and that a program is not written only once. Working has taught me that planning a project is as important as the programming itself, maybe even more so. Going straight to a keyboard to begin programming is an ill practice and usually results in far more rewrites than if planning were done ahead of time. I learned this the hard way.



Korean Social Security Number:

Netherlands Social Fiscal Number:

United States Social Security Number:

Italy Social Fiscal Number:


No comments :

Post a Comment