Ask HN: How to be a software engineer who works on challenging problems?
I've been a software engineer in a midsized Canadian company for the past 2.5 years. I mainly do application level CRUD work. This work is pretty easy and we're mostly solving business problems, and never really get involved with technically challenging work. I always wanted to work on harder problems that deal with things lower in the stack. However, I'm not sure the process to go about this. My undergraduate degree isn't in CS, nor did I do any research in undergrad. Past few years I've been rigorously teaching myself CS fundamentals. I've read multiple books about databases and distributed systems. I've played around with these technologies in small side projects. But I have no idea how to pursue a career exploring these concepts in a lower level. Any advice for someone like me?
19 comments
[ 3.6 ms ] story [ 48.2 ms ] threadMost projects label their low-hanging-fruit issues with "good first issue". Start there and filter down as required. https://github.com/search?q=label%3A%22good+first+issue%22&t...
1. Don't wait for your job or your industry to give you challenging problems.
2. Figure out which problem domains you find the most attractive.
Learn battery tech and renewable energy
It is not realistic to turn a CRUD job into a low level / "challenging" systems engineering job. If you want a job doing those things, you need to be qualified, apply for, and be hired for such a job, and CRUD experience won't get you very far.
No amount of flight attendant experience will get you a pilot job. No amount of nursing experience will get you a doctor job. Same thing applies here, even if companies doing CRUD work like to interview as if and otherwise pretend that their jobs are a stepping stone to such things.
>It is not realistic to turn a CRUD job into a low level / "challenging" systems engineering job.
Are you implying that this goal is not realistic, and I should just stick to the current work? Appreciate your response!
Of course such roles exist, but you cannot "transition" into them from CRUD.
If you want such a role, you just have to stop doing what you're doing now, look at the requirements for whatever role you want, and meet those requirements. CRUD experience is not one of them.
The classic counterpoint here would be e.g. DHH creating Rails.
You'll learn more quickly on the job, from people with practical experience, and get paid to do it. Your lack of CS degree isn't necessarily an issue, any more than for jobs where you write CRUD. (Of course, some employers will filter you out. I don't know if you could meet visa requirements in a different country, work experience sometimes helps with this)
This is one model for Staff-plus careers, by the way.