Exceptional Rails Developer

Hi all,

I'm the CEO and founder of Academia.edu. We are looking to hire an
exceptional Rails developer to join our VC-funded startup. I have put
the job description below. You can also find out more at our overall
jobs page www.academia.edu and the page for the specific job
www.academia.edu/jobs/software_engineer.

Thanks for your time,

Richard Price, Ph.D
http://oxford.academia.edu/RichardPrice
http://www.linkedin.com/in/richardprice

···

---------

Academia.edu helps academics answer the question ‘who’s researching
what?’. It applies to any research area: you can type in ‘thermophilic
organisms’, or one of 12,420 other research interests, and find out
who is working in that area worldwide, as well as what they are
working on – the latest papers, conferences, blog posts, status
updates etc.

Academia.edu launched 11 months ago, and is now one of the largest
online communities of researchers in the world; we now have 59,074
profiles, and are growing by about 5,000 profiles a month. We have
about 240,000 unique monthly visitors.

We are looking for an exceptional software engineer to join our team.
Academia.edu has a very engineer-driven culture. We describe below how
we think about our culture, and also the qualities of the person we
want to join us.

Professional qualities – you are:
- An exceptional engineer: you are able to innovate at the cutting
edge of web development to overcome the complex challenges that can
arise.
- Product and user experience focused: you are obsessed with creating
a great product, and a great user experience. You feel anguish and
pain when your site is slow, or when your user interface or feature is
bad, and you feel pleasure when the site is fast and intuitive.
- A problem solver: you derive huge intellectual satisfaction from
solving problems. You are always focused on finding the best and
quickest solution to the problem you are working on.
- Technically ambitious: you are the kind of person who enjoys
pushing the boundaries of the technologies you work with. For example,
when thinking about the best UI for a feature, you would have no fear
in considering creating a new JavaScript framework, if that is what is
required to make it work right.
- A finisher: you care about finishing products and deploying code.
You understand that exceptional engineering, combined with exceptional
creativity, are what makes a startup succeed.
- Versatile: you are comfortable tweaking a CSS style or optimizing a
SQL query all in the same morning
- Able to prioritize features: you can look at a ton of possible
features on a whiteboard, be able to add your own ideas to the mix,
and then intelligently choose which one has the highest priority
- Thoughtful about productivity: you think about what working
environments and structures make you optimally productive. You try to
ensure that the right environment and structures are in place for you.
- Dedicated: you are willing to get up at 4am to restart the servers,
and then build something the next day so the servers don’t go down
again
- Personally invested in what you work on: you care personally about
the impact of your work on people around the world

Personal qualities – you are:
- An independent thinker: you are able to learn from people around
you when you need to, and also challenge them when they need to be
challenged
- Inquisitive: you naturally think of ways of improving things that
you interact with
- Creative: you are able to develop new ideas for the product and
enhance the vision of the company
- Excited about Academia.edu: you are excited about building a
platform that could change the way that research is shared and
discovered.
- Keen to have an impact on the world around you: you are keen to be
the one to build the platform behind Academia.edu. You don’t just want
it to happen: you want the challenge of building it yourself.
Positively improving the lives of millions of people via software is
something that really excites you.
- Visionary: you are the kind of person who thinks ‘What will the
world look like in 10 years’ time, and how can we build that now?’

Experience

What is most important, by far, is that you are a quick learner who
can discover and pick up new techniques fast.

- Web development: you have 2+ years of web development experience
- Full stack: you have experience designing and implementing the full
stack of a web application: sysadmin, database implementation and
optimization, application development, front-end CSS, HTML and
JavaScript.
- Scaling: ideally you have some experience scaling an application to
deal with an increasing user base. This is not essential though.

Here are some of the technologies that we work with:
- Ruby on Rails
- ActionScript 3
- Jquery
- Nginx
- PostgreSQL
- HAProxy
- Mongrel
- Memcached
- Scribd/iPaper API
- Facebook Connect

