Job Summary: You will take a key role on a talented multi-person team and work on the development and enhancements of software applications. You'll write a large amount of code, design, communicate ideas to the team, implement and ultimately be able to step in and handle any component or the entire life cycle of the process. We have a fast moving environment where you might have multiple projects -- new development, upgrades, enhancements, etc. You'll use a wide range of programming skills in completing these tasks
SUMMARY OF RESPONSIBILITIES
Your specific activities will include:
• Writing:
o Java code, HTML, JavaScript, SQL.
• Evaluating: o Requested changes/enhancements to size requests.
o Software products to be offered in conjunction with existing products.
o Development, test and productivity tools.
o Operating environments required for application usage
o Extension of the application onto mobile platforms. ]
• Determining: o How to incorporate requests into the existing database structure and multi-language codebase.
o End user hardware and software requirements for product installations.
• Developing and/or identifying:
o Integration of internal and external product design into a cohesive user experience.
o Requirements for a requested software change/enhancement.
o Automated test capabilities through software design.
o Paths from existing to future software architectures.
• Maintaining: o Documentation and coding standards.
o Up-to-date knowledge of technological advance
Qualifications:
To perform this job successfully, an individual must meet expectations of each essential duty. The requirements listed below are representative of the knowledge, skills and abilities required.
EDUCATION:
• Bachelor's degree Bachelor's degree in computer science/engineering
EXPERIENCE: • Minimum 8 years continuous experience in high level programming languages.
• Experience in a leadership role with a team of software engineers.
Job Duties & Requirement (included but not limited to the following): TECHNICAL KNOWLEDGE AND/OR ABILITIES
• Desire for career growth to include software product and team management.
• Experience with object-oriented programming in Java
• Experience with Java frameworks such as Spring and Hibernate/JPA, as well as Servlet containers like Tomcat, Jetty, or WildFly.
• Proficiency with Java builds tools such as Maven and Gradle
• Proficiency with Git
• Experience utilizing Eclipse, IntelliJ, or NetBeans IDEs
• Experience using a SQL database engine and accessing data via JDBC or an ORM, as well as writing SQL
• Solid understanding of object, component, and service-oriented design principles.
• Experience with GWT and specifically SmartGWT frameworks, SmartGWT Version 12 or 13 with enterprise level features preferred. Both client and server-side development experience a plus.
• Experience with Docker containers
• Experience integrating multiple software applications using IPC methods and web services. You also will need the following competencies
• Exceptional interpersonal and communication skills, including the ability to act as a bridge between non-technical users and technical resources.
• The ability to: o Perform against tight deadlines and multi-task effectively.
o Work effectively with groups of varying technical expertise.
o Excel at both working independently and in a group setting.
• Strong self-motivation balanced with a desire to achieve team goals.
• Ability to lead a project development team that utilizes onshore and offshore resources. Preferred but not required:
• Experience contributing to software packages sold to external customers, including responding to input from customers.
• Understanding of formal software development methodologies, preferably agile
• Experience using an ORM.
• Experience with Linux servers/command line
• Experience with public cloud vendors (AWS, GCP, Azure