Job Search

That’s right I’m looking for a new job! I’m being picky though. I’ve already got an awesome job in scientific Python that’s not in California, so I’m looking for a position that is in California. I’ve already got a couple of good leads at San Francisco tech startups (wish me luck!), but if anyone knows of other positions using Python, especially supporting scientific work with Python, I’d appreciate a pointer! Thanks!

A little about me:

See more in my resume and look me up on GitHub, Google+, Twitter, and Alpha. Email me at jiffyclub .at. gmail .dot. com.

Udacity: What Motivates Me?

A recent Udacity blog post asks its readers to describe what motivates them to complete online courses. I’ve completed four of these courses now so I should be in a good position to describe my motivation.

I take these courses for two reasons: to hopefully make myself a better job candidate and to learn cool new stuff from really experienced people.

I don’t have a formal computer science education so Stanford’s AI Class and Udacity’s How to Program a Robotic Car were good (and free) opportunities to learn about topics like search, planning, and filters. I expanded my vocabulary with things like A-star and breadth first search, Kalman and particle filters, and dynamic programming. How to Program a Robotic Car even had us writing programs using these topics, which I found to be a big help in learning them.

Another area I don’t have much experience with is web programming so I took Udacity’s Web Application Engineering with Steve Huffman. It was a fun and practical course. I learned about HTTP requests and responses, cookies, tracking, securely storing passwords, databases, cacheing, and more. I made a functioning web application with Google App Engine.

I didn’t have any trouble staying motivated to finish the courses. I found the material interesting enough that I was always looking forward to the next class. I love the digital certificate I get at the end. (I put them on Dropbox so I can link to them from my résumé.) One advantage I had in the Udacity courses is that I’m already a Python programmer so I could focus entirely on the content of the courses without the language getting in the way. (The instructors of How to Program a Robotic Car went out of their way to make their code as un-Pythonic as possible, though. I think to make it a bit less intimidating to people coming from other languages.)

The Udacity folks have been experimenting with classes with and without deadlines. The current MO seems to be to have deadlines the first time a course is offered and then leave the same material up and offer the class without deadlines thereafter. (The final is still scheduled with a deadline.) I think my wife really likes the deadlines and schedules because it means I can only spend so much time on a class in one week and I can point to a definite point in the future when the class will be done. Left to my own devices I would probably try to finish these courses in one short burst. I also feel like the deadlines prevent me from indefinitely putting the courses off.

Whether these courses will help me the next time I go looking for a job remains to be seen. Udacity is starting to open up info on its students to companies looking to hire but I doubt I will stand out from the other computing industry professionals taking these courses (and judging from the forums there seem to be a lot of them). I can say, though, that I’ve learned a lot and enjoyed doing it. Next up: Software Testing: How to Make Software Fail.

Selling an Unusual Skillset

I have degrees in Aerospace Engineering (B.S.) and Astronomy (M.S.) but these days I make my living as a software engineer (at an astronomy institution). I like programming and I plan to make a career out of it in one way or another. During my visit to Toronto multiple people asked me: if I had time traveling powers, would I go back and get a computer science education instead?

The answer is, I guess, yes. Especially for my undergraduate education I wish now that I had taken computer science. I feel a bit encumbered on the job market because I don’t have a CS degree. Going to school to get a CS degree is still an option but I’m not sure whether my career development effort would be best spent there, on contributing to open source projects (like AstroPy), or even contributing to something like Software Carpentry. (To work on my education in the meantime I have taken the AI Class and CS373 from Udacity. CS253 starts April 16.)

Though software is my passion, I like science and if I could make a good living combining the two that would be ideal. Maybe it’ll happen! But I’m not a computer scientist, and I’m not a PhD scientist, so how am I going to sell myself the next time I’m looking for a job? I think I have a few things to offer:

Adaptable: I’m comfortable working outside of a set comfort zone.

Versatile: I can communicate easily with a lot of different groups and handle a lot of different tasks. Physics, calculus, data, stats, plots? I can do that.

I Can Learn: I’m more or less a self taught software engineer and I can learn new skills in a hurry, without a lot of help. (Though I love working with someone.)

I Can Teach: Grad school means being a TA and I always got high marks from my students. Plus, I actually enjoy it.

I Can Code: If I couldn’t, why would anyone hire me?