Joseph Graf graduated from URI in 1988 with a B.S. degree in computer science and applied mathematics. He has held several positions since that time and currently is a principal software engineer at Dassault Systemes Simulia Corporation in Providence, Rhode Island.
FMC: Joe, what does your company do and what do you do?
JG: Dassault Systemes Simulia Corp produces a portfolio of software products that provide realistic simulation solutions, including finite element analysis, multiphysics, and life cycle management. I am the senior engineer in the development tools group. We are responsible for the development environment and tools used to develop and test the applications sold to customers.
A couple of the more challenging aspects of the work is supporting multiple platforms and working on a live system. We currently support development on seven platforms, but have had times where we supported in excess of ten platforms. The development environment is a live system; each update immediately becomes part of the system, so testing is extremely important.
FMC: Has your view of the importance of testing evolved since you were a student?
JG: I tested my programs as a student, and I continue to thoroughly test the code I write. Having a program not work correctly as a student would only impact myself. Testing has become more important now that I am a working in the software industry because the consequences can be huge. A software bug can impact a company’s productivity, its revenue stream, and even an organization’s existence.
I remember making a "small mistake" shortly after I started my current job. I accidentally inserted a space at the beginning of a Perl program. When I checked the file into the system, the program would not run. It was a critical software tool used to copy files throughout the integration system. The program made it through the entire system and the system stopped. I could not check in the fixed program, because I broke the tool that copies files into the system.
This small mistake affected my productivity, because it took me a couple of hours to log into to all the systems and fix the error. It also affected the productivity of the entire R&D organization, because developers were not able to check out the files they needed to modify. It also prevented developers from submitting changes to the company’s software products.
FMC: How did you get your first position after receiving your B.S. degree from URI, and what did you do?
JG: Connections Telecommunication sent a job posting to the URI Computer Science department at the end of the spring semester. I saw the job posting on the department’s job bulletin board. I mailed a cover letter and my resume to the contact person listed on the job posting. I was then contacted and asked to participate in a series of interviews at the company’s offices in Brockton, MA.
Connections was a small private company, around 25 people. I was interviewed by my potential manager, a developer in the group, and the company’s president/owner. I received and accepted an offer to work in Connections’ R&D department. I started working on the company’s software installation tool.
I then moved to developing the company’s next generation network design tools. The company produced software to allow a data communication network designer to design data communication networks over a telecommunication company’s leased lines based on network utilization, response time, and cost. The then current version of the application ran on MS DOS systems, so I began working on a MS Windows version of the software. Development used Gupta Technologies’ RDBMS SQLBase and their 4GL Windows development system, SQLWindows.
FMC: Why did you leave that position, and how did you get your next one?
JG: The company encountered cash flow issues and ran out of money. I was laid off with the rest of the company. I started my job search by reading newspaper ads. I also contacted a technical recruiter who setup an interview with Fiberoptic Display Systems. I also interviewed with another software company. I received offers from both organizations and accepted the offer from Fiberoptic Display Systems, FDS.
FMC: What did you do in that position?
JG: FDS provided turn-key systems for dynamic-message highway signs. My new position had me working on the central control system. This was the software running on a PC located at a highway command center used to control and monitor the highway signs. This allowed transportation agencies to display real-time information to motorists.
The software I developed could communicate over a variety of communication systems: dial-up lines, private communication lines, leased lines, and RF systems. The central software allowed the end user to store information about the signs and messages that could later be recalled and displayed on one or more signs. It also allowed the end user to monitor the condition of the sign, such as its current message and which lamps needed to be replaced. I also had to write the user manual for the central control system, as well as provide technical support to customers.
Some systems required the central control system to integrate with other highway systems. The most complex system monitored a weather station and fog detectors. Depending on the environmental conditions, which were configured and modified by the customer, the central control system would automatically turn off the overhead roadway lighting, turn on the in-road lighting, and display messages on the highway signs alerting motorists to weather hazards.
I also was a technical representative in a national standards committee that created the first national standard for communications with highway message signs.
FMC: Impressive! You stayed there for almost ten years. Why so long, and why did you leave?
JG: FDS gave me a great opportunity to learn about all parts of a business. It was a small six-employee subsidiary of a company based in France. We serviced the US market. Because FDS was a small company, I had a wide variety of jobs in addition to the software development and support roles. I was involved in reviewing contract specifications and providing cost estimates for the central control system, including any necessary software customization. I also ordered the hardware—computer and communication equipment—for the central system. I assisted with the shipping and receiving and attended trade shows.
About a year or so before I left, the parent company decided to use their central control software in the US Market. I found myself doing less and less software-related work. I found I had to make a career decision. I could remain at FDS and move into project management or continue in the software field by looking for employment elsewhere. I really enjoyed working in the software field and thus started my job search.
FMC: What was next? And how did you get to your present employer?
JG: My next job was with Dreamport, a subsidiary of GTech. At the time GTech was a Rhode Island based lottery and gaming company. Dreamport was a spin-off company that focused on video gaming systems. I was very happy to be working for a larger company, as it allowed me to learn and collaborate with other software developers. Dreamport was the best of both worlds: It was a small agile company with fast growth, but also had the backing of a large established organization.
While my job at FDS provided great experiences, I was the only software engineer. I was not able discuss ideas with other people, have code reviews, or get assistance when I had difficulties debugging an issue. In my new position, I was part of a team of eight developers working on embedded gaming systems. There were another fifteen or so software developers plus sales, marketing, and management teams. The company had approximately 60 people.
In the two years I was there, I worked in a cross-platform development environment where I developed code (edit, compile, link) on an MS Windows computer, but then ran the application in an embedded environment.
I really enjoyed the work and the people. I was thinking this would be a long-term position; however management was making major changes to the company. It began moving towards a very different direction compared to what I saw when I first interviewed and joined Dreamport. So I started my next job search.
A technical recruiter setup an interview with HKS, Inc. (now Dassault Systemes Simulia Corp.) They made me an offer for employment. I went on a couple of other interviews to see what other companies and opportunities were available, but I accepted the offer from HKS. HKS was a private company, but five years later, it was purchased by Dassault Systemes, and HKS was rebranded Dassault Systemes Simulia Corp.
FMC: Did your college education adequately prepare you for your first and current positions?
JG: While my college education provided me the knowledge needed for a career in the software industry that I continue to use today, I would not be employed in the field if I did not continue to learn. A combination of on-the-job learning, reading technical magazines, on-line courses, and technical classes/seminars is needed to stay current in industry trends and technologies.
FMC: How hard do you work? Does your career leave you with enough time to enjoy life?
JG: I work at a sustainable level, generally putting in 40 to 45 hours a week. There are times where there is a critical system issue. When this happens, I will put in the time necessary to get things operational. This may be working a couple of 12- to 14-hour days or working over the weekend or a holiday. Simulia is good about providing comp time when this happens. This allows me to find time to enjoy my hobbies and outside interests.
FMC: Can you give some advice to our current students?
JG: The knowledge gained earning a B.S. in Computer Science is just the start. It provides a solid foundation for continued learning. It is important to continue to learn and keep up-to-date with new technologies.
Writing is also a large part of software development. Between writing documentation, specification and user documentation, and written communication, I find that I spend half my time writing. Early in my career, I did not like writing, but as I found myself needing to write, my writing improved, and I no longer tried to avoid it. Writing is also necessary to advance a career. To lead a team, you need to communicate and document the design and related concepts.
Finally, first impressions are big. If it is an interview, learn something about the company. Before the first day on a job, get some exposure to the technology used by the organization. That will go a long way, as it shows your interests and commitment.