You should be comfortable finding the right tools for the job while
becoming great at whatever tool you're using.

On offer
Apart from an incredibly fun engineering and product challenge, we
offer some nice benefits! You will get a market salary and stock
options. We want to hire someone exceptional, and we want to be
generous with stock options to make this happen. In addition, you will
also get health insurance, any ergonomic chair of your choosing, a
laptop with two huge monitors, and a smartphone with monthly bills
paid.

The job is based in San Francisco. We will help with visas and other
issues relating to re-location. If you are interested to learn more,
please email Richard Price at richard -- at sign -- academia.edu.

Richard Price <richard.price100@gmail.com> writes:

Hi all,

I'm the CEO and founder of Academia.edu. We are looking to hire an
exceptional Rails developer to join our VC-funded startup.
[...]

Task #1: acceptable response time for http://academia.edu

···

--
Brian Adkins
http://lojic.com/

Richard Price wrote:

Hi all,

I'm the CEO and founder of Academia.edu. We are looking to hire an
exceptional Rails developer to join our VC-funded startup. I have put
the job description below. You can also find out more at our overall
jobs page www.academia.edu and the page for the specific job
www.academia.edu/jobs/software_engineer.

I would have loved to apply but I am only "amazing" and not
"exceptional", hopefully someone else within this group will be
exceptional.. I am almost exceptionally amazing but I still have to
level through fantastically amazing"

ilan

···

--
Posted via http://www.ruby-forum.com/\.

Seems to me that a developer who wrote Rails applications in Algol-68
instead of Ruby would really be exceptional!

exceptional |ikˈsep sh ənəl|
adjective
unusual; not typical : crimes of exceptional callousness and cruelty

···

On Fri, Sep 18, 2009 at 7:10 PM, Richard Price <richard.price100@gmail.com> wrote:

Hi all,

I'm the CEO and founder of Academia.edu. We are looking to hire an
exceptional Rails developer

--
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

At least he didn't say "Rockstar" or "Ninja"

···

On Wed, Sep 30, 2009 at 2:08 PM, Ilan Berci <ilan.berci@gmail.com> wrote:

Richard Price wrote:
> Hi all,
>
> I'm the CEO and founder of Academia.edu. We are looking to hire an
> exceptional Rails developer to join our VC-funded startup. I have put
> the job description below. You can also find out more at our overall
> jobs page www.academia.edu and the page for the specific job
> www.academia.edu/jobs/software_engineer.

I would have loved to apply but I am only "amazing" and not
"exceptional", hopefully someone else within this group will be
exceptional.. I am almost exceptionally amazing but I still have to
level through fantastically amazing"

ilan

--
Posted via http://www.ruby-forum.com/\.

I just thought they wanted lots of begin..rescue blocks

···

On Thu, Oct 1, 2009 at 12:59 PM, Rick DeNatale <rick.denatale@gmail.com> wrote:

On Fri, Sep 18, 2009 at 7:10 PM, Richard Price > <richard.price100@gmail.com> wrote:

Hi all,

I'm the CEO and founder of Academia.edu. We are looking to hire an
exceptional Rails developer

Seems to me that a developer who wrote Rails applications in Algol-68
instead of Ruby would really be exceptional!

exceptional |ikˈsep sh ənəl|
adjective
unusual; not typical : crimes of exceptional callousness and cruelty

--
Paul Smith
http://www.nomadicfun.co.uk

paul@pollyandpaul.co.uk

I'd prefer that! I am totally a Ninja! And now and again I work with Rails
too!
But sadly, my black jumpsuit is against most company dress codes.

···

-----Original Message-----
From: Zundra Daniel [mailto:zundra.daniel@gmail.com]
Sent: Wednesday, September 30, 2009 12:45 PM
To: ruby-talk ML
Subject: Re: Exceptional Rails Developer

At least he didn't say "Rockstar" or "Ninja"

