Being a Cocoa/iPhone developer, I've had a lot of recruiters come out of the blue and contact me about this or that job. Quite a change from the days where uttering the words "Cocoa", "Apple", or "Macintosh" in a job interview would instantly put a disappointed look on the face of a hiring manager (and your resume in the waste bin). The other day I got an email from such a recruiter named Vikram (names have been changed to protect the innocent). Vikram's e-mail included a very lengthy list of requirements. So lengthy that not only could no programmer likely satisfy them, but so long I would be forced to put the list at the bottom of my blog posting for the sake of brevity.
I could spend the next hour writing a long tirade castigating Vikram's requirements, and complaining about the excessive emphasis on advanced degrees and buzzwords and ability to remember who you took to your high school prom (I went stag, BTW). But instead, I'll put a list of thirteen criteria I can immediately think of that define whether a programmer is someone good who you want to hire (not to says there aren't other criteria):
1. Understanding of programming-as-strategy. 90% of software development is actually strategy. Once and a while you might just get the chance to write code.
2. Direct-to-brain upload functionality. In other words, when handed a book about an unfamiliar programming language, a reasonably skilled programmer should be able to learn enough to write a "Hello World" application within the first hour.
3. A sense of "should". All programmers have a highly over-developed sense of "can", but only the good ones have that voice in their head that says "I know you can cram all the code for it on one line of assembler, but should you really do this?".
4. Ability to find and reuse existing code on the Internet. They should query sourceforge and google code for existing code before starting to write something themselves.
5. Ability to make his/her own code reusable. This requires putting oneself in the shoes of a programmer unfamiliar with your code looking at it for the first time. A good programmer understands that code has to be "actively designed" to be reusable, and that it's not enough to "passively hope" that another programmer will want to reuse it.
6. Ability to understand the costs, tradeoffs, and potential limitations of using someone else's code, and how those factors tie into the overall software strategy. A good programmer knows when someone else's code will put you ahead in the future, as well as when it will put you behind.
7. Ability to read other people's code, especially if it's messy.
8. Ability to step through code with a debugger. Surprisingly, a lot of people seem to graduate from CS programs without this ability.
9. Ability to refactor code in a way that promotes code reuse. A good programmer only writes code once.
10. Ability to use source code control systems and to be able to apply a good versioning/release strategy.
11. Ability to stick within the idioms of whatever language he or she is working on.
12. The ability to read the trends in existing client requirements and at least sometimes correctly predict and deal with all the contingencies the client will bring to you before they've even said anything to you about them.
13. Ability to solve problems logically starting with simple, low-cost solutions and empirical tests and gradually moving towards investigation using complicated theoretical models and high-cost solutions. Work from low cost to high cost, simplest to most-complex.
PLEASE ONLY SUBMIT CANDIDATES WHO ARE AVAILABLE FOR IN PERSON INTERVIEWS WITHIN 1 WEEK OF BEING SUBMITTED TO MANAGER ; CANDIDATE WILL BE EXPECTED TO TAKE WRITTEN TEST FOLLOWED BY POSSIBLE IN PERSON INTERVIEW AFTWERWARDS ; CANDIDATE SHOULD BE PREPARED TO BE THERE FOR SEVERAL HOURS
On the resume submission Please make sure to list School / University candidate graduated from along with Location, GPA, Year of Graduation, etc. Please dont submit candidates that just have a Masters of Computer Applications (MCA) Degree ; The HMs in Florham Park dont like candidates with this type of education background.
Job Description:
PLEASE ONLY SUBMIT CANDIDATES WHO ARE AVAILABLE FOR IN PERSON INTERVIEWS WITHIN 1 WEEK OF BEING SUBMITTED TO MANAGER ; CANDIDATE WILL BE EXPECTED TO TAKE WRITTEN TEST FOLLOWED BY POSSIBLE IN PERSON INTERVIEW AFTWERWARDS ; CANDIDATE SHOULD BE PREPARED TO BE THERE FOR SEVERAL HOURS
MUST email copy of official transcript
s and Education History in PDF format (Candidates Name_Type of Degree) once you confirm Interview.
1. Complete education history -- All schools, degrees earned.
2. GPAs
3. Course list -- Mathematics (post algebra) and Computer Science (other relevant courses as deemed necessary by the vendor)
Senior iPhone/Web Apps Developer Job Requirements
- Strong development experience with XCode, Objective C, Cocoa Touch, iPhone SDK, Interface builder, iPhone App Dev Experience, Google Maps API
- Knowledge and experience developing location based apps and services for mobile telecom network- SOA experience, and ability to develop iphone apps that can manage data packets stats including length (in Bytes) from each of the IP packet headers, packet count, byte count, etc
- Ability to Track GPS coordinates, cell and sector ID, IMEI, app identifier, OA&M packets, etc for iPhone apps.
- 5+ years of web database application development experience using MVC Architecture
- Must have experience developing with Struts/Spring framework and Hybernate
- 3+ years of experience using JSP, Servlets, Beans, EJBs, J2EE, XML
- 5+ years of Oracle SQL and PLSQL experience
- Experience with developing web graphical reports using server-side Java packages (JFreeChart, etc)
- Ability to develop basic images/icons for web pages using any graphical dev. tools ( Adobe, etc)
- Sun Java Certification
- Oracle SQL/PLSQL Certification (desired but not required)
- Strong front-end development skills in HTML, DHTML, JavaScript, Ajax, CSS, XML, XSLT
- Must have used JBuilder, Eclipse or JDeveloper, SQL Navigator/TOAD, Apache, Tomcat, Unix (Solaris), Oracle 9i/10/11G for production-level projects
- Experience using Tomcat, Apache, or Web Logic
- Strong Reporting/OLAP/DataWarehouse experience and skills in developing custom and ad-hoc reports.
- Good verbal and written communication skills, ability to interact with clients and business users
- MS/Ph.D. in Computer Science/Information Systems or related major
- Ability to take lead developer/architecture role for different systems
Skill Experience Need
1) XCode, Objective C, Cocoa Touch, iPhone SDK Expert Required
2) Interface builder, iPhone App Dev Experience Expert Required
3) Google Maps API Expert Required
4) HTML, DHTML, JavaScript, Ajax, CSS, XML, XSLT Expert Required
5) JSP, Servlets, Beans, EJBs, J2EE, XML Intermediate Required
6) Oracle, SQL and PLSQL Intermediate Required
7) Spring/Hibernate Intermediate Required
8) Dev. of location based apps Intermediate Desired
9) MS or Ph.D. in Engineering or Computer Science Expert Desired
10) Track GPS coordinates, cell and sector ID, etc Intermediate Desired