Role ContextHellas Direct (HD) is a well-funded insurance start-up that is replicating the direct-to-consumer motor insurance model in Greece. Having analysed and evaluated 65+ off-the-shelf software systems, HD has decided that the best systems procurement strategy is to develop its own systems in-house. It is therefore in the process of recruiting talented, highly-experienced Java developers for its in-house development team. As this is a new system that will be built from the ground-up using cutting-edge Java and web technologies, the successful applicants will have the opportunity to be involved at an early stage in the company's development by helping to define the design and architecture of the system and be involved in all stages of development from requirements specification to deployment and implementation. This will provide an excellent, and somewhat rare these days, opportunity for team members to develop their technical and process based skills and to gain considerable experience in the development lifecycle of a large-scale, 24x7, business critical, hosted, web-based application.Role DetailThe Senior Java Application Developer will join the Development Team and will work closely with the Senior Application Architect to refine the end-to-end system architecture as well as design and develop the core frameworks that will be used by the rest of the development team. Some of the activities that will need to be performed and/or managed include (but not limited to): Architectural designFramework high-level and detail-designFramework development and unit-testingCore functionality high-level and detail-designCore functionality development and unit-testingUndertaking of code and design reviewsParticipation in requirements and code design reviewsAnd, potentially (depending on the successful applicant's skills, experience and aptitude):mentoring of 1 or 2 junior developersinteracting with business analysts and other (functional) stakeholdershelping with the deployment of development and test environmentshelping with the definition and refinement of HD's development methodology and procedures.Education and Work Experience At a minimum an excellent (2:1 or higher) undergraduate degree. A technical BEng/BSc/BA degree in a Computing or Engineering based discipline is preferred but not required if substantial experience in the activities described in Role Detail above can be demonstratedA minimum of 3 years of hands-on experience in Application DevelopmentA minimum of 2 years' experience in web Application design and developmentA minimum of 2 years' experience of Java and Java related Technologies (preferably Java 5 or 6)A minimum of 2 years' experience in database development (i.e. data modeling, SQL, accessing databases from Java)Essential skills and hands-on experienceSelf-starter, with demonstrable ability to take initiative and work without detailed guidanceStructured problem-solving and analysisExcellent interpersonal skills including the ability to identify and challenge assumptions intelligently and critically without causing offenseStrong interest in and deep knowledge and understanding of ITJ2EE programming and design, both web based (JSP, Servlet and Tag Libraries)Object Oriented programming and designWeb Application Server technologies (preferably one of the major ones such as Tomcat or Jetty)Familiarity with structured design and development methodologiesSQL (data modeling and data manipulation)Web frameworks (e.g., Struts, Spring MVC)System Modeling with UMLXML and XSLHTML and JavaScript (including AJAX)Unix (preferably Linux)Knowledge of Microsoft office applicationsDesired (but not required) skills and hands-on experience CSSAgile / Test Driven Development / Continuous IntegrationPeople management experienceExperience with creating and managing medium size project plans (50 to several hundred tasks)Operational experience with large-scale relational databases (preferably using MySQL as the DBMS)Some knowledge of networking technologies and operational experience with non-trivial LAN & WAN connectivitySome knowledge of and experience with "Network Operations Center" applications (such as HP Openview Operations Center, BMC Performance Manager, Microsoft Operations Manager, Microsoft System Centre Operations Manager, or similar)Specific technologies:Eclipse IDEmySQL 5.xApache 2.xSpring framework, Spring MVCHibernateEnterprise Architect for UML modelingSubversionMavenOther ConsiderationsAs this is very much a "start-up environment", it provides an opportunity for successful applicants to be more directly involved in the general shaping and direction of the company, to pick up some useful general business skills and to potentially interact with end-users directly. HD is task-oriented and what matters is meeting, to the extent possible, development plans. Therefore team members can work flexibly and do not have to be in the office between specific hours every single day. Depending on location, team members will work primarily from home and will make use of "distributed development tools" for close interaction, collaboration and communication with other team members. Team members that are based in a location where HD has an office, may choose to occasionally work from home (therefore saving commute time and hassle) or have slightly different working hours.