How do you move from chemical engineering to software development?
June 29, 2007 11:57 AM   Subscribe

Can you help me change careers? I'm a chemical engineer. I did well in school, got good grades, went back for a doctorate, graduated, got a job in a big company with a cozy salary and nice perks. And then, two years later, I hit a wall. I went through an "America Beauty" moment. I stopped enjoying what I do and found myself almost everyday running home to learn/work on software, to what my wife calls "computer stuff". [more inside]

I realized that there was no point in continuing like that, unhappy with my profession. Life is too short, right?. And I decided to move my career to somewhere in the software development world (and hopefully for the web).

I bought books. I taught myself Python, Ruby (and Rails), I earned a certificate on Java Programming from an extended education institution. I've read books on algorithms, software design, OO programming. I built a couple of (simple) web applications to showcase my skills with Rails.

I did all this but I don't know how to go from here. I don't have experience as a developer in a "real" company. I don't have a network that can help me move easily. I've searched for jobs online with no success. I worry that having a doctorate in another field is seen as an obstacle even though I try to position it as an advantage (problem solving skills, self-motivated, ...) Thought about going to school for a Comp Sci degree but that's not a short-term possibility.

Can you give me any advice? Did you ever change careers? How did you go about it? Have you ever interviewed people for "programming" jobs? What were you looking for?
posted by vega to Work & Money (22 answers total) 4 users marked this as a favorite
Could you work as a developer within chemical engineering (or in a related-skills field)? In a lot of specialist companies, finding developers that "get" the subject matter is a tall order, and you might find yourself ahead of the back despite a lack in experience.

Your career change could also be a plus point for you -- if i was hiring I wouldn't dismiss someone with such a demonstrable passion for a field and eagerness to learn.
posted by ukdanae at 12:07 PM on June 29, 2007

I'm curious what exactly made you stop enjoying your chemical engineering job? When you're working on your own web-design project that you're passionate about, it's relatively easy to be super motivated, but when you're doing a 9-5 programming job (as I do), you may find it isn't quite as sexy.
posted by mpls2 at 12:08 PM on June 29, 2007

How big is your current employer? If they have a substantial IT dept an internal move is probably your path of least resistance. Find the software development manager and buy him lunch while you casually pick his brain about software development within the company. If it goes well let him know that you'd be interested in talking to him the next time he needs a developer.

Whether or not you tell your current boss about this is dependent on your boss. If he will be supportive he might be able to help, otherwise the less he knows now the better. When there is an actual opportunity to pursue internally you'll need to talk to the current boss and clue him or her in.
posted by COD at 12:15 PM on June 29, 2007

I second ukdanae ... I read somewhere that it's easiest when changing careers to move to either (1) a new role in your existing field, or (2) the same role in a different field. Since you are looking to change roles, I would start sending inquiries about developer positions at any chemical engineering / pharmaceutical companies you possibly can.
posted by tastybrains at 12:23 PM on June 29, 2007

I would look for a job as a with a company that makes software for chemical engineering. Possibly web-based software. Sounds like a product management job might be good for you - your degree and experience would give you the functional side and an your recent technical learning would give you the technical side.

Try looking at the companies in this google search.
posted by charlesv at 12:24 PM on June 29, 2007

Keep in mind that working with computers at home has a tremendous advantage over doing so professionally in that you get to work on the interesting stuff and ignore the boring stuff. As a profession there's an awful lot of mind-numbing maintenance work that someone, especially an entry-level someone, needs to do.

Are there any programmers in your social or professional network? I'd recommend having a chat with them about what their day really looks like (and since you're looking at web-related things, how long that day is) before you head that way.
posted by mendel at 12:38 PM on June 29, 2007

Both to second what mpls2 said, but also a cry of dissent: To paraphrase what someone famous once said about astronomy, "A career in web programming is a great way to screw up a lovely hobby."

How positive are you that you're not just tired of where you are working and are seeking some kind of change, and think your hobby is the path of least resistance? While I admire your motivation to make your life better, perhaps a different job in your field is the answer, a job where you can apply your new skills. Have you thought of the petroleum industry? They are undergoing a tech revolution now, a major turnover due to retirement, and many companies would KILL for a chemical engineer who can understand technology, especially in the minor companies.

Good luck! But remember: while the world isn't short of web developers, it IS short of good chemical engineers.
posted by barchan at 12:38 PM on June 29, 2007

I can't reinforce the comments by mpls2 and barchan enough. You may love your new career, but loving your hobby is not indicative of that.

Case in point: I am an amateur musician. I had an opportunity to compose music for a project, and for that particular piece it was a job -- and it remains one of the most miserable job experiences of my life, because I had to spend so much time fighting to keep the piece cohesive and effective in the face of managers who knew nothing about music (or how to communicate about it) that I vowed never to compose professionally again unless I had creative control -- which is hard to come by.

So I continue at my career (which sucked at the time, but now is *awesome*, because the problem at the time was the place and people, not the career) and continue to enjoy doing music as an amateur.
posted by davejay at 12:54 PM on June 29, 2007

