[OT] - Career Advice


#1

Hey everyone - I have a career-related question for you all.

I currently work full time as a Sr. Sys Admin, and have been doing
systems work for about 9 years. I have been doing web development
work on and off during this time, and have written quite a few
internal applications and scripts for several companies I worked for.

I have never worked in the full time capacity of a software developer
/ design / etc, but really want to break into that field.

I have been using rails since the 0.13 release, and have released a
few apps out there for public consumption. I love this type of work,
and want to grow in that respect.

Does anyone have any advice as to how I may break in to the field?
Are there any sites / resources that might give some guidance?

I’m really curious as to how you all display things such as work
history and code samples to prospective clients.

I know this is a broad question, and any and all advice will be
appreciated.

Thank you,

Michael G.


http://www.michaelgorsuch.org


#2

I’d suggest putting together a development-focused resume and perhaps
a portfolio with “vanilla” versions of the internal apps you’ve
created (unless you retained the rights to the code) and start
hunting. You could probably get away with screen shots and functional
descriptions of each app if the source isn’t available.

In my experience, small companies tend to be a little more lenient
towards formal education (in my experience anyways) and
platform/language than larger companies, but expect more
upward-management for your projects if they don’t have a project
manager.

An added plus for you is your sys experience – small shops tend to
have jack-of-all-trade types and having the confidence to manage your
own servers, back up your data, and deploy is a bonus.

As for education, it depends on what platform/technology you want to
specialize in – Microsoft would be MCSD/MSAD, Java has several
certifications as well – or how much you want to invest in edu, like
taking some college courses or going for a Comp. Sci. degree.
Bottom line, if you feel comfortable with your development skills,
then go for it.


#3

Thanks for the pointers. I need to really focus on my portfolio.

I do have a BS in Computer Science, which probably counts for something.

Question: many potential employers ask for code samples. How do you
approach that with current commercial projects that you own the code
to? Do I just show small pieces and functions? Do I tar up the
entire app? Is that safe?

On 4/3/06, GravyFace removed_email_address@domain.invalid wrote:

manager.
then go for it.

/ design / etc, but really want to break into that field.

removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails


Rails mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails


http://www.michaelgorsuch.org


#4

If you have a BS, you should be golden for educational requirements,
unless of course you’re applying somewhere cert-heavy.

As for code reviews during an interview, I’ve never really had to do
one at the “code level” – unless its some fancy algorithm you
created, usually a portfolio with PDFed project screenshots and
functional descriptions/flow diagram is good enough, especially if you
have a reference who was involved with the project to back it up.

However, zipping up the source (I’d use zip, unless you’re going to
include the tar binaries with it) and burning it to a CD, “just in
case”, wouldn’t hurt.

They may make you do some coding exercises though – I’ve done a few
of those and they’re surprisingly difficult when you’re under pressure
at an interview.


#5

I think GravyFace has a lot of good advice here. Being a small shop
and having had to do my fair share of interviews, I can speak a bit
from the other side of the desk. Now, granted, everyone has different
approaches. I do generally ask for code samples, but I’m never really
interested in a whole application, and you need to be careful about
violating any copyrights. The key for me is that it helps me tell a
little bit about you from the code. For instance:

  • Is your code following “best practices” in the industry, or does it
    look like a copy and paste from some help text.

  • Are you conscientious about standardardization throughout. In other
    words, is there consistency in your code. Do you approach naming
    variables the same way.

  • Are you sensitive to scoping issues or is stuff all over the place?

  • Do you understand what you’re doing. This one is a hard one to
    explain, but often you tell by the code if someone is really grasping
    it or not. At times it has that look of “omg I can’t believe I got it
    to run, don’t touch it.”

  • I also like to see UI code. In a small practice we have to do it
    all. I don’t expect you to be a designer, but how did you implement
    that design?

For us I could care less about a degree; even less about certificates.
And like GravyFace said having systems experience is a big plus,
because in a small shop we’re doing it all. So when it comes time to
do deployment or setup the Virtual Directories, etc… it’s on you.

Good luck.

Michael


#6

On Apr 3, 2006, at 8:37 AM, Michael G. wrote:

Question: many potential employers ask for code samples. How do you
approach that with current commercial projects that you own the code
to? Do I just show small pieces and functions? Do I tar up the
entire app? Is that safe?

