Ask HN: How do I switch my career to software engineering?
Hello HN,

I'm trying to switch careers from systems integration (SI) consulting to software engineering, but I have a lot of questions and would greatly value any advice I can get from current software engineers.

Here's my situation:

I graduated from college (undergrad) fairly recently from a top 10 undergraduate business program (which also happens to rank in the top 10 for engineering). At college, I majored in business, but also minored in computer science through the school of engineering. This major-minor combination meant that my coursework involved core business classes with many business electives, as well as core computer science classes with an upper-level CS elective. I performed a lot better in the CS classes because I found the material much more interesting and challenging, and I often scored well above the curve on CS exams - even in the "weeder" classes. Looking back, I should have switched my major to CS.

As a result of my undergraduate education, I have a pretty solid foundation in computer science - OOP, algorithms, data structures, memory management etc...

During college, I also ran a web development business and earned a reasonable amount of money to cover my basic living expenses, so I'm very familiar web application development. This business also involved working part-time at a web technology firm creating Flash web applications (back in 2007), and working with advertising agencies to implement concepts from designers.

Since college, I have worked for about 1.5 years at a large SI consulting firm. I chose to work at this firm because I thought SI consulting would be a good compromise between business and computer science. But I was wrong - my passion lies in coding and solving difficult technical problems. Many of my co-workers at this firm majored in some sort of engineering, but they work here because they didn't want an engineering job. I'm the opposite - I want an engineering job.

In consulting, it's typical for consultants to go out to dinner or to the bar after work. Instead of doing this, I come back to my hotel room (as soon as I can get out of work after an 11-hour day - 6:30ish) and build Ruby on Rails / AJAX web applications. I read HN religiously and enjoy learning about new technologies and languages, whereas the consultants I work with seem allergic to code.

I don't suck at consulting, either - I was rated among the top 10% of consultants at my level within the firm, but that doesn't stop me from disliking it.

I've tried to "stick it out" in my current job, but I don't see a future for myself at this firm. I don't aspire to become a manager or executive, and I don't enjoy my work.

Nevertheless, I understand CS very well and I've researched CS interview questions. I'm confident I can pass a software engineering interview using pseudocode (I could probably manage in a coding language, but I don't code in my current day job, so there would be lots of syntax errors).

Furthermore, since I work on software implementation projects, I have a good understanding of the software development lifecycle (requirements traceability, testing, functional designs, etc...).

Here are my questions:

1.) How do I go about approaching companies to obtain a software engineering job? Is a CS minor going to put me at a significant disadvantage compared to the CS majors, given my experience?

2.) I apologize if this sounds arrogant or naieve (given my situation), but I want to avoid becoming a "code-mokey" and work somewhere with opportunities for advancement. How do I avoid "dead-end" coding jobs? (or do they even exist?) Please set me straight if I'm completely off-base here.

Thanks for reading, and thank you in advance for your advice.