Software Engineer And Tester For A Disaster-Recovery Software Suite
Job Title: Software Engineer
Type of Company: My company sells storage hardware and storage-related software services.
Education: BA, Mathematics, SUNY-Albany MA, Mathematics, SUNY-Albany
Previous Experience: I have alternated between the titles of "Software Engineer" and "Software Development Manager" at several high-tech firms over the past 10 years
Job Tasks: I am responsible for developing and supporting new features of EMC's disaster-recovery software suite. This product enables large corporations to maintain duplicate copies of their business-critical data at remote locations and to access those copies in the event of a disaster. For example, several of our customers are large banks that maintain duplicate records of transactions, such as ATM withdrawals, at multiple locations. When the Twin Towers were destroyed on 9/11, our customers who maintained a second copy of their data off-site (in New Jersey, typically) were able to restart their data centers with up-to-date copies of all transactions within 30 minutes.
The software that I support is responsible for ensuring that the multiple copies are up-to-date and recent, within 2 seconds or so of each other. I work on adding new features to that software, such as support for faster access methods, larger data images and more robust transfer methods. This software cannot fail, even when there are transmission problems in the data lines. The software must detect the problems and re-try transmissions to ensure that copies are intact and match.
In a typical day I will develop a new feature, test it on systems that are housed in our local computer center laboratory and inject transmission faults to test the capability of the software to detect and recover from the injected errors.
Best and Worst Parts of the Job: What I like best about my job is working on new technologies, constantly being stimulated by new problems and devising solutions to those problems. I also enjoy interacting with other people, be they other engineers, customer support personnel or end-users. I also like the fact that my job is not a 9-5 job, that I work flexible hours: whatever it takes to get the job done.
What I don't like about my job is sitting in a cubicle for long hours. I would like a work space with more privacy than the one I currently occupy.
1. Always be aware of the business climate at the company that you work for and be constantly looking for new job opportunities.
2. Keep yourself current in the latest technologies, and don't ever get complacent in your current role.
3. If you find that you have mastered your job and can handle all tasks and challenges that arise in it, then start looking for new challenges in a different position
Additional Thoughts: I have been surprised over the years by how much change occurs in the field of Computer Science and how many trends come and go. I started working for a mini-computer company, then moved to a PC-based networking company and now I work in the storage business. The first 3 companies I worked for are all out-of-business. I have also watched several trends in the work force change over the years -- outsourcing and telecommuting, to name just two.