Speaking as someone doing a bunch of recruiting right now, a few
things about what I’m looking for in code samples:

  1. Code representative of your capabilities. It will serve a couple
    roles here, firstly to gauge your capabilities as a programmer,
    secondly to set the bar for a technical interview.

  2. Sufficient code that I can get a feel for how you structure an
    application, module, or whatever.

  3. Something which shows that you are excited enough about hacking to
    do interesting and non-trivial things on your own.

I’ve seen quote a few code samples come in which have obviously been
“the project I used to learn rails.” Sometimes this works, more often
it hasn’t as everyone’s initial rails project look awfully similar to
everyone else’s. It is not very indicative of your ability (unless it
actually is, but that is another matter).

Basically, the code sample is the second bar (after an initial phone
screen) to help the tech folks decide if you should be brought in.
The sample will probably be sent off to a senior level engineer
(sometimes scarily senior, just a couple years back John Vlissides
did them for (at least some) software engineers applying to IBM
Research) who is familiar with the technology in the sample.

Send enough code that whoever is looking at it can get a feel for
what your code is like. The reviewer will, generally, treat it as a
semi-formal code review. This will have a very large impact on how
you are perceived technically going into any interview.

Never send code which you don’t own or have explicit permission to
send. Ever. Period. Exclamation point.

Never send code which you don’t own or have explicit permission to
send. Ever. Period. Exclamation point.

-Brian

ps: On this subject, Ning is actively looking for front-end app
developers. Do you like building social software?


#7

Check out the link below, it is an O’Reilly.net article talking about
how to
interview ruby developers:

http://www.oreillynet.com/ruby/blog/2006/03/interviewing_ruby_programmers.html

Josh


#8

Thank you all for your great advice.

I plan to start building a portfolio of code that I’ve written and
reworking my resume.

On 4/3/06, Josh K. removed_email_address@domain.invalid wrote:

Hey everyone - I have a career-related question for you all.
few apps out there for public consumption. I love this type of work,
Thank you,


Rails mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails


http://www.michaelgorsuch.org


#9

I’ve found that code samples are more something you’ll see with web
design and UI shops, less often with backend jobs.

A BS in Comp Sci is handy. As for certs, I have two certifications and
they’ve basically been useless in terms of finding work, but very
useful if you only give yourself one chance to take the test, because
then you’ll really study your brains out. (So to speak.) There’s a
huge difference between being able to use a technology and actually
learning that technology inside out, which is why I’d kind of like to
get more certifications even though I don’t expect them to do me any
good on any pure business level. I never really realized how bad JSP
was until I looked into the certification exam. They basically make
you go through the entire history of the technology like an
archaeologist and when you do, you uncover an entire series of hacks
and mistakes. Bit of a marketing mistake on Sun’s part, really.
They’ve got skeletons in their closet and they’re like, here, memorize
every bone. Good experience, though, if you’re going to be working
with web app frameworks and you want some kind of benchmark to measure
their level of quality (hint hint).

Realistically, though, your central question is how to make a career
change, and it isn’t a huge lateral jump, like nuclear physicist to
pro football player, but it’s still an interesting question. I don’t
really have the answer. I have made lots of similar small shifts,
though, and the way you do those small shifts is really easy, you just
find lots of little jobs and have each one be gradually more and more
different from what you were doing before, til eventually you’re
somewhere entirely different from where you started. If you do a lot
of freelance and contract work, you’ll be able to see a lot more
variety in the work you do. I went from designing presentations in
Powerpoint and Photoshop for broadcast TV ad sales to maintaining
gigantic stock-trading web apps in Perl – but that was during the
dot-com boom, so who the hell knows. :wink: I come from the days of
selling pet food on the Internet, so take anything I say about career
management with a grain of salt.

Personally I’m trying to do something similar with music, which is
just insanely impossible, but my strategy is basically centered on
“just do it,” i.e., just press some records and see what happens. The
app dev version of that philosophy is obvious. If you want to get into
application design and development, the best way to do it is to design
and develop an application. It’s a lot easier to get hired for
something you’re already doing, and that’s true even when you’re doing
it for free.


Giles B.
www.gilesgoatboy.org