On Wed, Sep 30, 2009 at 2:08 PM, Ilan Berci <ilan.berci@gmail.com> > wrote:

> Richard Price wrote:
> > Hi all,
> >
> > I'm the CEO and founder of Academia.edu. We are looking to hire an
> > exceptional Rails developer to join our VC-funded startup. I have
put
> > the job description below. You can also find out more at our
overall
> > jobs page www.academia.edu and the page for the specific job
> > www.academia.edu/jobs/software_engineer.
>
> I would have loved to apply but I am only "amazing" and not
> "exceptional", hopefully someone else within this group will be
> exceptional.. I am almost exceptionally amazing but I still have to
> level through fantastically amazing"
>
> ilan
>
> --
> Posted via http://www.ruby-forum.com/\.
>
>

Well, what's he going to say, "Average"?

We are looking to hire a Mediocre Rails developer to join our could-run-out-
of-funding-at-any-moment startup...

It just doesn't have the same ring to it, I guess.

(Actually, I'd probably apply if I wasn't currently in school. I was just
feeling snarky today.)

···

On Wednesday 30 September 2009 01:45:27 pm Zundra Daniel wrote:

At least he didn't say "Rockstar" or "Ninja"

Why not? It's unrealistic to think every company wants and can afford
the best. Many will have to settle for who they can find.

At a minimum they should include something like "and willing to pay
exceptional wages too!" when asking for an "exceptional" coder. I saw
no such mention.

And finally, to the OP, did you learn something? No? Well here's the
take-away: We programmers all already think we are exceptional. You
won't make less of us apply for a job by trying to single out people
using silly buzzwords. So stop it.

···

On Wed, Sep 30, 2009 at 6:44 PM, David Masover <ninja@slaphack.com> wrote:

On Wednesday 30 September 2009 01:45:27 pm Zundra Daniel wrote:

At least he didn't say "Rockstar" or "Ninja"

Well, what's he going to say, "Average"?

--
Greg Donald
http://destiney.com/

We programmers all already think we are exceptional.

Well, most of us.

You
won't make less of us apply for a job by trying to single out people
using silly buzzwords. So stop it.

That, I'm not sure of.

Ok, silly buzzwords, yes. It seems every marketer ends up using "exceptional"
or "ninja", etc, so it's watered down.

On the other hand, I'd much rather work for a place which values talent
(whether or not they can find it) than one which values rapid-but-buggy
prototypes using the cheapest contractors that money can buy. I'm talking
about best practices versus "I tried stuff until it worked."

I mean, it is nice to occasionally be the smartest person in the room -- or at
least the most knowledgeable. I'm back in school (since I don't have a job),
which means I'm starting at the very beginning -- I'm talking about a class
which will spend a week or two on binary and hexadecimal, along with plenty of
other trivia, before writing a single line of code. It's fun to finish a
weeklong assignment in an hour, or an hour-long assignment in ten minutes.

But I don't really want to spend my life correcting everyone else's mistakes.
As intimidating as it is, I'd much rather work in a place where everyone's
smarter than me, or at least interested in improving, than working in a place
where a bunch of codemonkeys punch a clock -- or worse, a startup filled with
Paula Beans in Aeron chairs with dual-30" monitors.

