Hacker Newsnew | comments | show | ask | jobs | submit login
Ask HN: Are there programming jobs for Math PhDs?
29 points by shou4577 1001 days ago | 41 comments
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).

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).

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.

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.

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.


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.


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.


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.


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


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.


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.


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.


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.


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.


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.


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


You're probably also overestimating the barrier for what's worth showing, but yeah, that webapp sounds awesome.


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.


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.


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.


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.


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!


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.



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!).


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.


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.


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.


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.


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.


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:


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


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.


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.


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. :)


I'm very sorry to hear about your experience, thank you so much for sharing it.


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.


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


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.


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?


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.


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.


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.



Quant finance is very hard to get into at the moment.


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.


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.


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.


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact