
Ask HN: Are there programming jobs for Math PhDs? - shou4577
I'll be graduating with my PhD in Mathematics in a couple of years, and I'm really interested in moving to the software engineering/programming field (for those interested, it's not that I don't like academia, it's that I really like programming).<p>I'm no code expert, but I minored in Computer Science as an undergrad. I have experience in C++ and Python, and I'm currently learning Haskell and some web backend with Django. I would estimate that I have coding experience equivalent to someone graduating with a Bachelor's in CS from a small liberal arts college (that is to say, nothing note-worthy).<p>My question is: would anybody like to hire me? Math grad school has made me excellent at solving problems, learning new technologies, and communicating difficult ideas. But I'm definitely lacking in the experience division. Now I'm wondering if I would be a desirable candidate or not.<p>And I'm not fishing for job offers or specific companies - just want to know if you know anyone like me who has been hired, or who can't be hired.
======
charlieflowers
From what I've seen (and I'm a 20 year programming veteran), the _best_ jobs
out there are in your wheelhouse.

Here's why: programming jobs top out at around $140k (higher or lower
depending on your city). That is 99th percentile, I would speculate.

But there is a smaller niche of jobs that prefer or require advanced academic
degrees that are math-heavy (such as Physics or Mathematics), that use cooler,
more powerful, non-mainstream languages (such as Haskell, Lisp and a few
others), and that can pay up to even $400k.

(Disclaimer: I don't have one of those jobs -- yet anyway :) And I don't
directly know anyone who does. But I've seen indicators that they exist.
Mostly it seems in the Financial sector. And I think $400k is way on the top
end ... but that's a nicer top than $140k.)

 _EDIT_ \- I saw lower down that the OP said he's not so much interested in a
"Quant" job. Mostly, that's the kind of job I'm talking about. I understand
why some consider it boring -- it doesn't involve creating anything life-
changing -- but to me it is very interesting because it seems like you'd be
working with some of the best functional programmers in the world on some hard
problems. And, of course, the money is intriguing.

------
dkarl
I think anybody who needs smart people who can work with difficult domain
problems will be happy to interview you. The chief worries with a PhD
mathematician would be:

1\. Will you take a pragmatic engineering approach when it's warranted, or
will you be a cranky loner scribbling differential equations that supposedly
prove which brace style is superior?

2\. Will you be bored when you're not doing "real" math?

3\. Will you demand a salary that exceeds your current ability to contribute?

Sounds like you are clear on all three counts. Now it's a matter of finding
the right opportunities. If you want a job locally, meetups for topics like
machine learning are a good place to find out where mathematically inclined
programmers are working. (Though you might find that a lot of them are at
meetups because they're bored at their current jobs.) If you're targeting a
certain city, you can join local mailing lists for (e.g.) functional
programming to which local employers might post job opportunities.

You can also check out job postings to see which high-tech companies are
hiring programmers. A company that employs a lot of PhD scientists in other
positions is more likely to hire PhDs into programming positions, if only for
the sake of effective communication and a consistent culture. One of your
biggest qualifications to work as a programmer in such an environment is that
when the physicists or molecular biologists talk to you about the problems
they're trying to solve, you are much better equipped to understand them and
build good software for the company than a guy who didn't go beyond
undergraduate linear algebra.

You're going to do fine. Finding your way into the right circles might be a
slow process, though. Don't be afraid to take a boring job if you can't find a
better one, because at least you'll get something to put on your resume,
experience dealing with mundane crappy stuff that you might have avoided so
far -- things like debugging, messy merge/rebase problems, and working with
other people's retarded code. Good programmers have to be efficient at that
stuff. Good programmers also have to be good at working with people, and the
crappiest jobs have the most challenging people problems. It's better to be
getting your hands dirty with that stuff than sitting at home sending out
resumes and solving Project Euler problems. HOWEVER, don't lose faith that you
are a highly valuable performer with rare capabilities _even if that isn't
true in the initial crappy jobs you find yourself in._ Soon enough you'll find
your way into the right companies, meet the right people, and you'll be fine.

------
alinajaf
If you're near a major city in the western world, I think it will take you
about two weeks to find a job. You can spend the first two weeks of that
visiting your favourite national park or beachside resort.

On the last Friday pick up the phone and call your three favourite tech
companies in the area. In this market, in all likelihood, you will have an
offer or three lined up by the next Monday afternoon.

~~~
bearmf
You are exaggerating, OP has almost no experience in software development. And
it is never that easy to get a job even if you are good. Nowadays it is more
like 2-3 phone interviews, then a whole day series of face-to-face interviews,
then HR interview if you are lucky. All of this takes up LOTS of time.

~~~
hnwh
He's not exaggerating ALL that much.. my recent job search in SF went that way
( PhD in Physics, web programmer).

~~~
bearmf
If you know the right people it can be that easy, I agree. However for someone
with no experience and no connections in the industry this would be hard.

------
jgrahamc
I have a doctorate in computer security which was pretty much all mathematics
and I would definitely hire someone like you. You'd need, of course, to show
that you had an aptitude for programming, but at my company, CloudFlare, we
have some big (as in interesting) problems that need solving. These big
problems need smart people; a PhD in mathematics is an indicator of being
fairly smart in a way we could likely use.

What sort of mathematics did you do? Clearly, if you have a good grounding in
statistics there are lots of opportunities and the whole field of machine
learning is mathematics that's been implemented in code.

~~~
shou4577
Thanks, that's really good to hear (I love big problems!)

My research is in abstract algebra (specifically Lie theory and algebraic
geometry), which is pretty far removed from statistics or applied math in
general.

------
nazca
Great comments above. One more thing to add: if I was in your position I would
be thinking more broadly about how to best use my math background within the
software development world. You're worth a lot as a programmer. You're worth
even more as a programmer with a PhD in math, providing you can find the right
opportunity to apply your skills. You may not notice a big difference in
starting salary if you don't have a lot of experience, but if you choose the
right path you can likely make much, much more in a 5-10 year time frame. In
my current company, we have some minor issues finding good programmers. We
have major problems finding programmers that are really good at developing the
fundamentals of an approach for solving really hard business problems (hard
from an algorithmic perspective).

It may be that your thesis topic is far removed from practical applications,
but you likely have a strong enough foundation in math that you would be great
at working on a lot domain specific applications. Some others mentioned
machine learning, and this is likely a good option, but only one of many. Spin
this around and think of it from the business side. Where are there
opportunities to put more robust analytical solutions in place in the business
world? Start thinking about every company you see, buy products from, or
otherwise interact with - how could they (or are they) be more effective at
what they do with better math? Everything from better sales forecasting at
your local supermarket, to better car design.

------
geofft
I figure a math Ph.D. who's poked at Haskell and Django will be smart enough
to figure things out, and enough of (the right kind of) programming is more
about figuring out new environments than knowing an existing environment very
well. The one thing I don't see in your writeup is any concrete experience to
look at. Do you have some awesome Django site that does something nifty, or a
cleverly-designed Haskell application, that you can show off? For bonus
points, can you get real users?

The Stripe jobs page (<http://stripe.com/jobs>) has some programming
challenges that are way too ambitious for a usual couple-hour coding
challenge, but definitely along the lines of a nontrivial, self-directed
project that I'd like to see. Spend some time over a weekend making something
like that, and it'll be worth noting to everyone you apply to. I've also seen
great websites explaining mathematical concepts in intuitive, interactive
ways; maybe there's a paper or something you like that you can turn into an
instructional webapp.

Since you've got a couple of years before you'll be applying, another great
option is to get involved with some open-source software, preferably something
you use already or would want to use.

~~~
shou4577
Thanks, you don't see any concrete experience because there isn't anything
worth showing. I'm working on some stuff right now to do just that. It's
actually a webapp to allow teachers and students to communicate math
effectively without having to know LaTeX and email pdfs.

From what I've heard so far, it sounds like there is definitely opportunities
for me, and that means that I can justify spending time working on these types
of projects over the next couple of years.

~~~
nsomniact
I'm a co-founder of Olympus Math, an adaptive platform that improves math
proficiency for middle and high school students (currently deployed across 35
school districts nationwide)

Your above mentioned project is aligned to a new product we are gearing up to
develop. I would love to chat with you further, you can email me at
muj@olympusmath.com

------
swang
If you can program you can get a job. I think in your case you probably need
to show you can do something by putting it up on the web or Github. PhDs from
certain universities will probably get an automatic job offer regardless.

The question is do you want a job in your field of expertise? I am not
familiar enough with companies looking at practical applications of abstract
algebra but it's probably not as abundant as companies looking for people with
a focus on statistics. I don't think this will hinder you much though as the
industry is looking for smart people despite whatever field you're in.

Maybe this sounds stupid because it may be obvious but I think a big advantage
is if you're able to both read math papers and translate them into actual
working algorithms. It doesn't seem like there are many who know how to do
both.

------
andrewcooke
i think others have said most things i would say (as a programmer who started
out with an astronomy phd), but two points that i don't think anyone else has
mentioned:

1 - try to get a job in a "real" software company where you are "the maths
guy" (or, easier, the existing maths guy's understudy), rather than in a
company full of people like yourself (ie where most people are software
engineers, not maths phds). in my experience that will help you learn how to
be a professional engineer, use good practices, etc etc (although the
variation between companies is still huge).

2 - you will be amazed at what most people think is "advanced maths". things
that are completely basic for you (like, say, simple geometry or trigonometry)
seem to be black arts for the majority of software engineers. this has a good
and a bad side: the plus is that it makes what you have very valuable; the
possible minus is that you could be asked to do quite boring work.

please don't take the second point to mean that there aren't some very smart,
very mathematically competent software engineers out there, because there
clearly are. but they are exceptions. value them when you find them.

what i am trying to say, i guess, is that your skills and those of a good
software engineer are pretty much disjoint (and complementary, in the non-
mathematical sense). so you both have much to gain/learn from the other. and
if you can learn, then you become more valuable.

------
taliesinb
We (Wolfram|Alpha and Wolfram Research) hire a lot of math and physics PhDs --
although they need to have a pretty strong grasp of functional programming.
Email me at taliesinb@wolfram.com if you're interested -- we work on a lot of
fun and challenging problems.

As for myself, my degree is pure math, but I consider myself primarily a
programmer. Funnily enough, reverse engineering a 3D graphics engine was how I
first learned trigonometry and matrix math as a teen.

------
jdowner
If you want a job as a software engineer you will need to demonstrate that you
can write software, regardless of your education. So I would recommend (as
others have mentioned) that you put your work out there on github or (even
better IMO) contribute to an open source project. Working on code with others
can provide a tremendous education in itself.

There are a lot of people who will see your PhD as a black mark when it comes
to software engineering. There is a belief that you are over-qualified (what
ever that is supposed to mean). Whether it is a reasonable belief or not it
exists so you will being trying to prove that you produce Quality Code and a
Team Player (TM). Once you get your foot in the door, it should become easier.

There are also lots of places that are math PhD friendly :) Like the mathworks
for example!

FTR, I have a PhD in applied math and have been a software engineer for about
8 years now. I got my foot in the door by working for free at a game company
for a year. Not the way that I advise everyone to take ;) but I lucked out and
learned a lot from the experience that it continues to influence my view on
software, teams, and leadership to this day.

Good luck!

------
bethwoltman
Yes! I happen to know of a company that would be very interested in hiring
you. I suggest testing out a few different company cultures prior to
graduating. You are clearly smart so I'm guessing there will be few jobs that
you can not do. Three years ago, I thought that I would be in med school right
now but took a much different route that some people still don't understand. I
mentor a handful of MBA students as well as college students regarding this
very topic. I would love to talk to you and share a few details regarding the
company that I mentioned. Right now you are in a great position to test out a
few jobs that you "might" be interested. I highly recommend doing this while
in graduate school. I am happy to walk you through examples of how this can be
done. Please feel free to email me at bethwoltman@gmail.com if you would like
to discuss this in more detail. I included a small snapshot of my background
for frame of reference. I don't recommend taking this path but hopefully this
will give you an idea of what I am referring to.

My unconventional background: Pre-med/Community Healthcare undergrad, Senior
Financial Consultant that participated in taking previous employer through an
IPO, recruiter for an international organization, business development for a
consulting/advisory firm. I taught myself computer programming which was the
foundation for my first software company. I also own another company that is
in the computer processing/engineering space but is rather unique; customers
include traders, various investment funds, recruiting firms, and individuals
in the healthcare industry. I'm also a senior adviser for an angel fund and am
just old enough to legally rent a car in the US.

Be open to asking questions and not being good at something. You never know
who you will meet and how far it will take you.

------
ig1
Yes. After CS the most common degrees for developers tend to be either Maths
or Physics, there's plenty of maths grads working in software development.

------
Mikosia
In addition to these excellent comments, my recommendation would be to hack up
something: work on your fave idea, a fix to a pet peeve, contrib to an Open-
source project and so on...You should get a pretty good idea of your
strengths/weaknesses. There is no substitute for actually "doing it". It is
also something you can point to in job interviews.

p.s This is a sellers market all through.

------
yummyfajitas
I graduated with a Math Ph.D., and had little difficulty finding a job.
Admittedly, I studied computational physics rather than Lie Algebras.

I wrote a blog post discussing how to leave academia and prepare for work in
industry, you might find it helpful.

<http://www.chrisstucchio.com/blog/2012/leaving_academia.html>

~~~
shou4577
Awesome! I went to check out your blog post, only to discover that I've
already read it (and it contains a lot of helpful advice, thanks!).

------
actsasbuffoon
I wouldn't worry. I don't even have a Bachelor's and I make a six figure
salary as a developer. If I can manage it without a degree, then you should be
fine with a PhD!

I know a few developers with degrees in pure and/or applied mathematics.
Without exception they're extremely smart people who are very good at what
they do. I doubt you'll have difficulty finding a good job.

~~~
cnp
Same here. But what I did have was real projects to show for and an ongoing
interest in languages. The degree question was never an issue.

Like the above comments suggest, get a github account together that clearly
outlines your interests.

------
jboggan
I will tell you that if you are looking to move into software and are
currently "a couple of years" from finishing a math PhD you need to re-
evaluate your chances of finishing your PhD. PhD's are difficult programs,
especially in the final stages, and if you don't have a burning and
overwhelming desire to do something that _requires_ you to have that math PhD
you are going to have a very difficult time finishing.

Go ahead and think right now how you can transition from grad school to being
hired in software development 12 months from now. You're probably being paid
to go to school right now so that makes it even easier. Start working on some
open source projects, create a side project, get your GitHub account bouncing
with meaningful commits.

PhD or no PhD you will need to demonstrate some finished projects to help you
get hired at a good position.

------
Kishin
A startup I have worked at had a programmer who had PhD in math. His prior
experience was primarily shell scripting in addition to some other very minor
experience. A PhD in math will tell a potential employer that you are smart.
Very smart. A lot of computer science (CS not programming) is essentially
math.

You definitely have an advantage in many of the more mathematical areas
(machine learning, etc.) and your degree will show that you'll likely be able
to learn quickly. Your PhD will only help, not hurt. Just do some side
projects in a popular language like Ruby, Python, or something else that is
relevant and you will be more than fine.

------
netghost
A solid understanding of math or any technical field combined with practical
experience in programming, and a willingness to learn will get you quite far.
Also a multidisciplinary background can be quite a strength.

For instance we're hiring developers at LiquidPlanner. We are doing some cool
stuff with probabilistic scheduling/planning, which would really benefit from
some more folks with solid math/stats backgrounds:

<http://seattle.craigslist.org/see/eng/3264718329.html>

So yeah, I'd say finish up your PhD, enjoy academia, and don't worry, there
will be jobs out there for you.

------
mrestko
For what it's worth, I have a B.S. in biochemistry which I would expect
indicates some level of intelligence to potential employers. However, I have
had a lot of difficulty even getting to the interview stage when I apply for
programming positions. I've spent a lot of time learning on my own and
studying the CS side of programming (i.e. algorithms/data structures) which
expect is neglected by many late converts and even when I say this in my cover
letters I rarely more any further in the interviewing process.

A math PhD may have better luck but my experience has been negative so far.

~~~
infinite8s
It's not so much a matter of intelligence (although that is important), but a
matter of ability. Companies are much more interested in a demonstrated
ability to program, and one of the easiest ways is to actually build something
that you can show off. So if you really want to get yourself noticed you
should put up some personal projects on something like github or contribute to
open source projects. And considering you are a biochemist, there are lots of
interesting open source projects in your language of choice that are being
used for sequence analysis, phylogeny, cell simulation, etc. :)