(That's not a sexist comment, I promise. Google Paula Bean.)

So that's the reason "exceptional" at least got my attention. It shows that
someone is at least pretending they care about learning and improving, about
making their craft an art form, and about doing things The Right Way.

But I'll give you a secret: If you want a buzzword that'll really catch my
attention, throw around words like metaprogramming and Domain-Specific
Languages. Talk about how your product will be fun to work on, and ask for
people who specialize in interesting things like CouchDB or virtual machine
architecture. Mention conferences you send your team to -- both to advertise
and to learn.

In other words: We're programmers. Find out what actually excites us, use
actual technical buzzwords (not marketing buzzwords), and use them properly.
Be a cool place to work, and explain why you're a cool place to work.

···

On Wednesday 30 September 2009 06:54:16 pm Greg Donald wrote:

I could hug you right now

···

On Wed, Sep 30, 2009 at 8:32 PM, David Masover <ninja@slaphack.com> wrote:

On Wednesday 30 September 2009 06:54:16 pm Greg Donald wrote:
> We programmers all already think we are exceptional.

Well, most of us.

> You
> won't make less of us apply for a job by trying to single out people
> using silly buzzwords. So stop it.

That, I'm not sure of.

Ok, silly buzzwords, yes. It seems every marketer ends up using
"exceptional"
or "ninja", etc, so it's watered down.

On the other hand, I'd much rather work for a place which values talent
(whether or not they can find it) than one which values rapid-but-buggy
prototypes using the cheapest contractors that money can buy. I'm talking
about best practices versus "I tried stuff until it worked."

I mean, it is nice to occasionally be the smartest person in the room -- or
at
least the most knowledgeable. I'm back in school (since I don't have a
job),
which means I'm starting at the very beginning -- I'm talking about a class
which will spend a week or two on binary and hexadecimal, along with plenty
of
other trivia, before writing a single line of code. It's fun to finish a
weeklong assignment in an hour, or an hour-long assignment in ten minutes.

But I don't really want to spend my life correcting everyone else's
mistakes.
As intimidating as it is, I'd much rather work in a place where everyone's
smarter than me, or at least interested in improving, than working in a
place
where a bunch of codemonkeys punch a clock -- or worse, a startup filled
with
Paula Beans in Aeron chairs with dual-30" monitors.

(That's not a sexist comment, I promise. Google Paula Bean.)

So that's the reason "exceptional" at least got my attention. It shows that
someone is at least pretending they care about learning and improving,
about
making their craft an art form, and about doing things The Right Way.

But I'll give you a secret: If you want a buzzword that'll really catch my
attention, throw around words like metaprogramming and Domain-Specific
Languages. Talk about how your product will be fun to work on, and ask for
people who specialize in interesting things like CouchDB or virtual machine
architecture. Mention conferences you send your team to -- both to
advertise
and to learn.

In other words: We're programmers. Find out what actually excites us, use
actual technical buzzwords (not marketing buzzwords), and use them
properly.
Be a cool place to work, and explain why you're a cool place to work.

I mean, it is nice to occasionally be the smartest person in the room -- or at
least the most knowledgeable.

I hope to never find myself in that situation. Surrounding one's self
with subordinates is inconducive to learning.

But I don't really want to spend my life correcting everyone else's mistakes.

I have observed time and again the easiest path to never be the
"maintenance" coder is to always be the fastest coder. Smart managers
always place the faster coders out in front doing the quick
prototyping of the new projects.

As intimidating as it is, I'd much rather work in a place where everyone's
smarter than me

Always.

where a bunch of codemonkeys punch a clock

That's the worst, to have to work with uninspired clock-punchers sometimes.

···

On Wed, Sep 30, 2009 at 7:32 PM, David Masover <ninja@slaphack.com> wrote:

On Wednesday 30 September 2009 06:54:16 pm Greg Donald wrote:

--
Greg Donald
http://destiney.com/

I seccond Zundra's sentiment.
If ever you find yourself in a supervisory position, looking to hire
developers -- I will work for cost of living (plus insurance).
And I sympathize with your school experience, thats where I'm at now. I must
have found 30 ways to generate fibonacci numbers.

···

On Wed, Sep 30, 2009 at 7:32 PM, David Masover <ninja@slaphack.com> wrote:

On Wednesday 30 September 2009 06:54:16 pm Greg Donald wrote:
> We programmers all already think we are exceptional.

Well, most of us.

> You
> won't make less of us apply for a job by trying to single out people
> using silly buzzwords. So stop it.

That, I'm not sure of.

Ok, silly buzzwords, yes. It seems every marketer ends up using
"exceptional"
or "ninja", etc, so it's watered down.

On the other hand, I'd much rather work for a place which values talent
(whether or not they can find it) than one which values rapid-but-buggy
prototypes using the cheapest contractors that money can buy. I'm talking
about best practices versus "I tried stuff until it worked."

I mean, it is nice to occasionally be the smartest person in the room -- or
at
least the most knowledgeable. I'm back in school (since I don't have a
job),
which means I'm starting at the very beginning -- I'm talking about a class
which will spend a week or two on binary and hexadecimal, along with plenty
of
other trivia, before writing a single line of code. It's fun to finish a
weeklong assignment in an hour, or an hour-long assignment in ten minutes.

