Senior Engineer Java

Profile

As a Senior Engineer you'll have more than 5 years of experience, you're over 30 years old and you can manage the technical side of a software project. You master all the skills mentioned below. Senior Engineers can act as Applications Architect as well as Team lead. You are capable of planning and tracking a software development project. Seniors are familiar with development processes such as RUP, Scrum and Prince2. Senior Engineers are hands-on and coach the members of the team. You are very aware of the processes within a corporate environment (DTAP) and report to the overall project manager.

Skills

JAVA APPLICATION DEVELOPMENT

  • Java 1.4 to 6.x
  • Web development with JSP or JSF and Spring MVC, Struts or SEAM
  • Spring framework Core, Persistency and Remoting or comparable technologies
  • Object Relational Mapping such as Hibernate 3, Spring JDBCTemplate and IBatis
  • Databases: JDBC with MySQL, Progress, Oracle 8+
  • Eclipse 3.x or comparable IDEs
  • SubVersion and CVS
  • Maven 2.x (or Ant)
  • Documentation JavaDoc, Technical design, UML
  • Unit testing

JAVA APPLICATION DESIGN

  • OO analysis and design UML Class Diagrams and Sequence Diagrams (Using Enterprise Architect or Rational Tools)
  • Interviewing skills, brainstorming and functional design
  • Technical design
  • Design Patterns (Fowler PoEA and GoF): MVC pattern, Template Pattern, Domain Model, Factories, Singleton, Strategy Pattern
  • Enterprise Java and SOA: JMS, EJB 3 and Web Services
  • Application Servers such as Apache Tomcat 4/5, JBOSS, IBM Websphere 4/5/6, or BEA Weblogic 8/9
  • Application Security through J2EE security (ServletAPI), or ACEGI and LDAP

RELEASE AND PLANNING

  • Development methodologies such as RUP, Scrum, and XP
  • Project management experience (Prince2, PMI)
  • Continuous Integration with CruiseControl or comparable
  • Testing driven development with JUnit, EasyMock, rMock, DBUnit, Fitnesse
  • Release Management: releasing to DTAP (dev, test, acceptance, production) environments
  • Version management (branching, merging and patching, backward compatibility)