site banner

Small-Scale Question Sunday for December 25, 2022

Merry Christmas, everyone!

4
Jump in the discussion.

No email address required.

What should I include in a CV for a software engineering internship? I'm a PhD student in pure math with little relevant work experience. Some highlights:

-Teaching (including some CS-relevant classes like linear algebra and discrete math).

-Coauthorship on several publications.

-A little programming work towards one of said publications in C and Sage, some more in C for master's thesis, a bit in Python for the current dissertation.

-Project Euler, mainly in Python with occasional pen-and-paper (285 solved currently. Almost caught up to our nybbler. Not much low-hanging fruit left.)

-Grades: mediocre undergrad in an irrelevant subject. Graduate coursework is all math and much cleaner.

-Teaching and academic awards.

-Coauthorship on several publications.

-A little programming work towards one of said publications in C and Sage, some more in C for master's thesis, a bit in Python for the current dissertation.

-Project Euler, mainly in Python with occasional pen-and-paper (285 solved currently. Almost caught up to our nybbler. Not much low-hanging fruit left.)

I would pick these three. Co-authorship shows you've learned something. Existing programming experience, even if minimal, shows you can code (you'd be amazed how many people fail FizzBuzz-equivalent tasks).

As somebody who interviewed a few people for SWE positions, some thoughts:

  • Any code you wrote that you think looks nice and you can explain what it is doing. Especially if it does something cool, even if it's not related to the immediate are of employment - if you can do one cool thing, good chance you can do more cool things.

  • Any topics you are interested in or worked on which can be in relation to what you current employer is doing.

  • Any tools/frameworks/concepts you have working familiarity with. Don't exaggerate too much though - if you write "I am an expert in C", you'd get an expert-level C questions, and unless you can answer them, you'd look bad. If you write "I have working knowledge of C", you have less chance of overpromising. Don't list trivial things like "I can make HTML page" - it's not exciting for decades now, and just annoys people.

  • Project Euler probably won't do much on CV, but you can mention it in the interview if an opportunity arises, and if you have some cool example that can demonstrate how you solved some interesting problem in a way that shows how good you are.

Basically on the interview I try to find out:

  • Is the candidate smart and capable of doing the tasks we'd need done

  • Does the candidate has the relevant experience and if yes, which one - so we can figure out into which project they could contribute

  • Are they going to be good to work with - decent communication skills, personality etc.

IMO don't lean on academic awards and unrelated publications too much - this can only create the impression you're an ivory castle dweller and earn you the dreaded "overqualified" mark. I mean, you don't have to hide it, but don't bring it as something that you consider to be a major factor, because for most SWE internship positions it won't be. Grades, especially old ones, are of very little importance IMO.

Grades, especially old ones, are of very little importance IMO.

I'll go further and claim that grades are completely and utterly irrelevant if you have literally anything at all to show for your skills (and if you don't, you're pretty screwed). I have no idea why so many American students are obsessed with them, given that nobody in the industry cares.

Right. I mean, if you are literally a fresh graduate with zero other things to show (which by itself is a bad thing, I'd expect to have at least some practical things to show) and perfect grades, it may be mildly interesting, in a way of "ok, I guess it's better than nothing", but in general nobody in the industry has the slightest interest in the grades.

I mean, my employer will occasionally list a GPA requirement/preference for senior-level openings, but i assume thats either HR's doing, or the hiring manager not really thinking things through.

HR may look at it, and if the company is big enough, it could happen that CVs with low GPAs or no GPAs would be screened out at this stage. In a smaller company, that's not likely to happen as people who actually make hiring decisions would be aware of what HR uses to screen and tell them not to do that.

Also, for a senior SWE position you should have enough experience that puts your grades years if not decades back. I can't imagine any hiring manager seriously worrying about grades made many years ago for something that is likely bear no connection with whatever work needs to be done now. At least not any manager who knows what they're doing :) Almost certainly it's something that HR inserted.

GPA requirement/preference for senior-level openings

HR is of course bad everywhere, but they sound especially bad at your employer. I interview a lot of people. We don't ask for GPA. The only job that actually verified my degrees was the very first one I got right after school.

  1. Grad school.

  2. Specific courses have massive waiting lists, and people with better grades are given priority.

  3. That one employer who will ask for transcripts. (I remember applying for a job that asked for high school transcripts as well, it was clear they were trying to extract every proxy for IQ they could get out of me.)

Not on the CV itself, but do you have any public software repos? Hiring for applied math software development, it's always a big relief when we can see for ourselves that the applicant can actually code something complicated, can use version control properly, can collaborate, etc. It's not a deal-breaker if there's nothing (we have lots of applicants who haven't worked on anything big that wasn't kept secret by their PI or by ITAR or whatever) but even a toy single-author project is nice to be able to skim.

I have a heap of Project Euler solutions, many of which are reasonably complicated. I haven't used version control, and collaboration on past projects was mainly in meatspace.

What libraries/frameworks are you familiar (very very good) with? "Some C" and "Some python" is vague.

Your math/research background would be largely wasted (on paper) if you go into a generic software engineering role. Consider some kind of relatively math/stats-heavy programming-based field like Data Science or quantitative finance? A lot of math PhDs getting into those.

There are no such libraries. I've rarely used libraries besides math and itertools for Project Euler; it's more fun to write things from scratch. This is why I'm applying for internships rather than full-time positions.

I'm completely fine with the math background being wasted. If I were healthier, I'd have probably dropped out in favor of some kind of physical work when Covid first hit. I'd prefer not to relocate or work remotely, and there are only a few plausible employers other than the university within driving distance.

it's more fun to write things from scratch

All fun and games until it isn't.

I don't mean to be insulting, but this is a very naive sentiment to hold. Real-world software (ones that people use) can use more than 20 different libraries, all of which are wildly different in functionality and are difficult to implement for people working in that specific field, forget people not in that field.

You are not going to write a web API, a database or a transformer model from scratch. But you can write software that interfaces with libraries/APIs that allows you to use 3 of those things in the same codebase, in a reasonable amount of time.

I'm completely fine with the math background being wasted.

How bad is your health?

Generic software engineering is boring. Way more boring for someone who got a math Ph.D., than you can imagine, it's grunt work most of the time. The math equivalent to being made to solve quadratic equations and do algebra all day, just 100s of problems of them.

No offense taken. I took up Project Euler two years ago, when grad school felt unbearable between some personal issues, Covid fanaticism, Zoom-based teaching, and figuring out that I wasn't good enough for number theory. (The last was always a possibility, it was just an extra layer of suck on top of the others). So I optimized for enjoyment. In fairness, the PhD program was for enjoyment to begin with - I'd gone into the master's with the goal of teaching community college and ended up liking pure math way too much. Now it's time to grow up.

Screwed lower back and pretty much all arm/hand joints. Chronic pain, now mostly manageable with NSAIDs and very light barbell squats.

Tedious work toward (hopefully) a useful goal for a non-woke employer will be a massive quality of life improvement.