But I don't really want to spend my life correcting everyone else's
mistakes.
As intimidating as it is, I'd much rather work in a place where everyone's
smarter than me, or at least interested in improving, than working in a
place
where a bunch of codemonkeys punch a clock -- or worse, a startup filled
with
Paula Beans in Aeron chairs with dual-30" monitors.

(That's not a sexist comment, I promise. Google Paula Bean.)

So that's the reason "exceptional" at least got my attention. It shows that
someone is at least pretending they care about learning and improving,
about
making their craft an art form, and about doing things The Right Way.

But I'll give you a secret: If you want a buzzword that'll really catch my
attention, throw around words like metaprogramming and Domain-Specific
Languages. Talk about how your product will be fun to work on, and ask for
people who specialize in interesting things like CouchDB or virtual machine
architecture. Mention conferences you send your team to -- both to
advertise
and to learn.

In other words: We're programmers. Find out what actually excites us, use
actual technical buzzwords (not marketing buzzwords), and use them
properly.
Be a cool place to work, and explain why you're a cool place to work.

I'm more likely to hire based on "I tried stuff until it worked" than "I've been taught best practices". Best practices get stale pretty fast whereas curiosity and persistence are the gifts that keep on giving :slight_smile:

Ellie

Eleanor McHugh
Games With Brains
http://slides.games-with-brains.net

···

On 1 Oct 2009, at 01:32, David Masover wrote:

On the other hand, I'd much rather work for a place which values talent
(whether or not they can find it) than one which values rapid-but-buggy
prototypes using the cheapest contractors that money can buy. I'm talking
about best practices versus "I tried stuff until it worked."

----
raise ArgumentError unless @reality.responds_to? :reason

This has been a lot of fun reading the replies. As a retired programmer,
not looking for a job, I am glad that you guys are perceptive and only have
egos that are so so large. The biggest problem with taking a new job
anywhere, not just VC-startups is that you might have to move to a strange
place and that can make any programmer feel pretty insecure and
intimidated. What if the VC-startup fails? And are you working by
yourself? That is the way I felt when I kicked the security of programming
employment at a large financial business and went into contract
programming. It doubled and later tripled my income but the stress level
went up too. Working for a VC-startup has all of the risk of contracting
with none of the benefits.

I did have a bad experience with a B2B VC-startup on a 6 months contract as
a contract programmer, my second contract. In order to cut corners the
programmer manager refused to require the business partner and programmers
to document the project. No business design documents. No systems design
documents. No program designs documents. It was a nightmare. I was one of
the few native born Americans in the systems shop. And to top it off most
of the programmers were from that part of India where they clip the ending
consonants off their words. I couldn't understand 50% of what they said.
I moved over to work with a group of Ukrainian and Russian emigrants. I
could understand the Ukrainians but not a Russian woman. The poor woman was
terrified of what was going on in the department and totally lost and when
she got nervous she would start talking so fast I couldn't understand
anything she said. I felt sorry for her. But I was glad when the contract
ended.

The job sounded like a worthy one, one that is good for a first time job to
explore and learn all about reality. And the project does sound like
something socially useful. A sort of common knowledge system that is very
popular in artificial intelligence. See Conceptnet3, WordNet, or CYC.
Whether it would ever be profitable or allow the programmer who fills the
slot to use it as a spring board to better pay or better job is anyone's
guess. Academic environments, or ones close to academic environments, can
be a good way to break into the professional programming business. My first
job as a programmer when I got out of the Air Force (I was trained as a
programmer in the Air Force, my degree is in chemistry), was a programming
position with the University of Florida.

But if you already have a job, the only thing good about a job offer from a
VC-startup is being able to use it as leverage to get a pay raise from your
current boss and, more importantly, transferred from nice to have jobs that
are expendable to part of the essential development team.

As for using silly buzzwords, what the hell. At least the CEO wants the
best. That is always a good thing. But he might be more successful if he
tries to "borrow" one of the programmers from a university that is looking
to cut the budget of its programming staff. And they all are looking to do
that. Of hire a undergraduate programming major part time.

Hope this helps both the CEO and, in good humor, the rest of you Yahoos.

No animals were harmed in writing this pithy post.

No Sam

···

On Wed, Sep 30, 2009 at 9:51 PM, Josh Cheek <josh.cheek@gmail.com> wrote:

On Wed, Sep 30, 2009 at 7:32 PM, David Masover <ninja@slaphack.com> > wrote:

> On Wednesday 30 September 2009 06:54:16 pm Greg Donald wrote:
> > We programmers all already think we are exceptional.
>
> Well, most of us.
>
> > You
> > won't make less of us apply for a job by trying to single out people
> > using silly buzzwords. So stop it.
>
> That, I'm not sure of.
>
> Ok, silly buzzwords, yes. It seems every marketer ends up using
> "exceptional"
> or "ninja", etc, so it's watered down.
>
> On the other hand, I'd much rather work for a place which values talent
> (whether or not they can find it) than one which values rapid-but-buggy
> prototypes using the cheapest contractors that money can buy. I'm talking
> about best practices versus "I tried stuff until it worked."
>
> I mean, it is nice to occasionally be the smartest person in the room --
or
> at
> least the most knowledgeable. I'm back in school (since I don't have a
> job),
> which means I'm starting at the very beginning -- I'm talking about a
class
> which will spend a week or two on binary and hexadecimal, along with
plenty
> of
> other trivia, before writing a single line of code. It's fun to finish a
> weeklong assignment in an hour, or an hour-long assignment in ten
minutes.
>
> But I don't really want to spend my life correcting everyone else's
> mistakes.
> As intimidating as it is, I'd much rather work in a place where
everyone's
> smarter than me, or at least interested in improving, than working in a
> place
> where a bunch of codemonkeys punch a clock -- or worse, a startup filled
> with
> Paula Beans in Aeron chairs with dual-30" monitors.
>
> (That's not a sexist comment, I promise. Google Paula Bean.)
>
> So that's the reason "exceptional" at least got my attention. It shows
that
> someone is at least pretending they care about learning and improving,
> about
> making their craft an art form, and about doing things The Right Way.
>
> But I'll give you a secret: If you want a buzzword that'll really catch
my
> attention, throw around words like metaprogramming and Domain-Specific
> Languages. Talk about how your product will be fun to work on, and ask
for
> people who specialize in interesting things like CouchDB or virtual
machine
> architecture. Mention conferences you send your team to -- both to
> advertise
> and to learn.
>
> In other words: We're programmers. Find out what actually excites us, use
> actual technical buzzwords (not marketing buzzwords), and use them
> properly.
> Be a cool place to work, and explain why you're a cool place to work.
>
>
I seccond Zundra's sentiment.
If ever you find yourself in a supervisory position, looking to hire
developers -- I will work for cost of living (plus insurance).
And I sympathize with your school experience, thats where I'm at now. I
must
have found 30 ways to generate fibonacci numbers.

[snip]

> I'm
> talking
> about best practices versus "I tried stuff until it worked."

I'm more likely to hire based on "I tried stuff until it worked" than
"I've been taught best practices". Best practices get stale pretty
fast whereas curiosity and persistence are the gifts that keep on
giving :slight_smile:

I'm mostly self-taught, so I understand where you're coming from.

I suppose I don't mean "established best practices", so much as "I want to do
it the right way, not necessarily the easiest way."

So, as a trivial example, when I see people using for instead of each in Ruby,
I cringe a little -- but that's more a matter of taste, custom, even fad.

But when I see people read an entire table from the database several times
during the course of generating a single report that needed a total of maybe
ten records...

Sure, they "tried stuff until it worked", but that's not curiosity, that's just
plain persistence. And while I like to think I'm a fast learner, I'd still
want to have the basic concept of "don't slurp the ENTIRE DATABASE" down
before I applied for the job.

Probably the best example is the one that I'm not going to be able to be
modest with... My local community college is teaching me BAL -- that's right,
Mainframe Assembler -- as a first language.

Many people in this class will simply punch in the example code the professor
gave us, and change things until it does what they want. These are the same
people who will come to me or the professor when their program doesn't work,
without bothering to actually read the error message -- whereas I actually
found the system log and started to debug my program.

Some of these people are the people who will grow up to use Visual Basic, and
enable "on error resume next".

That's what I'm talking about. Not knowing is fine, if you're curious about
learning. But when I jump into others' code, it's sometimes painfully obvious
that they're not particularly curious -- all they care about is closing the
ticket, collecting a paycheck, and moving on.

···

On Thursday 01 October 2009 08:20:26 am Eleanor McHugh wrote:

On 1 Oct 2009, at 01:32, David Masover wrote:

> I mean, it is nice to occasionally be the smartest person in the room --
> or at least the most knowledgeable.

I hope to never find myself in that situation. Surrounding one's self
with subordinates is inconducive to learning.

Not subordinates -- in this case, it's a classroom.

And it means I have an opportunity to not only be lazy, and breeze through the
assignments -- an entire two hours of class time today was allocated towards
working on assignments I've had finished for days -- but I also have an
opportunity to teach.

I really do enjoy teaching, and it's also a good way to really know something.

I have observed time and again the easiest path to never be the
"maintenance" coder is to always be the fastest coder.

Except, I'm not always particularly fast.
I think of myself as slower, but more correct.
Even so...

Smart managers
always place the faster coders out in front doing the quick
prototyping of the new projects.

Except that if they also note that I'm intelligent, and that I write clean,
readable, reliable code, that means I might also the best person to dig into
whatever nightmarish mess needs to be cleaned up. Certainly, I'm better
qualified than whoever created the mess in the first place.

I suppose it comes down to what kind of a team you've actually got.

But I think we're in agreement -- I'd much rather work in a place where
everyone's smarter than me, so there are fewer and less-horrifying messes to
clean up.

···

On Wednesday 30 September 2009 08:21:31 pm Greg Donald wrote:

On Wed, Sep 30, 2009 at 7:32 PM, David Masover <ninja@slaphack.com> wrote:
> On Wednesday 30 September 2009 06:54:16 pm Greg Donald wrote:

As a retired programmer,
not looking for a job,

I bow to your experience (no sarcasm intended). Still...

The biggest problem with taking a new job
anywhere, not just VC-startups is that you might have to move to a strange
place and that can make any programmer feel pretty insecure and
intimidated.

To me, that's half the fun.

If I'd been able to get a job in time, before I made this snap decision to go
back to school (seriously, I'd been thinking about it, but finally registered
at just slightly after the start of the semester)...

Iowa is wet and rainy right now, and I have a half hour commute to class, so
no, I don't mind moving at all.

But the rest of these are valid concerns:

What if the VC-startup fails? And are you working by
yourself?

I wasn't working by myself at all -- it was an amazing team that I was proud
to be a part of. But the startup did fail. The funding disappeared just a few
months after the rest of the economy imploded, and by now, the website has
fallen off the face of the planet.

Working for a VC-startup has all of the risk of contracting
with none of the benefits.

Except it does have a few benefits: The biggest reasons I have trouble
contracting, especially on my own... I like independence, in theory, but I do
work better with a team.

This is especially true because while I like to think I'm decent at code and
prose, I'm horrible at graphic design and marketing. While I think I interview
well, I'm not good at getting myself interviews.

That's bad enough trying to get the first job. Independent contracting would
mean doing that on an ongoing basis.

And just for fun...

> I seccond Zundra's sentiment.
> If ever you find yourself in a supervisory position, looking to hire
> developers -- I will work for cost of living (plus insurance).

No, don't listen to me. Listen to this guy I'm replying to.

I doubt I'll find myself in a supervisory position, either -- that's a whole
other skill set I don't have.

But I do have an idea for a web browser, so if people are that eager to work
with me, I'll throw something up on Github and get started... (Why another
browser? Because neither Chromium nor uzbl are what I want.)