Nthing alot of that said before me. Software (and web) development for a living is considerably different than doing it as a hobby. When doing development as a hobby, you don't have to worry about customers always changing their minds, physically impossible deadlines, inept managers wouldn't notice good, clean code if it bit them but think a project is a failure because the background color is wrong, etc etc. Instead, I'd first look at why you grew tired of your old job. Was it the people, the specific task, the management, company policies, etc? These are important things to be aware of when considering drastic life altering career choices, and could instead point you into a role that uses your current skill set that you're happy with, and will leave you enough time to pursue your development hobbies as a happy person.
posted by cgg at 1:01 PM on June 29, 2007

Could you be a freelance web developer in your spare time? If you built a small business around your web development skills, it would look much better on your resume and you'd also get an insider's view on what it's like working for bad clients.
posted by PFL at 1:08 PM on June 29, 2007

[I am not a programmer.] Talk to the people you work with. If it is a big company, they might have a good job for you interfacing between programmers and engineers. Or, maybe you could think of something you could program that would make your job, or your boss's job, easier, and ask to program that some of the time - that way your company keeps their experienced man, and you get to do something interesting/challenging, and figure out if you like it. Sometimes companies don't want to lose people and are willing to work with you. Actually, most of the time, because recruiting and training is expensive.
posted by dpx.mfx at 1:11 PM on June 29, 2007

Write your own chemical engineering software and sell it.
posted by caddis at 1:13 PM on June 29, 2007 [1 favorite]

I think there is a lot of good advice here.

I'm guessing that, one way or another, you'd benefit from some mentoring to compliment what you've learned on your own. You might or might not get that if you find a programming job, so whether or not you go that route, you might want to get involved in an open source project.

Identify projects that interest you. Look at the source, given your existing knowledge, does the quality seem high? Is it clear, consistent among committers. Find out who the gatekeepers are. Are they approachable? Are they willing to suggest small projects that you could work on to get up to speed? Are they willing to discuss design with you, as someone eager to learn from them, before you start your implementation? Are they willing to give you, as an appreciative protege, detailed feedback before accepting or rejecting your contribution?

Don't worry about doing some boring work on a project that interests you as a whole. It'll be good experience to see how much you like programming for the sake of programming (I know some guys who are just happy to code, provided they have a decent spec, and are shielded from too much crap. I know other guys who don't want to work on things that don't interest them 90% of the time).
posted by Good Brain at 1:37 PM on June 29, 2007

the doctorate is working against you because they may feel that you are expecting more $$ given your doctorate than your level of applicable experience would allow.

Are you in touch with technical recruiters? Make it clear to them that you're looking for entry to intermediate level positions and that you aren't expecting to make 100/k a year.

don't worry about taking an entry level job - most companies hire on a 3-6 month contract basis so you wont be stuck with anything you don't like for too long. once you get a bit of experience with actual production environments and the nuances that go with them - using a source code repository, working on the same code with 5 other guys, being polite about other people's preferred code cosmetics (indentation and line breaks etc) - you can start expecting something challenging and rewarding.

my advice - above all - is to be persistent. There is enough demand out there that even folks with insufficient experience can sometimes get through screening to the technical interview portion which is where you had better shine like a meteor.

fwiw - i had a bit of luck with and less with craigslist
posted by nihlton at 2:28 PM on June 29, 2007

Write your own chemical engineering software and sell it.


IAAP (and shit, I'll even be YP if the project's right). I cannot agree more with the comments above that working, as an employee, in software development can easily become the least rewarding and most irritating way to spend 8 (or 10, or 12) hours a day.

As people have said above, writing for your own projects tends to be very easy. You can make all the design decisions; you can choose patterns, abstractions, and tools that make you comfortable and improve your workflow; you can take as much time as you need; no managers constantly coming by your cube to make stupid comments about the alignment of the toolbar while you're deep in the zone trying to figure out why that pointer is NULL.

Take your huge investment in chemical engineering domain knowledge, and turn that into profit for you, not some other damn boss. You can make bank on a good bit of never-before-seen CE software... or, you can sit in the next cube over from some pimply-faced twenty-three year old (like me) making peanuts (like me).
posted by Netzapper at 4:35 PM on June 29, 2007

IANAP but many years ago I worked with software developed in an academic environment and found there was a big difference between something that basically worked when you knew what you were doing and something that was robust enough to stand up to ignorant users and/or be maintained over time.

Just wondering it would be helpful to volunteer to help a nonprofit that needed your computer skills - you might learn a lot from having a real client and real users.
posted by metahawk at 5:06 PM on June 29, 2007

One other thought - depending on where you live, there might be many programmers in your network if you connect back to fellow college classmates, parents of your children's friends, your church or synagagoue or other non-professional affiliations.
posted by metahawk at 5:09 PM on June 29, 2007

