Java Developer - Technical Requirements


Requirements:

  • BS, MS, or PhD in Computer Science or related technical discipline (or equivalent)
  • A solid foundation in computer science, with strong competencies in data structures, algorithms, and software design
  • Extensive programming exposure/experience in Java (strong OO skills preferred). C++ Exposure and/or experience can be substituted
  • At least 1 year of large scale and high volume software design and development experience
  • Knowledge of Windows, UNIX or Linux Operating Systems
  • Coding skills in JavaScript/AJAX, database design and SQL
  • Knowledge of TCP/IP, HTTP and network programming are a plus
  • Object Oriented Design Principles
  • JDBC, ODBC and SQL
     

Additional Requirements:

  • JavaScript and DOM API 
  • Understanding of Java Swing, AWT, or SWT helpful but not required
  • Understanding of the Java Servlet API, Java Server Pages, Servlet  Specification
  • Understanding of and/or experience in Google Web Toolkit  (GWT)
  • Ajax experience including GWT. Knowledge of other Ajax and/or JavaScript API’s like DOJO, DWR, Script.aculo.us will be a plus 
  • Java Native Interface
  • Web Services (SOAP, REST)
  • Java EE and Enterprise Java Beans (EJB)
  • JPA
  • Remote Method Invocation (RMI)
  • JSON/SONP
  • Design Patterns
  • Web Design using CSS and other design techniques
  • Test Driven Development
     

Responsibilities:

  • Write server-side code for web-based applications, create robust high-volume production applications, and develop prototypes quickly. You should also have a strong understanding of, and practical experience with, Java web application development
  • Write database access software using any of the Java EE frameworks or using raw JDBC code
  • Work with web designers to create web page layouts using CSS, HTML and other related technologies
  • Write UI code using Java Swing/AWT/SWT or related UI frameworks
  • Write AJAX code using GWT or other similar AJAX technologies
  • Use JNI or other techniques to effect data interchange between Java and C/C++ or other languages
  • Designing architectures for systems integration