Why are there unfilled Perl jobs in LA?
mail.pm.org
mail.pm.org
I'm actually a Los Angeles Perl developer and I keep telling my HR department to either look for college kids with basically no professional programming experience at all, or senior candidates that they're willing to pay at least $90,000. Looking for "some Perl programmer guy" with some experience that you're looking to pay $70,000 is pointless, because they don't exist.
Perl's lack of a "sexy web startup framework" (e.g. Rails) essentially wiped out a whole "generation" of developers. I'll be the first to admit it's a lot harder to bang out your brilliant "It's like Facebook... but for cats!" startup idea in Perl and its respective frameworks. If you want a decent foundation, you'll use something like Rails or Django. If you just want to bang it out, you'll just inline some crappy PHP code in your HTML. Eventually your company will grow, you'll have different kinds of problems to worry about, like, "this third-party partner doesn't have an API so I need to write a spider that logs into their UI and scrapes the data we need" or "I need to parse this DB log to figure out the frequency of SELECT queries," but since 97% of startups[1] don't ever get to that point, Perl didn't get a lot of love in 2005-2007. After all, we're on Hacker News, not Mid-Sized Company News.
So if you were a Perl hacker in 2004, 2005, you either loved the flexibility and "whipitupitude" Perl gave you for your back-end operations, and now it's 5 years later and you're a senior engineer looking for a commensurate salary. Or you decided to crank out CatBook in RoR until Zuckerberg sued you into oblivion and then you just got another Ruby job afterwards.
For what it's worth, I would encourage the HR departments that Randall mentions to look at new college grads. More than any other language, I feel it's one of the easiest languages to learn regardless of your previous experience, mainly because of TMTOWTDI[2] you can write it in whatever syntax format you're already experienced in. I see a lot of college kids who came from Java and at first their code is full of HammerFactorySchematicFactorySchematicFactories, and while it's pretty silly, it'll work until they learn better, and in three months they're essentially as productive as the theoretical mid-level Perl programmer anyway.
[1] This statistic is POOMA[3].
[2] There's More Than One Way To Do It
[3] Pulled Out Of My Ass
Actually, if I found myself looking for a job I'd consider taking $70k, even though I'm a senior level guy and that would be quite a pay cut from what I now get. The big factors would be the stability of the company, how good its benefits are (including 401k matching), and reasonable flexibility in work hours.
The reason for this is that I'm 50, and I'd want the job to be my last job before retirement. If a job has a very good chance of being able to take me to retirement age, and letting me grow my 401k a good amount, that would be more attractive to me than a job that pays more now, but that I can't foresee lasting 12-17 years.
It's challenging to get people to move to LA. People who like LA are in LA. People outside of LA have a hard time seeing its charms given the lack of transportation structure other than giant freeway traffic jams and busses that come a few times a day and can take a half day to travel a few miles. The cost of living in a decent neighborhood is very high, yet most positions offer mid west style salary. Most developers will take a huge hit to their standard of living by accepting an LA job, so LA employers mostly try to recruit locally and even when they do recruit from out of town, few are willing to attend to basic hygiene issues such as paying for relocation costs.
On the Perl issue, I use Perl for a lot of things because it is very fast to code in and to execute. I find both C and assembler easier to understand than trying to read a complex regular expression in perl or decipher data structures in perl that use pointers due to a syntax that is still unintuitive after a decade of use. Regular expressions probably can't be simplified since they are their own very dense language, but the pointer syntax could be improved a lot. Perl code that creates classes and objects is quite hard.
Coding in Perl can be a challenge and Perl is so large that all of us are expert at different things which means that almost every single piece of new perl code I see is like having to learn a new language.
I have just "dealt with it" all this time, but it's possible, given this post about LA, that fewer developers are willing to deal with the overhead of learning Perl given that for simple sites PHP can be more efficient for them, and for system scripts things like python have gotten more traction.
Then again, I actually find C/C++ pointer tracking and memory allocation daunting, so perhaps that is why I find Perl references more intuitive than not?
In my estimation you can make Perl harder to work with if you try, but you can also make it easier. ie: regular expressions are easier to work with if you use the /x modifier so you can whitespace fill it and document the regex itself, you can do things the hard way with objects, or you can use something like CPAN and get a module that makes this easy ( Moose is my favourite ).
Sure, Perl is perhaps hard for people, I'll give you that, but it doesn't have to be.
Absolutely agree. I made a similar comment on HN post Regex: a little Clojure DSL for readable, compositional regexes only a few days ago: http://news.ycombinator.com/item?id=1719554
Additionally, while having a car is a requirement (as it is in all but a handful of US cities), cost of living is lower than in New York or SF, which are the two most likely alternatives. Rent is lower (my rent here is half of what it would be in those cities) and most of your weekend activities are either free (beach, mountains, etc) or cheaper than SF or NY. And there's more of them too: there aren't many places in the US where you can ski on Saturday and go play volleyball on the beach on Sunday, which is why much of our team are Seattle or San Fran weather refugees.
As for Perl, I'd argue that because the tech / web media industry here in LA is newer, there aren't as many folks around who date back to the years when Perl was the dominant platform. When I started developing for the web, it was one of the few practical options; now I'm sure I'd be starting with Ruby or Python. What we do is hire engineers who are smart enough to work in any language, and then let them pick up a book and learn Perl, rather than filter first for that specific language.
Developers and engineers are professionals. Living in a one room apartment or in someone's basement are not acceptable options. Salary needs to cover the cost of a single family house.
A decent house in a safe neighborhood in LA runs from $400,000 to $2 million. Yes, you can buy in the barrio for much less. You can also rent decently and that is what most in LA do. But to attract a developer who is married and has a family and who will be leaving his 4000 sq ft house on an acre of land, that is not a good option.
I agree completely that people in LA like it there and are OK with it. All I am saying is that recruitment is difficult from outside the area because nearly all developers are asked to take a huge hit on their standard of living when moving there. LA recruiters feel the low rates are justified because living in LA is considered itself to be a valuable benefit. Most people outside the area do not see it that way however.
Having lived in both areas, if a company in LA is really offering bay area salaries which are $110k-$170k, then yes, they are paying market rate. But a shop in LA offering $70k or even $90k is simply not comparable to a SF job at twice that, given that the costs of living in both areas for reasonable accommodations and commutes are essentially the same.
As far as free things to do, SF has LA beat by a mile.
It is amazing how much easier the commute is for a 11:30-7:30 day than a 9-5 one. So much so that I don't want to even consider jobs where I don't have that flexibility.
Also, working from home is pretty big - we allow about 20% of days to be WFH - and that's zero commute.
or decipher data structures in perl that use pointers
due to a syntax that is still unintuitive after a
decade of use
Hint: Perl doesn't have pointers, it has references. It's odd that you haven't gotten used to it after 10 years. Perl code that creates classes and objects is quite
hard.
Not with Moose. Simply declarative OO that contains an MOP and is very extensible. Coding in Perl can be a challenge and Perl is so large
that all of us are expert at different things which
means that almost every single piece of new perl code I
see is like having to learn a new language.
This always surprises me. I code Perl for a living, and I never have this problem. I never run into code I don't understand. Sometimes the formatting and I need half a second to locate the curly brackets because the original author was a C/C++ guy, but that's about it.It's also odd that many people after 10 year with Perl have not realized that it has pointers which it calls references. Pointers and references are not so different that they need separate names. There's too much branching of terminology. Pointers are pointers. Even those & things in C++ are pointers as well, they are just a syntactic simplification of pointers for ease in typing. If C++ didn't have references, what it calls references could be implemented in the preprocessor as an alternate syntax for pointers. Oh, references can't be nil in C++? No, they can be if you try hard enough on every compiler I've ever seen.
Lots of people agree as well. Perl has pointers. Call them references if you like. They are pointers.
http://ist.marshall.edu/ist334/perl_pointers.html
This whole sidebar is pretty off topic for this thread though so if you'd like to continue please create a new thread. The post was about finding Perl programmers in LA. Part of the problem is fewer people are embracing Perl nowadays. Part of the reason is that Perl is difficult. I like Perl. I use Perl all the time. I also recognize that, like C++, Perl can be a pain in the ass for people, and there are much easier languages to read and write in which work just as well for things like basic web programming. So as a result people learn those other things more nowadays and not so many adopt Perl. That's not hating on Perl, that's just explaining why the dude can't as easily find his Perl programmers (for whatever lowball salary he is offering, which is not stated) in LA anymore.
Please perform pointer arithmetic or demonstrate the pointer/array equivalence with references or write a garbage collection system which uses pointer counting.
When you've finished, demonstrate effective and type-safe autovivification with pointers.
Finally, use references (sorry, pointers) to stack-allocated variables in C and create an object system based on closures.
On another note, what are the chances that this thread is going to turn into a PedantoNerd flamewar.
I do not buy this. I've maintained plenty of good Perl written by plenty of other programmers. I've seen bad Perl as well, but I've generally believed that the same developers would have produced bad code in other languages. I believe that the experienced developers I've worked with would generally say the same. From what they've said, they've categorized more of mine on the good side than the bad.
I admit that there are occasionally cases where very good code is very difficult to read. Those cases are very rare, but not entirely non-existent. On those occasions I've been glad that Perl gave me the rope to hang myself. However if you find yourself in this position on a routine basis, you should ask what you are doing wrong. Because that shouldn't happen. Really.
(Note, I'm not a Perl developer at the moment, but I was for 11 years. I've never considered myself a Perl zealot.)
I work on a lot of open source Perl, and it all looks the same. Sure, I can tell mst's code apart from nothingmuch's, but I never have any trouble understanding what it's doing. The community has decided on a style, and everyone gets on just fine. It's so pervasive that even people that don't hack on the code every day pick up the style; like I said before, code written by never-contributed-to-open-source don't-even-know-what-github-is coworkers does not look too different from what I'd expect. People wrote bad Perl in 1995, and I've seen it, but this problem is largely solved. (The same cannot be said about Python. I wasted two days last week debugging the XML parser included in the core! That is some legacy code...)
The reason we can't find Perl programmers is because everyone likes their job. When you jump ship as a Perl programmer, it's from one bank to another, or one small web shop to another. If you're a Python programmer, on the other hand, you get to do something exciting like go from no-name-consulting-company to Google. Google, that site you visit every day and that has a ball pit and pool in their offices!! Google!!
The kinds of places that do Perl tend to be boring. I may work for a bigger company than Google and affect more people, but I don't get a ball pit, I don't get free food, and I don't get to say, "oh, you know Google Reader? I added a new feature on that today." When talking to non-programmers, I try not to even mention my work, because it sounds that boring. When you work for Google, everyone thinks it's exciting. This makes it easy to find people that want to work on your language, just because there is a general feeling of coolness about it. If you're not working for Google today, then you're working to attract their attention or something.
Extrapolate this anecdote to the rest of the community... and you have a hard time finding people to hire. (My employer has trouble hiring people because they try to be cheap. "Oh, well we can only guarantee you a 6 month contract, no insurance, and you have to pay to move across the country". Not a lot of people take this offer.)
But really, I think you hit it right - because the language displays such a lack of orthogonality, ten perl coders will write the same line of code ten different ways, and everyone will favor his own constructs.
If you look at the time and effort that goes into releasing a package, figure at least 8 hours (one day of work) that is conservatively $200 of effort minimum? So would you be interested in a company that averaged four "sales" a week worth a couple hundred dollars each, sustained over four and a half years?
And that is just the code that escaped to CPAN.
Transition takes time, welcome to software development.
Perl doesn't attract brand new programmers very much these days. The result is that the people using Perl now tend to be more experienced and thus in a position to be somewhat picky.
As with any situation where people have a choice, they will take the option that is most attractive to them.
(which I'd certainly agree with)
Python is used heavily in the animation and post-production houses around Hollywood/Burbank (e.g., Dreamworks, Sony) and NumPy is popular in finance.
Perl is not only not the sexiest/hottest language, but watching and waiting for Perl6 and getting the OO model cleaned up is like waiting for "Duke Nukem Forever". So do you really want to ride on that train? Do you think it will look good on your resume, improve your skill set, or help you think in new and better ways? For all practical purposes the language is dead (FINE, a perl6 implementation is out, but still if the growth is that slow it IS all but dead).
I get offers pretty much constantly to do work in Python, Ruby, and even Java. It would take a lot to make me want to backtrack to an environment that wouldn't help me to grow and evolve as a developer. So the answer for me was "No thanks, thats not really what I want to be doing".
but watching and waiting for Perl6 and getting the OO
model cleaned up
Have a look at http://search.cpan.org/dist/Moose and http://moose.perl.org as well as the MooseX::* namespace on CPAN. It's Perl 5 OO with a Meta Object Protocol, lots of extensions, and compatibility with pure Perl 5 OO. Do you think it will look good on your resume, improve
your skill set, or help you think in new and better
ways?
For me it does. I'm a full-time Perl 5 developer and I have to learn and read up on newer technologies all the time. Even if the CPAN already provides me with what I mostly need, I'll still have to integrate it into the customers infrastructure. And for that I have to understand it. For all practical purposes the language is dead
CPAN disagrees.also, i'd bet more people moved from Perl to Python, than the reverse, since the 90's
I'm a Perl developer with 11 years experience who's been watching the job boards with the intent to relocate to a new city soon (I'm looking all over the US) but I'm not seeing that many Perl jobs anywhere. PHP, Python and Ruby look like a much hotter skills right now based on my unscientific observation.
Another thought is that like me, other Perl developers are worried about getting stuck in a shrinking specialty and are actively seeking non-perl jobs to strengthen their career. That said, I'm still open to perl and willing to relocate so if your company needs an experienced Perl guy you can find my email address in my HN profile.
Many people underestimate the capabilities of the PERL MVC frameworks such as CGI::Application + Moose and the other ones.
I can bang out a proper MVC templated project with a proper OO structure and Beanstalk MQ backend for long running jobs with an AJAX interface that'll scale in about week. No sweat.
These tools make the recent Diaspora fiasco non-existant. They take of sanity checking, access checking, etc. at a lower level and you implement features in higher level classes. (For example I can store JSON in a DB column and automatically parse it when it's accesed like: $mytable->myjson->{'myvalue'} )
Need a barcode reader? Need a SOAP/JSON/etc library? Need clean database access API? Need a printing library? Need a PSD library? All in CPAN.
I wouldn't touch Rails with a 10 foot pole. PHP blows chunks. I'm able to be picky when it comes to jobs
I've gotten my PERL jobs through craigslist. I'm honestly not aware of a better medium to find PERL jobs. Been programming in PERL since I was 14 (so 10 years) and I'm so happy I don't have to sweat for a job. I'm actually currently living off my previous job's savings because it paid that well.
Also note that I never even finished High School.
In short, I don't know why they haven't been able to find PERL programmers. I guess because the newer generation of developers don't realize how awesome it is.
PS: Looking for a short-term PERL project in Los Angeles, check out my resume: http://careers.stackoverflow.com/therevoltingx
I say this only because you give the illusion of knowing something about what you are talking about, and its merely sad to me that you can use Perl for 10 years and never learn this.
( And sadly, not knowing Perl is not an acronym looks bad to people who know different, and thus instantly assume you're not very experienced in Perl )
Note, I'm well aware that PERL is not an acronym. I ALWAYS spell it like that because I like to make it pop in my sentences. Frankly, if an employer is turned away by the way I spell PERL then I don't want to work for them.
My work speaks for itself.
At that point it's not 'savvy' people who know that, but silly people who have too much time to complain or notice small things like that. Possibly managers or scripters, not engineers who go only by code, architecture, etc.
Check out perlfaq1 if you doubt me.
I guarantee you that there is no shortage of good developers who's primary language is not English who would love to work with chromatic.
However, I do appreciate and will take your advice into consideration. I do only talk to my immediate co-workers about code, and 90% of my code is closed-source.
You can be right and you can be stubborn, but I respect that when you're stubborn and right and not merely stubborn because you want to be right.