what to do in 2 year gap before CS PhD I am currently an undergraduate student in computer science, rising senior.

I have had extensive research experiences throughout college at competitive universities and research companies (but no publications).

I do not feel prepared to pursue graduate school right after college (due to burnout, health concerns, and general need to prepare for PhD requirements such as recommendations, GRE, etc). 

I also come from a low income family, and I would like to take a couple of years to save money, as well as improve my math skills and explore the subfield of CS I would really like to pursue in graduate school. 

I know there is some debate surrounding the role of gap years in students’ will to pursue grad school, but I am certain this is the best choice for me. 

I would like some advice on what sorts of roles to pursue post-college.

The answer to this question hasn’t been so straightforward for me because I have a couple of conditions that are especially relevant to my needs and aspirations:


  
  I want something that offers a competitive salary (80k-100k a year in the Boston area)
  I want to start working immediately after I graduate college
  Unfortunately, I do not have the option of pursuing an unrelated activity for the 2 year duration (like, say, backpacking in Europe or
  teaching in China) due to my financial circumstances
  I want to remain a competitive grad school applicant
  


I’ve considered a couple of options:


Working as a software engineer at a company



  Though I have limited experience in development (because every role
  I’ve ever had since the beginning of college has been
  research-oriented), I think I can use the coming year to update my
  engineering skills and land a role.
  
  Pro: This sort of role would likely offer a more competitive salary
  
  Con: I’m not sure it would make me more competitive candidate for
  graduate school



Working in research at a university or national laboratory



  Because I have extensive research experience from college, I think I
  have a good chance at landing a role like this.
  
  Pro: I think this would make me more competitive for graduate school
  
  Con: The salary would likely not be competitive



Working in research at a research company



  This would be the best option, but the hardest to land.
  
  Pros: Likely offers a competitive salary, and will likely make me more 
  competitive for graduate school
  
  Con: I don't think I can land a role like this easily after college, as they usually require at least a masters degree and favorably a PhD, with extensive research experience


I would just like some advice on this situation. Are there some other options I could consider? Is a software engineering role my best bet? If you've been in this situation and in this particular field, what has been your experience? What did you decide to do?
A software engineering position probably doesn't improve your competitiveness for graduate school, unless your graduate school wants you to code (which isn't a requirement for a PhD in computer science). Is coding something you'd be interested in? If so, then the software engineering route would be advantageous. Perhaps more importantly, the software engineering route will make you more competitive to a research company after graduate school.