> And I sympathize with your school experience, thats where I'm at now. I
> must
> have found 30 ways to generate fibonacci numbers.

I'm actually enjoying it immensely, though I'm looking forward to more
challenging classes. I seem to remember hearing that eventually there'll be OS
design and compiler design...

So yes, stay in school.

···

On Wednesday 30 September 2009 11:30:25 pm Mason Kelsey wrote:

On Wed, Sep 30, 2009 at 9:51 PM, Josh Cheek <josh.cheek@gmail.com> wrote:

I suppose I don't mean "established best practices", so much as "I want to do
it the right way, not necessarily the easiest way."

So, as a trivial example, when I see people using for instead of each in Ruby,
I cringe a little -- but that's more a matter of taste, custom, even fad.

But when I see people read an entire table from the database several times
during the course of generating a single report that needed a total of maybe
ten records...

Sure, they "tried stuff until it worked", but that's not curiosity, that's just
plain persistence. And while I like to think I'm a fast learner, I'd still
want to have the basic concept of "don't slurp the ENTIRE DATABASE" down
before I applied for the job.

Probably the best example is the one that I'm not going to be able to be
modest with... My local community college is teaching me BAL -- that's right,
Mainframe Assembler -- as a first language.

Many people in this class will simply punch in the example code the professor
gave us, and change things until it does what they want. These are the same
people who will come to me or the professor when their program doesn't work,
without bothering to actually read the error message -- whereas I actually
found the system log and started to debug my program.

