Andrew Garozzo graduated from Plymouth State in 2011 with a B.S. in Information Technology and a minor in Business. He currently works as a Software Developer at IBM, Datapower Gateway.
Can you tell us a bit about what your typical workweek is like in your current job?
I’m part of a 3 employee team that handles a variety of tasks day to day…
- System maintenance and uptime for over 700 hardware/virtual servers
- we ensure that all systems are kept up to date through routine security patches
- we reduce system downtime with monitoring services
- we build new systems as request by development team
- handle live backups to maintain minimal downtime and minimal data loss
- Release Engineering
- we maintain and administer our shared source control system where all 170 developers are working all over the globe
- We build our product (for both testing and production), and provide it to customers through IBM channels
- Automated testing
- Our team designed and developed our automated test environment that test the Datapower product around the clock. We design, develop and maintain this code/infrastructure to ensure that testing of our product is safe and efficient.
The above are the 3 major tasks, although our team handles many more task regularly.
Tell us about some cool projects you’ve worked on since graduating.
I’ve been very lucky that since graduation (and even before when I was an intern) I was able to work with the Datapower division. Many of the projects I detail below were projects I was passionate about and was the lead (or only) employee designing and implementing the solution. Being able to work on projects that I am very passionate about, and seeing the positive results from my work is extremely gratifying.
Within the company, we utilize mysql for data we store for months or years at a time. My first project I pushed for was centered around backups and data loss in the event of failure. The company did have backups running, but the solution was slow and only ran once a day (so we could lose up to 24 hours of data if there was a failure), and restoration could take up to 24 hours to restore all the data. So I began researching, designing, and implementing “replication”. This allowed for our critical data to be immediately (within a second if network was online) replicated from our master server to both another server in the same building, and another across the country. Two years after this was implemented, this saved us. We had our master server fail, and within 5 min I had manually switched over to the backup server we had on-site and had 0 data loss (and only 5 min of downtime).
Within our team, we have developed (and still continue to develop) a home grown automated test environment that tests our product for unforeseen code issues during the development lifecycle. So if a developer is submitting new changes to the product, our environment will run a set of tests against the version of code the developer just submitted to ensure that their change didn’t break any functionality that was working previously. As the years have passed, the number of tests that environment runs has grown over 200% (and continuing to grow), so that it can take a 16+ hours to run all of the tests needed to ensure that our product is bug free. So last year I started looking into code efficiency to see if there were any places we could make the code faster. Through the process, I was able to speed up the time it took to do a full run by 30% (so if it took 16 hours to do the run prior to my changes, it would only take 11.2 hours after my efficiency work).
Along the same lines as the automated test environment that I mentioned above, I was able to make the same efficiency improvements to our automated scheduler. For each of the above automated test runs, we have a scheduler that starts these test automatically 24/7 with no need to manually start the test, the service will do it automatically anytime of the day or night. The initial scheduler that was used prior to me joining the team was becoming more a more outdated as time went on, and not scalable for the size of the environment we were testing. So I re-wrote the scheduler from the ground up, designing it to be scalable as our environment grew. At the same time I was able to add features that we did not have in the old scheduler. This re-write made our scheduler run 80% faster.
Two years ago, we had around 130 servers used for this automated testing (this has grown since). Being able to handle what servers are running what automated tests was becoming a difficult and tedious task. So I designed and implemented a web organizational tool that worked in tandem with the above scheduler. With this tool, you could bunch a number of servers, and a number of test types into the same group. The allowed us to bring the time it took to schedule a new server to run a certain number of tests from a 15 min process to a 30 second process.
The last project I wanted to mention was one that I actually started as a intern and implemented while an intern. When I was an intern, the team was trying to start documenting details about each server in the lab (so we knew what services were running on each server quickly). I offered up an idea of designing a website (with a database back-end) that we could store all the data that we wanted to track. The coworker I was working with at the time had reservations about designing this system due to the fact that we had a lot of projects we were working on, and he didn’t think we didn’t have time to implement as I was going back to college in a month. So he said we should go a different route (which in my mind was harder to manage and more difficult to access the data we needed). So that night (after hours) I designed and implemented a concept version of the webpage I wanted to implement (which had 75% of the functionality we wanted). I showed my coworker the next day, and he was extremely impressed. He gave me full control to finish developing my service and implement it for everyone to use. A week later we started using the service. Five years later, we are still using the service I designed, and there have been minimal improvements to the initial design. This project is probably one that I am most proud of, not because it was hard, or really time consuming. But it really proved that I was a hard worker and knew what I was doing to my coworkers. I was told later after I was hired full time, that this project was one of the reasons they pursued me to join full-time when I graduated. They could see that I was extremely passionate about what I was doing to the point that I worked work project outside business hours just to show off a vision of what I wanted to do to make the business better.
How did Plymouth State help prepare you for your job?
I am grateful to Plymouth for many reasons. For one the classes give you a great foundation for your own future growth. In the CS/IT field, you are constantly learning as technologies change or you want to utilize a service that has been around for years that you just never used before. The courses give you a great cross between book learning and actual hands-on experience with technologies you will use later in your work life. I want to thank all the teachers whose courses I was able to attend for helping give me the knowledge to further myself and my career and life.
For me though, my biggest preparation for life outside of college was the many jobs I held within the school system. I am a very hands on learner, so being able to implement the things I was learning in class into a real world application was an extremely knowledgeable endeavor.
During orientation the summer before my freshman year, I met JoAnn Guilmett. After five minutes of us talking, she offered me a job with the IT helpdesk in the Lamson Library. This job was essential to my future growth in the IT field, as it provided me hands on experience with current technologies. I was able to further grow my communication skills everyday. I still use many of the skills I learned at the help desk everyday as I talk with IBM customers and fellow employees. JoAnn (and all the helpdesk managers I worked with), if you happen to read this, thank you for the opportunity to work with you and for what you were able to teach me.
Through the help desk, I met Colleen Kenny who was managing student workers that cleaned/setup and sold old computer hardware. She offered me a job working on the surplus team rebuilding and reconfiguring computers to sell to customers. This position offered me two opportunities. First, I was able to work hands on with computer hardware of all types. As a system administrator this knowledge has helped be tremendously in tricky hardware situations, and gave me the opportunity to really learn a lot about the pieces within a computer system and how they work together. Second, the office was located in the same hallway as the rest of the Plymouth IT department. This meant I got to talk to all the different departments on a regular basis and meet everyone from all the different teams. Colleen, if you happen to ready this, thank you for the opportunity you provided me working with you and the surplus department.
This surplus departments networking opportunity lead into my final position within Plymouth State as a student worker, the Infrastructure Network Team. Lindsey Coyle and Chris Drever were the two that I worked closely with. I assisted Chris in many of his day to day tasks, and soon started taking on some projects on my own. This position taught me to take initiative in your job, even if you don’t know the answer immediately to the problem. There were many tasks that I was able to accomplish on my own, some of which I didn’t know the answer to when starting. But with persistence and research, I could find the answer. From a technology perspective, knowing more about the technology behind infrastructure networks has helped tremendously with my position at IBM. Whereas today I don’t work within network infrastructures very much, the knowledge I gained from my position with the team provided me the ability to easily and effectively convey any issues to IBM’s networking team, and have the issue fixed quickly. Lindsey and Chris, if you happen to read this, thank you for everything you taught me and for allowing me to work beside you and learn as much as I could.
What are some of your favorite memories of your experience at Plymouth State?
From a class/school/job perspective all the teachers were extremely helpful, and knowledgeable in the information they were teaching. They helped when I needed it, and could always point out where I could find the answer. The jobs I held were extremely beneficial to my future growth, and all the people I worked with were always willing to help me grow.
Outside of school, things such as…
– Livermore falls
– Cannon/Tenney/etc… skiing every winter (I may have hiked Cannon Mt a couple times when the weather was so bad they closed the lifts)
– Capture the flag in the middle of campus
– Biking the jumps behind Langdon
– Skateboarding across campus
– trying to beat the help desk record on how fast I could get from Lamson to Hyde
– Buffalo chicken calzone (ok now I am getting hungry)
– Video Game LAN parties (I may have attended two (36 hour long) video game LANs in Mass while at PSU with a dozen of my friends who are also PSU Alumni)
– Meeting my future wife (we’ll be 4 years married in April)
– Red Sox winning the World Series
– Hiking the numerous trails all over the white mountains
– Programming competition, although I majored in IT (which doesn’t focus heavily on programming), I still placed 3rd the CS programming competition (I’ll be honest I was only there for the free pizza, but it was still a blast)
What other things do you do for fun in your free time?
I still do many of the activities in the above list, but more often, I think this is a given for most CS/IT students my age, but video games are a good way I pass the time (too much time sometimes). But that being said, I work indoors 99% of the time (and this time of year I get to the office, and the sun is just coming up, and I leave and the sun is already going down) so any chance that it is good weather outside, I’m headed out!
I’ve also dabbled in some programming outside of work (nothing displayed publicly). Most recent being I designed my own motion capture webcam using and old android phone and my PC (connected on the same network). Program was designed to capture a picture every time it detected movement (sensitivity was configurable). It was fun and kept me occupied for awhile.
What advice would you give to current CS/IT students?
Internships, internships, internships. Without my internship I wouldn’t be where I am today. I like to think of an internship as a test drive, you and your employer both are testing to see if you’d be a good fit within the department. You’re testing to see if you’d like the position, and like doing the work for the company. Your employer is looking to see how good of a worker you are, and if you can continue to bring value to the company. So treat your internship with as much attention and time as you can, as there is a good chance that if you work hard enough, that internship can turn into a career. And even if the company can’t hire you directly when you graduate, if your coworkers really like your work ethic, then they will reach out to people they know with their high recommendations for you, which will only increase your chances of finding a job post-graduation.
Anything else you’d like to share?
Simply enjoy being in college. Although classes can add a lot of stress (and be beneficial to your job growth), the things you do outside of class will be just as memorable, and can be some of the most fun memories you can have. Do what you love and you’ll never be unhappy.