[JOB] Possible ruby job in SF Bay Area

This is an informal announcement of a possible position for
an intermediate programmer with 2-3 years of experience in
Ruby and C in the SF Bay Area.

We are not sure yet if we will hire a full-time permanent
person, or a part-time contractor for a 10 month project.
Salary level for the full-time permanent position would
likely be around 50-60K/year with university benefits. The
contract rate would be adjusted upwards accordingly, but
without benefits (AFAIK).

This is really just an early "heads up". You're welcome to
contact us, but the formal hiring process will probably not
start for several months, and is dependent on funding.

···

======
Skills

Ruby: 2 years, responsible for at least one project of >10K
       lines. (Strong Lisp/SmallTalk background may be an
       acceptable substitute.)

GUI: Experienced with some GUI toolkit, pref. in Ruby.
       Completed at least one substantial GUI project.
       (We have used Fox and Tk in previous projects.)

C: 1 year of professional work in C is preferred.

Edu: BA in CS/EE, or other field of engineering or science.

Also good to have:

* OpenGL

* Data modeling, database

* Experience working in science/engineering

* Interest or experience in traffic simulation (in
   particular, Paramics, though that's rather unlikely)

* Interest in future of public transit

* Some Windows development experience (MSVC). We develop for
   Windows, Linux, and Sun, but most users are on Windows.
   For this position, most development can be done on any
   platform that supports ruby and the selected GUI toolkit.

* Some basic web site design and programming.

================
Responsibilities

The project is to continue development of a tool for
modeling, simulation, and visualization of "bus rapid
transit" (BRT) systems
(http://en.wikipedia.org/wiki/Bus_rapid_transit). We are
applying for FTA funding for about 10 months of work. Your
role on the project will round out a team of 2 or 3 others,
and will emphasize developing GUI tools that can be used by
transit planners to design models of transit corridors and
to conduct experiments based on simulations to evaluate the
effectiveness of BRT options. Corridor models are stored in
a hierarchical modeling languag called BRTML. Background on
the project is at http://path.berkeley.edu/SMARTBRT.
(There's software there, too, but it won't do anything
useful unless you have Paramics, which is an expensive
traffic simulation tool.) There will also be a GUI to
interact with the running simulations and display event
data, graphs, etc.

The organization is California PATH, UC Berkeley,
http://www.path.berkeley.edu, located at the Richmond Field
Station, a 20 minute drive from campus. We do transportation
research on a mix of federal, state, and industry funding,
with an emphasis on using new technologies to improve the
safety and performance of traffic and transit. Our group of
about 50-60 people interacts closely with faculty and
students in the College of Engineering. Sometimes we even
get on the evening news
(http://www2.cbs5.com/topstories/local_story_039192718.html).

PATH has an interesting mix of people: engineers
specializing in real-time systems, radios and wireless
networking, sensors, automotive control, human factors;
software people, both real-time and "soft"; automotive
safety researchers; applied mathematicians; cognitive
scientists. The organization is fairly flat and relaxed;
it's about halfway between an academic department and a
small engineering R&D company.

The biggest downside of working here is the cost of living
in the bay area, but you get what you pay for. Also, all of
our funding is soft, so even "permanent" employees have no
real job security (but turnover is very low).

--
Joel VanderWerf California PATH, UC Berkeley
mailto:vjoel@path.berkeley.edu Ph. (510) 231-9446
http://www.path.berkeley.edu FAX (510) 231-9565

Just curious: how many people have written a project in Ruby consisting of over 10K lines of code? Even my own most complex lib, Net::SSH, is only 8.5k lines. (Well, I guess it's 16.7k if you count the unit tests, but I'm still curious as to how common this is.)

What is the average LOC for a typical "complex" (for some arbitrary definition of complex) Ruby project?

- Jamis

···

On Mar 10, 2005, at 8:20 PM, Joel VanderWerf wrote:

Ruby: 2 years, responsible for at least one project of >10K
      lines. (Strong Lisp/SmallTalk background may be an
      acceptable substitute.)

Ruby: 2 years, responsible for at least one project of >10K
      lines. (Strong Lisp/SmallTalk background may be an
      acceptable substitute.)

While I think its great to see the job market get into drive, it would also be nice if we could avoid being as narrowly defined as the drone lines.

I, for one, wouldn't fit the description above. Number of years is a utter lackluster indicator for job performance. Rewarding the use of 10K lines in Ruby is also fairly questionable.

Johanna Rothman has this great quote for getting out of such narrow defines:

    "If you still think you need some number of years of some language
     or environment, stop using shorthand and describe what deep knowledge
     you're looking for. Maybe you can find it some other way. Maybe you
     don't need some number of years, but you need some kind of application
     context"

She's putting it a lot milder than I did on http://www.loudthinking.com/arc/000409.html

···

--
David Heinemeier Hansson,
http://www.basecamphq.com/ -- Web-based Project Management
http://www.rubyonrails.org/ -- Web-application framework for Ruby
http://www.loudthinking.com/ -- Broadcasting Brain

50-60k in SF? Wow.

···

On Fri, 11 Mar 2005 12:20:49 +0900, Joel VanderWerf <vjoel@path.berkeley.edu> wrote:

This is an informal announcement of a possible position for
an intermediate programmer with 2-3 years of experience in
Ruby and C in the SF Bay Area.

Joel VanderWerf wrote:

This is an informal announcement of a possible position for
an intermediate programmer with 2-3 years of experience in
Ruby and C in the SF Bay Area.

We are not sure yet if we will hire a full-time permanent
person, or a part-time contractor for a 10 month project.
Salary level for the full-time permanent position would
likely be around 50-60K/year with university benefits. The
contract rate would be adjusted upwards accordingly, but
without benefits (AFAIK).

To follow up: if the job is offered as a contract, what sort of hourly rate would folks be likely to accept, given all that I've said about the work (and the cost of living in the Bay Area) in this thread?

Has anyone had ruby contract work, and if so, at what rate?

Hi,

···

On Fri, 11 Mar 2005 13:37:08 +0900, Jamis Buck <jamis_buck@byu.edu> wrote:

On Mar 10, 2005, at 8:20 PM, Joel VanderWerf wrote:
>
> Ruby: 2 years, responsible for at least one project of >10K
> lines. (Strong Lisp/SmallTalk background may be an
> acceptable substitute.)

Just curious: how many people have written a project in Ruby consisting
of over 10K lines of code? Even my own most complex lib, Net::SSH, is
only 8.5k lines. (Well, I guess it's 16.7k if you count the unit tests,
but I'm still curious as to how common this is.)

What is the average LOC for a typical "complex" (for some arbitrary
definition of complex) Ruby project?

I don't know. But > 50k LoC is a little bit over the top I think.
Below that is reasonable. What's the biggest project in Ruby that
people have heard of? I remember Rich Kilmer's and the site that Dave
Thomas wrote. :slight_smile:

Cheers,
Joao

Jamis Buck wrote:

Just curious: how many people have written a project in Ruby consisting of over 10K lines of code? Even my own most complex lib, Net::SSH, is only 8.5k lines. (Well, I guess it's 16.7k if you count the unit tests, but I'm still curious as to how common this is.)

I've always held to the old adage: If you've written 10K lines of Ruby code, then you're using it wrong.

Wouldn't it be awesome if that were true?

_why

Jamis Buck wrote:

Ruby: 2 years, responsible for at least one project of >10K
      lines. (Strong Lisp/SmallTalk background may be an
      acceptable substitute.)

Just curious: how many people have written a project in Ruby consisting of over 10K lines of code? Even my own most complex lib, Net::SSH, is only 8.5k lines. (Well, I guess it's 16.7k if you count the unit tests, but I'm still curious as to how common this is.)

What is the average LOC for a typical "complex" (for some arbitrary definition of complex) Ruby project?

Hm, maybe that is not a useful criterion. A program is not better
because it is larger. But it may not be fair to compare lines of
library code with lines of application code.... you have to think (and
test) harder for each line of library code.

My current deliverable on another project (not related to the one in the
announcement) is over 21K of ruby. That doesn't count blank lines and
comments, or unit tests. It does count my own libraries, mostly written
for this project. That's with frequent refactoring efforts, too. It's
fairly dense. (And it generates 8K lines of C code.)

For the predecessor to the announced project, the figure is 13K lines of
ruby. Another project was 8.6K (some generated by racc, to be fair).

For the job, I was thinking specifically of GUI code, which tends to
inflate LOC at a faster rate than it inflates complexity, until you get
tired of typing and put some effort into metaprogramming.

···

On Mar 10, 2005, at 8:20 PM, Joel VanderWerf wrote:

Jamis Buck wrote:

···

On Mar 10, 2005, at 8:20 PM, Joel VanderWerf wrote:

Ruby: 2 years, responsible for at least one project of >10K
      lines. (Strong Lisp/SmallTalk background may be an
      acceptable substitute.)

Just curious: how many people have written a project in Ruby consisting of over 10K lines of code? Even my own most complex lib, Net::SSH, is only 8.5k lines. (Well, I guess it's 16.7k if you count the unit tests, but I'm still curious as to how common this is.)

What is the average LOC for a typical "complex" (for some arbitrary definition of complex) Ruby project?

FreeRIDE (the Ruby IDE) is roughly 20,000 LOC (25,000 lines with comments)

Laurent

Excerpts from Jamis Buck's mail of 10 Mar 2005 (EST):

What is the average LOC for a typical "complex" (for some arbitrary
definition of complex) Ruby project?

RubyTorrent is about 1700 loc for the libraries, and 2200 including
utilities. It's among some of the most complex code I've ever written.

I made an executive decision not to count "end" lines, so your count may
be slightly higher.

···

--
William <wmorgan-ruby-talk@masanjin.net>

* Jamis Buck (Mar 11, 2005 14:10):

Just curious: how many people have written a project in Ruby
consisting of over 10K lines of code? Even my own most complex lib,
Net::SSH, is only 8.5k lines. (Well, I guess it's 16.7k if you count
the unit tests, but I'm still curious as to how common this is.)

What is the average LOC for a typical "complex" (for some arbitrary
definition of complex) Ruby project?

My current project (unveiled shortly) is currently above the mark.
However, most of the code is written in C that is then interfaced to
Ruby. This is done exclusively for performance reasons. I'd say that
the Ruby code would still have reached a sizeable number of lines, but
perhaps not as many as the C + Ruby version.

Anyway, the >10K loc in Ruby is unrealistic I'd say. As you say,
Net::SSH is complex, perhaps one of the most complex public libraries
written solely in Ruby; yet it's only 8.5K loc,
  nikolai

···

--
::: name: Nikolai Weibull :: aliases: pcp / lone-star / aka :::
::: born: Chicago, IL USA :: loc atm: Gothenburg, Sweden :::
::: page: www.pcppopper.org :: fun atm: gf,lps,ruby,lisp,war3 :::
main(){printf(&linux["\021%six\012\0"],(linux)["have"]+"fun"-97);}

Michael Campbell wrote:

50-60k in SF? Wow.

Yes, wow. There are a lot of us trying to live at that rate, or below...

Thanks for the feedback. My management needs to know that certain salary levels are unrealistic.

David Heinemeier Hansson wrote:

Ruby: 2 years, responsible for at least one project of >10K
      lines. (Strong Lisp/SmallTalk background may be an
      acceptable substitute.)

While I think its great to see the job market get into drive, it would also be nice if we could avoid being as narrowly defined as the drone lines.

You're right. I always hated reading any job posting that was just a hash of <acronym> => <years>.

I, for one, wouldn't fit the description above. Number of years is a utter lackluster indicator for job performance. Rewarding the use of 10K lines in Ruby is also fairly questionable.

Regarding years: note that the announcement mentioned the equivalence of Lisp/SmallTalk. I had hoped that the implication was for the applicant to be comfortable with closures, recursion, metaprogramming, concurrency, etc.: in short, a basic understanding of most of SICP (oops, another acronym). I should have said that to begin with...

Regarding program size: I disagree. Our application is large because our subject matter is large in an irreducible way. The app needs to interact with 3rd party software that has its own highly complex (and often poorly designed) input/output system. It needs to do a large variety of geometrical calculations (not difficult ones). The programmer for this job needs to be comfortable with managing a large number of ugly details. That skill is distinct (though of course not exclusive) from writing a lovely little ruby library.

Thank you, David, for making me be more explicit.

Rhizome's code is about 22Kloc. Not that I'm proud of that, really; if I had time, I'd refactor it 'til all git-out and extract about 10Kloc into free software libs. That does happen, from time to time.

This kind of stuff can, happen, though: Libs have narrow purposes, but entire systems might have fairly complex customized logic. Rhizome, for example, has a lot of complex stuff dealing with a pretty intense system where membership can be driven by individual donations, group subscriptions, assignation of complimentary status by site admins, etc., etc. There's also a pretty extensive implementation of instant runoff voting: IRV actually has lots of really strange edge cases.

Incidentally, I'm counting the unit tests, which I generally consider to be as important a part of the code as the "production" code itself.

···

On Mar 10, 2005, at 11:37 PM, Jamis Buck wrote:

On Mar 10, 2005, at 8:20 PM, Joel VanderWerf wrote:

Ruby: 2 years, responsible for at least one project of >10K
      lines. (Strong Lisp/SmallTalk background may be an
      acceptable substitute.)

Just curious: how many people have written a project in Ruby consisting of over 10K lines of code? Even my own most complex lib, Net::SSH, is only 8.5k lines. (Well, I guess it's 16.7k if you count the unit tests, but I'm still curious as to how common this is.)

What is the average LOC for a typical "complex" (for some arbitrary definition of complex) Ruby project?

- Jamis

Francis Hwang

"Dave Burt" <dave@burt.id.au> writes:

How much ruby code is in the ruby standard distribution, for comparison? I'd
be guessing along these lines:
core: 100 kLOC
stdlib: 100 kLOC
total in standard ruby 1.8.2: 250 kLOC

Good guess.

g@crash:~/src/ruby$ cat `find . -iname '*.rb'` | wc -l
262738

And here's an interesting stat for the pythonists to scoff at:

g@crash:~/src/ruby$ cat `find . -iname '*.rb'` | grep '^[ \t]*end[ \t]*$' | wc -l
31166

Quite a lot, huh?

In article <4231F443.10909@path.berkeley.edu>,

Joel VanderWerf wrote:

This is an informal announcement of a possible position for
an intermediate programmer with 2-3 years of experience in
Ruby and C in the SF Bay Area.

We are not sure yet if we will hire a full-time permanent
person, or a part-time contractor for a 10 month project.
Salary level for the full-time permanent position would
likely be around 50-60K/year with university benefits. The
contract rate would be adjusted upwards accordingly, but
without benefits (AFAIK).

To follow up: if the job is offered as a contract, what sort of hourly
rate would folks be likely to accept, given all that I've said about the
work (and the cost of living in the Bay Area) in this thread?

Has anyone had ruby contract work, and if so, at what rate?

Yes. However, it started out as a C++ project going in. After a month
or so I was able to convince management that Ruby made more sense from a
productivity standpoint. The rate was of course based on C++, but it
didn't change when we switched to Ruby. The rate I was getting was
$35/hour in the Portland, Oregon area. That gig went from Dec 2003 to
June 2004 when things were still pretty dead around here and I was glad
to get anything. Now I suspect rates would be higher as things seem to
have picked up a bit.

Phil

···

Joel VanderWerf <vjoel@PATH.Berkeley.EDU> wrote:

Im only up to 1.25k LoC in my current project, and thats my Ruby record.
I dont expect it to break the 1.5k LoC mark. Theres that much again in
handwritten xml input files though, does that count? :slight_smile:

···

On Fri, 11 Mar 2005 13:44:59 +0900, Joao Pedrosa <joaopedrosa@gmail.com> wrote:

Hi,

On Fri, 11 Mar 2005 13:37:08 +0900, Jamis Buck <jamis_buck@byu.edu> wrote:
> On Mar 10, 2005, at 8:20 PM, Joel VanderWerf wrote:
> >
> > Ruby: 2 years, responsible for at least one project of >10K
> > lines. (Strong Lisp/SmallTalk background may be an
> > acceptable substitute.)
>
> Just curious: how many people have written a project in Ruby consisting
> of over 10K lines of code? Even my own most complex lib, Net::SSH, is
> only 8.5k lines. (Well, I guess it's 16.7k if you count the unit tests,
> but I'm still curious as to how common this is.)
>
> What is the average LOC for a typical "complex" (for some arbitrary
> definition of complex) Ruby project?

I don't know. But > 50k LoC is a little bit over the top I think.
Below that is reasonable. What's the biggest project in Ruby that
people have heard of? I remember Rich Kilmer's and the site that Dave
Thomas wrote. :slight_smile:

--
spooq

why the lucky stiff wrote:

I've always held to the old adage: If you've written 10K lines of Ruby code, then you're using it wrong.

Wouldn't it be awesome if that were true?

Oooh... a MATLAB clone in 10KLOR. MegaGolf, anyone?

I have started from scratch 3 times with AEditor.
Here are the line counts:

aeditor 0: 3560 impl, 4962 test.
aeditor 1: 6204 impl, 4689 test (more than 10k of lines).
aeditor 2: 3161 impl, 3207 test.

version 2 is much simpler and more robust than previous versions,
even though its half the amount of code compared to version 1.
It took me years to realize that my data structure was too complex.

···

On Fri, 11 Mar 2005 16:55:27 +0900, Laurent Julliard <laurent@moldus.org> wrote:

Jamis Buck wrote:
> On Mar 10, 2005, at 8:20 PM, Joel VanderWerf wrote:
>
> Just curious: how many people have written a project in Ruby consisting
> of over 10K lines of code? Even my own most complex lib, Net::SSH, is
> only 8.5k lines. (Well, I guess it's 16.7k if you count the unit tests,
> but I'm still curious as to how common this is.)
>
> What is the average LOC for a typical "complex" (for some arbitrary
> definition of complex) Ruby project?
>

FreeRIDE (the Ruby IDE) is roughly 20,000 LOC (25,000 lines with
comments)

--
Simon Strandgaard

Michael Campbell wrote:
> 50-60k in SF? Wow.

Yes, wow. There are a lot of us trying to live at that rate, or below...

There's something to be said for doing what you love.

Thanks for the feedback. My management needs to know that certain salary
levels are unrealistic.

Well, that depends. *I* couldn't live at that wage, at least not "in
the manner to which I (and my family) have become accustomed".

I mean, you're always going to be able to get SOMEONE for almost any
job at any wage, but considering what you're asking for, the salary
seems extraordinarily low to me. That said, I haven't looked at the
conditions in SF lately; the last time I was there in any sort of
employment context was 1996, so things may have changed greatly since
then.

···

On Sat, 12 Mar 2005 02:48:41 +0900, Joel VanderWerf <vjoel@path.berkeley.edu> wrote: