Peter Caswell graduated from the University of Rhode Island in 1980 with a B. S. degree in computer science, with minors in math, history, and philosophy. He continued his education at Rutgers University and received his M.S. degree in computer science in 1982. He has held many positions since then and is currently employed by Nuance Communications in Cambridge, MA as Principle Software Engineer.
FMC: Since you graduated from URI, Peter, you have worked for 18 different organizations, some more than once. And you have stayed with technical positions rather than management. Why did you change jobs so often, and how do you make such moves?
PC: The why of job changes is different with every job. I have always enjoyed the energy and excitement of start up companies, but they are rarely stable, so a number of my job changes resulted from companies just not making it. Other jobs I took as a short-term contract while waiting to get a more full time job. And sometimes I've just been offered a better position.
In the 80's and 90's the industry was a lot different from what it is today. Back then you had headhunters calling you up all the time trying to get you to switch jobs (thus earning commissions for them). So the lure of new jobs was much greater. And it was much easier to find a new job if your company was crashing and burning.
But I find that the best way to find new positions has always been through connections that I've made. I would say that 90% of the jobs I've taken, I've taken because there's someone I know at the company. In those cases, I can get a clear understanding of the dynamics of the company (to the extent that my friends know them) and the hiring managers (if not already acquainted with my work because I've worked with them before) can get a clear idea of my skills and personality.
FMC: You left three companies, only to return within a a few years. “Why?” and ”How?” are two questions that come to mind!
PC: In two of the cases, when I "went back" to the company it was on a short term contract after failed start-ups. The circumstances of leaving the companies were different, but in both cases I left on good terms and ,when I needed to find work quickly, my contacts were able to offer me contracts to help me get over a hump. Not that it was charity, but they had a need for a piece of work that needed to be done and it was something I was familiar with. In such a case it was easier to hire someone who had some background rather than someone new who'd need to be trained up on the systems.
The third case was different. I'd left a company in large part because I'd become frustrated because it wasn't taking the technological direction that one group of the employees (including myself) thought would help it succeed. After I'd left, new Venture funding came into the company and wanted to implement the ideas I had favored. People who I knew talked me into coming back to work on the ideas that I'd had before leaving. It’s another and much longer story about whether that was a good idea or not!
FMC: Did your work change much as you moved from place to place?
PC: Oh, yes and no. I've worked on embedded systems and user interfaces, drivers and web applications. And I've written code in assembler, C, C++, Java, and a few other languages. Sometimes I've been doing design and architecture work, sometimes I've been implementing other people's designs. And at start-up companies, I wound up doing a little bit of everything (including at one job being a Purchasing Manager.) But there are usually specifications to write, and there are always endless meetings to attend. It's always important to try and understand what the product is supposed to accomplish and to figure out the best ways to do that. (And then usually the ways that you can afford to do that.)
FMC: Should new graduates expect to change jobs as often as you did?
PC: I'm not sure I'd recommend it, but I wouldn't be afraid of it either. It really depends. The industry is always so dynamic that I think new graduates should expect that they will get laid off once or twice during their careers. This doesn't reflect on them—sometimes the best engineers, who are also the best paid, get the axe first. Instead, it reflects on the industry and the way the world works these days.
The most important thing, in my view, is to never burn any bridges and to maintain good relationships with people you work with and people you used to work with. You never know when you might need a good reference or when someone who you worked with will call you up and say, "I was wondering if you'd like to come interview with us."
FMC: What are the pros and cons of changing jobs frequently?
PC: The pros are that you get to learn a lot of different ways of doing things and get the chance to see how much they all have in common. You are able to bring good things from other environments into new environments and learn news ways of doing things.
The cons are that you lose continuity and don't always get to see the project you worked on mature.
FMC: What do you do at your current position?
PC: I'm one of the engineers who build and maintain the software for the web servers that provide speech recognition and natural language processing for a number of manufacturers' cell phones. This is a departure from much of my career, when I have worked on communications equipment such as switches and routers. It is exciting to have the opportunity to learn a new area and to bring my expertise in communications to bear to web services.
FMC: Did college prepare you adequately for your career?
PC: It did, I think. It gave me a good grounding and a broad base and taught me to be flexible. There are concepts that I learned at URI that I use every day at work, such as Order of Computational Complexity. There are other items that come up occasionally that we learned at URI that I've been surprised haven't been in the every day toolkit of other programmers. I'm proud of coming from URI and what I learned there.
FMC: How much do you enjoy your career?
PC: Well, honestly, I've been doing this for 35 years now. Sometimes, it is hard to be doing essentially the same thing for all that time (which may be an answer to your earlier question about why 18 jobs). But I do enjoy it. I really can't imagine doing too many other things. It is amazing to know that what you do touches so many lives. I've had the opportunity to build parts of the Internet and that is pretty cool. (Although for much of my career, it was impossible to explain to people just what it was I did.)
FMC: Does your career leave you enough time to enjoy life?
PC: I make it a point to make sure that I have time to enjoy life. It was a lesson I learned from some people in one of my first jobs. The old expression is "work to live, not live to work," and that's important. I try to, unless there is an emergency, work as hard as I can for the time I'm at work and then leave work at a regular time. When my children were younger, it was important for me to get home to spend time with them. Now, I think it makes me a better programmer if I take time to enjoy my life outside of work. These days I spend a lot of time with photography, which helps me exercise the other half of my brain and makes me more creative at work as well.
FMC: Do you have some advice for current students of computer science?
PC: Never burn a bridge. Never invest too much ego into your code (it’s what you write, it’s not you). Oh, and you probably changed more than just a comment!