Being a programmer is basically not a rewarding career, unless you own the company and sell your program in volume. You are a cog, and there are so, so many replacement cogs, very young, and very willing to work long hours, to replace you. Uggh. Chemical engineering on the other hand is quite a bit more rarefied field, especially at the piled higher and deeper level. Programming is like pumping gas versus head mechanic when compared to chem E. Other than starting your own company this is a terrible career path for you.
posted by caddis at 6:16 PM on June 29, 2007

IANAP but I do have a chem engineering degree and work in software development, but from the business analyst side. I work in the hazard communication/chemical regulatory field (MSDSs, etc) and a chemical background is immensely helpful. I agree with the above posters who tell you to check out software development in the chemical industry, because there are a number of good companies out there. There are especially some upcoming chemical regulations which, in my opinion, mean there will be plenty of work in this area for the next few years.

my email's in my profile, if you want more specific information.
posted by cabingirl at 7:39 PM on June 29, 2007

You should remember it is quite remarkable that self-made programmers exist at all. A self-made chemical engineer would be laughed out of the resume stack.

I believe you have severely under-estimated the difficulty developing professional-level programming skills. A three-year undergraduate degree is the fast path to becoming a professional programmer. Through any other path, you should expect to take longer.

I have one friend who took the long road. He started with personal project, followed by small programming contracts. It took a while before he could land an awful, unstable, underpaid, sub-entry-level programmer position. There, he did a kind of repetitive mindnumbing programming that college graduates refused to do. It is only after a series of such positions that he became a credible professional programmer with a decent job. The whole path took five or six years.

Why would you expect it to be faster than college? Programming is hard, there is a lot to learn.

I am guessing that developing your Rail application was comparable in difficulty to a second semester college homework. While I applaud you getting so far on your own, it is important to put your achievements in perspective.

I encourage you to continue developing your programming skills, perhaps with a longer-term outlook. In particular, you should adopt a long-term programming project. Pick something small that will grow gradually over many years. Through this project, you will encounter complexities that do not appear in smaller projects, and gain the essential skills of code maintenance and interfaces design.

Make your project's source code available through your web site. Your future interviewer will want to read it before he meets you. You can tell a programmer's skills by the code he writes of fun. In general, lots of people listen to Joel on interviewing programmers. You might find his writing interesting.

You should treasure your expertise in chemistry. It will be valuable as a programmer. You could code for a team of chemists, or advise about chemistry for a team of programmers. This will inform your job search, and, most importantly, it will orient your learning efforts. There is little intersection between the accidental intricacies of Web development tools and the mathematical difficulties of chemistry algorithms. You should drop the former and focus on the latter.

There are numerous resources where to continue learning.

You could do a master in computer science, rather than an undergraduate degree. A friend of mine followed a undergraduate degree in mathematics with a master in computer science. He landed a job developing intricate physics simulation engines with a team of computer science Ph.D.'s and physics Ph.D.'s. Master's degrees can be competed part-time, and can have more flexible schedules and starting dates than undergraduate degrees.

A different friend of mine, a chemist like you, took programming classes at the nearby university for free, without registering, simply by asking the teacher if she could sit in class, or "vagabond", as it is called.

On your own, you could follow the OpenCourseWare computer science classes at MIT. Many of their courses have their entire semester available on video.

Similarly, most of the computer science professors at Ivy League universities post enough of their course content, you can follow along at home. The CS16 and CS17 sequence of classes at Brown University is excellent, and quite challenging. It will take your programming skill beyond what you could learn in books.

You could enroll in the perpetual programming competition TopCoder. It is a fun way to sharpen your programming skill, it will measure your progress as a programmer, and it will showcase your competency to potential employers.

Finally, as a Ph.D. graduate, I believe you will take great joy in learning the powerful mathematical platforms out there : MatLab, Mathematica, and Maple. These are the tool of choice for the distinguishing computational chemist. Truly, there is more to life than Ruby on Rail.

Computer programming can be a uniquely exciting job. It can take decades before the drudgery overcomes the excitement, if it ever happens.

I wish you the best of luck.
posted by gmarceau at 8:28 PM on June 29, 2007 [3 favorites]

go to a career consultant. talk through with them what you want, do some interviews. from 2 interviews at different firms, i bet you will work out if u really want to pursue it, or if it would never work..
posted by edtut at 9:28 PM on June 29, 2007

Response by poster: Tons of great advice here. Some responses to comments.

Is it the present job or the profession that did it?
This is a good point and something that career-changers must take seriously. In my case, I don't dislike my job, and this may have accelerated the decision but nothing else.

Hobby and day-job are two different things.
This is true. I don't idealize a career in software dev. I'm sure it has infinite annoyances. Same as ChemE. The good stuff usually overrides the annoyances and so you put up with it. In my case I want to leave the "process engineering " side of ChemE and like other people have said, it makes a lot of sense to find a somewhere in between ChemE and software since that's something that I enjoy (maybe developing ChemE software, doing CAD for another company...)
posted by vega at 11:46 AM on June 30, 2007

« Older Look Me In The Eye & Tell Me...   |   Pie-Off Newer »
This thread is closed to new comments.