Selected From:


*Concerns of Young Mathematicians*
Volume 3,  Issue 12
Mar. 29, 1995


An electronically distributed digest for discussions
of the issues of concern to mathematicians at the
beginning of their careers.



An Interview with Tom Davis at SGI

Prologue: 

Just as general interest, here's my background:  I've got a PhD in mathematics from Stanford, nad did a post-doc for about 3 years in EE, also at Stanford.  I taught some math and computer science in small colleges for a couple of years, and since then, I've worked in industry -- first for a company that did an office automation system, and for the last 13 years at Silicon Graphics where we're most famous for our graphics workstations.  Silicon Graphics employs about 5000 people world-wide, of whom perhaps 1200 are in engineering -- about 700 in software and 500 in hardware.  I work primarily on graphics software.

Some of the comments below may seem a bit negative, but I really love math, and always have.  I still teach some volunteer math classes, read math books, work on problems/puzzles, and so on.  It's just that a lot of the things I love don't help anybody make any money, so industry's not particularly interested in paying me to do them.

Remember also that my point of view is pretty limited -- my company builds and sells computer hardware and software, so the sorts of things I recommend below are highly biased in that direction.  We don't build bridges or design wonder drugs or make rockets.


The Interview.



1.   If you were beginning graduate school in mathematics today, what courses would you take to be as valuable as possible in the job market a few years from now?

It would probably depend on how smart I was, and what I wanted to do.  Obviously, if I were one of the top 2 or 3 mathematicians in the country, I'd be virtually certain of getting an academic job whereever I wanted, so I could stick to pure mathematics if that's what I liked.

For the rest of us, however, it seems clear that even if you want to be in academia, the future job market there is pretty uncertain, so it would be wise to take some more applied courses, or better yet, get some experience via summer jobs or something in industry.

So outside of mathematics, the most useful courses I took or audited were in computer science and electrical engineering -- particularly those that required me to build something or make some software work. I actually did sit in on a lot of physics, chemistry, and biology courses as well because they interested me, and it's sometimes useful, when dealing with customers, to know something about what they're trying to do.

In computer science, I'd recommend introductory courses in a few basic areas -- it's nice to know how a compiler works, how an operating system works, how to write solid, production code, and (at least at Silicon Graphics) something about graphics and image processing.

In electrical engineering, it's nice to be able to read a digital circuit diagram, although there's certainly no need to know how to design one.  Some simple knowledge of the hardware architecture or your computer can make a 10 times performance difference in your code.

For math courses I recommend, see the next answer.


2.   What are the mathematical tools that you use most? What are the things I should be getting familiar with? Is there a particular computer language  or skill that is absolutely necessary in a new hire?

I've worked in a lot of areas of computer science, and until I began working with graphics, I used very little mathematics other than basic principles of logic and deduction.  It's a good idea to have some idea how to estimate the performance of an algorithm which can be tricky.

In graphics, I use linear algebra heavily, projective geometry, and some differential geometry.  Other people here who do a lot of image processing work know a bit about the various filtering techniques (Fourier transforms, finite Fourier transforms, wavelets, and so on). I'd guess that in the next few years, there will be a lot more work in image processing because it's finally getting cheap enough to do quite interesting things on relatively inexpensive machines.

Some of the work here requires a bit of numerical analysis, and a lot of our customers use it heavily.  We don't do any differential equations work here, but a lot of customers do, so it's good to have some expertise in that area in-house.  These folks will deal with the customers and with the hardware designers and make sure we're building the right stuff.  Actually, the folks here that do this are not mathematicians -- they're often physicists or mechanical engineers who have had huge amounts of practical experience with PDEs.



3.   Suppose you are talking to a brilliant, new math Ph.D. with a "pure" background who really wants to get a job in industry in the next year or so.  What minimal re-education path would you suggest?

If you're a brilliant PhD, you presumably are smart enough to teach yourself.  I'm not brilliant, and that's what I did.  I bought books on the topics I mentioned above and bought a cheap computer, and was my own professor.  I wrote a simple interpreter, compiler, and operating system basically from scratch, and it's amazing how much I learned.  I bought chips and built some simple circuits, including flip-flops, adders, counters, et cetera, which also proved to be extremely valuable.

The main problem with the above scheme is that it's hard to get a job without "official" certification -- none of this stuff appears on any of my transcripts -- so you should not count on starting in your ideal position.  Get any computer job in a company that has jobs like the one you really want, and after a year or two, if you prove to be competent, you can move to any of those jobs.  In industry, after a couple of years, nobody cares what your degree is or where you went to school -- all that matters is how well you've done there.

My first non-mathematical job was in a marketing group, teaching customers to use a sort of complicated word-processor.  I was able to get the job because I had some teaching experience as a graduate student and in a junior college.  Once I was in the company for a while, it became obvious that I had some technical ability as well, and I never had any trouble getting a job after that.

So my advice is that if you want to change careers, get whatever related job you can, and do a really good job.  Also, read as much as you can about software engineering on the side -- there is a huge amount to learn, and it's not easy to "derive it from first principles".

4.   How many Ph.D.'s from mathematics are in your employ?  How many statisticians?  Physicists?

I think there are 4 math PhDs here.  I'm a graphics hacker, another of us writes compilers, but the two others actually do some mathematics. One works on problems of surface description and algorithms, and the other works a lot with numerical accuracy concerns for various algorithms.

I actually do a little mathematics, since a lot of people know I've got a PhD, it seems like once every couple of weeks or so somebody comes by with some problem that has a mathematical component and I "consult" on it.


5.   How many hours per week does the average industrial mathematician work?

Here, at least, we're all just "engineers".  When there's no crisis, it can be a standard 40 hour/week job.  In a crisis (of which there are plenty), it can be 50, 60, or 70 hours/week.  I find that by being clever, I can anticipate a lot of crises and head them off, and I probably work 45-50 hours almost all the time.  But when you're new on the job, and trying to impress the boss, it wouldn't hurt to put in some extra hours.

6.   How is the work structured?  Do they just hand you a project and say,  "This is your baby;  get it done in 10 weeks?" Or do you always work in a group?  How big are these groups? Is there always a deadline,  or do some groups work on a more open-ended timetable?

Almost all work is done in groups, but the group is just handed a project and told, "Make a machine that can draw a million triangles per second, costs us less than $10000 in parts, and have it done in 18 months."  This may not be typical of the industry, however.

7.   How do you find the mathematicians you hire?  Is there  a bulletin board where openings are posted?

We never look for mathematicians; in fact, we rarely look for any degrees.  We have a job opening like "experienced compiler writer", or "entry-level operating systems programmer", and we look for that.  Of course for jobs like those, it's more likely that the hiring managers would look at resumes of computer science graduates (at least among people with no work experience).  If the applicant has work experience, that's what's examined first.

8.   Suppose you are looking to hire an expert in P.D.E's and after taking a look at the market and realizing you have a hundred people to choose from,  you start thinking about what other attributes you want this person to have.  What's on that list?

I'd make sure the person we hired had experience with solving them on big machines, and had a good idea of how to deal with unreliable hardware.  For giant PDEs, we usually use networks of multi-processors, and stuff is breaking all the time during the calculations.  The algorithms must be robust enough to survive this.  Of course, I'm only familiar with the sorts of work we do, but it typically involves huge problems requiring super computers.

9.   If you could form your own applied science department to train future employees,  what would you put on the curriculum?

Actually, for our needs, computer science and electrical engineering departments do a pretty good job at supplying 99% of our engineers.