Monday, July 23, 2012

Bad Job Postings

It never ceases to amaze me how many astonishingly bad job requests I see, especially for programmers, here is one picked apart:

Software Programmer


Position Overview:
We seek a programmer to design, develop, and maintain a web-based application for service-oriented business. Programmers are notoriously picky people, they have to be, otherwise they wouldn't be the kind you want, so read through what you've written for it to grammatically make sense before posting. Pocomos delivers web solutions for the service industry by providing access to online applications, real-time data, inventory management, and employer solutions. This essentially describes every company out there, what makes you unique? It also sounds *old* like web 2.0 old... As our programmer, you will work with project managers and account managers to develop industry solutions. Uh-oh "as our programmer" this means you only have one, and I'll also end up being asked to sync everyone's blackberries with your web-mail, and be IT, probably end up running your servers, and making the purchasing decisions on all sorts of new hardware.


http://imgs.xkcd.com/comics/academia_vs_business.png

This unique position requires strong communication skills, both written and oral, and the ability to work with a team of highly motivated individuals from different disciplines including project management and sales. Okay, not too bad, programmers can do that sometimes...

Pocomos entrance into the industry was groundbreaking--and we hope to keep it that way. Then why are the top results pizza places when I search the company name?Creative, innovative, and simple solutions to complex problems is Pocomos' mantra for providing cloud solutions for our clients. Oh, so it is cloud.

Be apart of this chance to change an industry. Again, grammar.

Position Responsibilities:

Developing/designing software systems
Experience working on cross-browser platforms
Writing, optimizing and diagnosing queries using yt HA MySQL database systems
Develop solutions for operational problems
Develop innovations for CRM
Develop creative solutions for real-time data delivery They have these already...no need to reinvent the wheel, unless you want an untested mess...
Creatively solve scheduling, operational, and employee-related issues
So, you want a software developer, a network engineer, a database administrator, someone to develop high quality systems that you're unwilling to buy, and solve scheduling issues? I have a feeling that is code for: you'll need to be on call 24/7 in case something breaks.
Position Qualifications:

Bachelor’s Degree in Computer Science or related field
1-2 years+ experience with php applications, not just familiarity
Experience using PHP as part of main job description, not just a basic knowledge Was this design by committee? This was said on the line right above...
Javascript
Significant experience with: CSS, HTML, MySQL, LAMP, XML, AJAX, FLEX, Flash, Linux Oh, you want us to know entirely useless Adobe products that even Adobe is ditching? Has nobody told you about HTML5?
Experience with using PHP, HTML, CSS with online applications
Does anybody even write PHP scripts for the desktop anymore? Python or BASH are way better. There is also no need to say "LAMP" and also list out Linux, PHP, and MySQL. 

Position Compensation:

Excellent Pay Awesome, that means you have no idea what someone like you asked for should be paid...
Regular performance bonuses Still rather vague. If you only have one developer, who will know if the new hire is performing up to par?
Paid time off
Paid holidays (15)
Flexible work hours So, I get to work at midnight when the server crashes?
Great benefits Um...like?
Ability to work remotely You don't have an office?
Regular cookie breaks SOLD! Are the cookies provided, or do I bring my own?

Please contact:
Contact Removed

Thursday, July 12, 2012

Code Editor

I want a code editor. A real one, with the following abilities:
  • A decent find + replace dialog, like Geany's, not like Gedit's and certainly not like Eclipse's
  • Natively compiled
    • For speed + low memory consumption
  • Simple ways to customize interface
  • Integration with svn/git/bazaar/etc.
  • A task pane to find all of the TODOs in a project.
  • Simple, one button, compilation (like Eclipse)
  • Hooks to extend with any kind of module imaginable.
  • A GUI editor that doesn't suck (Java ones are notoriously slow and crash the system, while wxGlade and Glade have always been finicky)
  • Ability to cross-compile/package built-in.
  • Documentation shown for currently selected item
  • Quality auto-completion
  • An interactive console to try things in
  • Unittest integration (i.e. during each build)

Tuesday, July 3, 2012

A few predictions

This list is more for fun than anything else, but I'd like to make a few predictions for what appears to be the current state of technology and where people say it is going.

Despite claims, the smart TV will never really take off, laptops will die, in-car navigation will disappear quietly, yet desktops may remain.
The thinking behind this is that laptops, car nav, and smart TVs actually can be replaced with a single device; a phone. Phones are getting more and more powerful, more constrained by battery than anything else. Once someone has the idea to stick thunderbolt in a phone, laptops will disappear; as now a phone's hardware can be extended instantly as it is snapped in to a laptop (or tablet) shell. The same will happen to in-car nav, but not for some time, as car manufacturers are always late to the party.
Desktops will remain, but likely not in their current form, probably more as media servers now that we have found ways to increase hdd size exponentially.

File explorers disappear
We've been heading there for a while now, but with the new pervasiveness of iOS, Android, the upcoming Windows 8, and desktop FTS systems I predict the emergence of a technology like elementary-os has in it's apps for sharing files with one another; iOS may never get this as the not invented here syndrome seems to influence that company more than any other despite the fact their system was almost entirely ripped from others.

GUIs will be in one language
Designers and devs are fed up with how badly GUIs are designed and the difficulties of doing so. HTML is likely to be the winner here; as it *already* has--and was built around doing--MVC from the beginning. Other features:
  • easy i18n
  • easy re-designs/theming; even based on screen size
  • easy ways to check for correct code
  • works everywhere
  • thin clients possible
The Internet of Things Won't Happen

The "Internet of things" describes a future where everything is networked to the Internet, information freely flowing around and things, rather than people talking to one another. The problem with this is a complete lack of standard ways of communicating; and reason for doing so.

Perhaps if every device in a home had some API that could be accessed through a common gateway things would work, the gateway would poll all the devices, they would report what they could do, and the user would build things using them. However, there is little reason for a toaster to talk with a fridge or a temperature sensor on a research vessel somewhere in the Pacific.

Security would be a nightmare, people have a hard enough time keeping their computers up to date, less alone installing the newest Java on their blender. Any device that leaked information would allow a lot of interesting surveillance on an individual that people just don't want. Not all devices can be first-class citizens; only some should.