The best teacher of "the right way" is experience, and experience mostly comes from doing things the wrong way and then having to clear up the mess at some appreciable cost to yourself. I suspect most of the problems big companies have (and not just with coders) is that when a person works on one small problem and then passes their output along to a coworker in an equally myopic position, the producers of mess are rarely if ever penalised. Indeed I'd go further and suggest that some of them even develop the same sabotaging tendency as that prevalent in the Soviet industrial environment.

For every Dilbert there are a dozen Wallys...

Some of these people are the people who will grow up to use Visual Basic, and
enable "on error resume next".

I guess you probably don't approve of rescue nil in ruby either lol

That's what I'm talking about. Not knowing is fine, if you're curious about
learning. But when I jump into others' code, it's sometimes painfully obvious
that they're not particularly curious -- all they care about is closing the
ticket, collecting a paycheck, and moving on.

As an obsessive problem solver myself this baffles me, but it seems to be the normal human condition. The moral of the story being, there's no place for normal human beings in software development :wink:

Ellie

Eleanor McHugh
Games With Brains
http://slides.games-with-brains.net

···

On 1 Oct 2009, at 19:15, David Masover wrote:
----
raise ArgumentError unless @reality.responds_to? :reason

As an obsessive problem solver myself this baffles me, but it seems to
be the normal human condition. The moral of the story being, there's
no place for normal human beings in software development :wink:

I've come to accept that "How does this work?" is not the first question
that most people ask. Usually, the first thing people say is "I want to
do this". The difference in mindset is astounding :slight_smile:

···

--
Posted via http://www.ruby-forum.com/\.