Before I get into it, I'd like to say that I'd greatly appreciate any thoughts or advice, especially if you have any experience with EE or CS graduate admissions.
I have just completed my third year as an undergraduate electrical engineering student at a top 20 engineering school, and I am interested in applying to a Masters in CS or EE. Starting in the last year of high school, I went through an intense mental health struggle related to a medical condition; psychologists warned me when I was a kid that this might happen at some point and would take years for me to overcome. My parents and I have kept the medical condition and my lifelong experience with it secret from the rest of the family. I intend to keep it private from admissions officers too. The situation was worsened by my parents' "ineffective" and "damaging" (in my psychologist's words) way of dealing with my mental health struggle while applying high academic pressure on me. My major-field GPA could have been considerably higher if I hadn't gone through the major struggle to find meaning in life. It became hard for me to care as much about outperforming my peers as I used to, and I focused more on my mental and physical health. I earned a C in my first year during the semester when my parents threatened to disown me after discovering that I'd secretly reached out to a mental health professional (they don't trust them). I think I might've earned an F in an EE class this past semester. I am convinced that if I hadn't gone through this process, the risk of self-harm or potentially even suicide would be high later on in life. So the good news is: I'm not worried about that any more. The bad news is: I had perfect academics until the end of high school, and now I feel like I've undone all my past hard work. My parents refuse to let me graduate one semester late so all four years of grades can be considered.
My current summer internship is for software engineering at a startup, and I have been in a computer science research lab since January (although I didn't do much this past semester because I was too busy). I am resuming my research work this week, but I'm not sure if I've done enough to ask my professor for a reference letter. I also have great recommendation letters from computer science professors given that I've done considerably better in CS than in EE. Grades put aside, I want to work a job involving both EE and CS (so probably firmware/embedded software). So an MS in CS would probably be best, all things considered, but CS MS is usually harder to get into than MSEE. If I apply at the end of fall semester this year, that means I have just one semester to really turn this ship around. I will also apply for full-time jobs at the same time, but I don't know how that will go.
Does anyone have advice on what I can say to graduate school admissions officers to explain the low grades? Do I have much of a chance at top 20 MS CS programs? Along the same vein, are there any suggestions for what I can do to maximize my chances of admission? There's a summer online CS course (not crucial to CS jobs though) that I dropped to devote more time to my remote internship, but I'm considering enrolling just to strengthen my CS background and boost my GPA.