------
Paul_Young
We would hire you at my company.

We've got a unique hiring method in that we hire Pure Math students
_exclusively_ (for development). We don't even look at "programmers" anymore.
We take them from basically never writing a line of production code in their
life, and turn them into great developers in a very short period of time.

Our company does a lot of theoretical compiler type stuff, so Math students
fit well into that. We've done this with a number of people now, and it works
pretty well.

Shoot an email to work@skybound.ca if you're interested.

~~~
zura
I understand regarding "programmers", but how about computer scientists?

------
bearmf
You should also think of how your attitude might change when you have
professionally programmed for several years. It is of course good to like
programming. But doing real projects that have users other than yourself is
very different from just programming for fun. This is the kind of experience
everyone is looking for: finishing real projects.

Also, many software companies will see you as overqualified for what they are
doing. For example they might assume you will easily get bored.

~~~
shou4577
Thanks for the warning. I'm working on a project right now that I should be
releasing soon to help with the "real project" problem.

This is another thing I'm afraid of - being overqualified/people thinking that
they are actually my backup job. Is there any way to combat this?

~~~
bearmf
Try to find a company full of like-minded people (maybe math/physics PhDs) and
a job that is actually interesting to you. There will be no "overqualified"
questions if interviewers understand you and your motivations well and you are
enthusiastic about the job.

Experience is the best way to prove it though. If you have done well in a
similar job no one will usually question your motivation.

------
Codhisattva
Depending on your math interests you might find a coding career in computer
vision, digital signal process or 3D graphics.

And there's always the "quants" on Wall St and high frequency trading
algorithms. Boring in opinion but there out there.

You can always solve the experience problem. Just start coding.

~~~
shou4577
Yeah, I've heard about the Wall Street programming options for mathematicians,
but it is not a field that I'm interested in.

Actually, the CS dept at my uni has a big computer vision research program. I
should go talk to them.

Thanks

------
petegrif
Another angle on this is that there are many different types of programming. A
math degree is not necessarily a huge advantage for a career in webdev but
imho it is a nice start for scientific computing or data mining.

------
linguistbreaker
Take a machine learning class on coursera - you'll have a big leg up on the
math. If you get the math, the algorithms are straightforward and the field is
growing.

------
alexchamberlain
I'm a Maths MMath graduate and have got a software development job I am
starting in November, so yes. E-Mail in profile if you want a chat.

