Technical Skills:
- Java EE (required)
- NetBeans / Eclipse or similar IDE (required)
- Java web framework
- HTML and CSS knowledge
- Node.js (Optional)
- SOLID Design Principles (Practical experience)
- Practical knowledge of a few Designs Patterns
- Database skills – MySQL / SQL Server / Oracle
- Knowledge on Hibernate
- Service-oriented architecture (basic)
- Domain Driven Design (basic)
- Agile and Scaled Agile Framework (basic)
- Kanban and Scrum (basic)
Advantageous:
- C#, Delphi, PHP or other language
- Source Control (SVN, TFS, Bitbucket).
- Project Management / Bug Tracking – e.g. Jira
Duties and Responsibilities:
Build and Support Applications in a Technically Exciting and Challenging Industry
- Engage with Cutting-Edge Technologies: Stay updated with the latest trends and technologies in the industry and integrate these innovations into application development.
- Understand Industry-Specific Requirements: Grasp the unique challenges and needs of the industry you’re working in, whether it’s finance, healthcare, e-commerce, or another field, and tailor your solutions accordingly.
- Deliver High-Performance Solutions: Focus on creating applications that meet stringent performance and reliability standards, often required in high-demand sectors.
- Problem Solving: Identify and resolve complex technical issues and challenges quickly, often in a high-pressure environment.
- Collaboration and Communication: Work closely with cross-functional teams, including business analysts, product managers, and other developers, to understand and address industry-specific challenges.
Design, Develop, Test, Document, and Support Applications Written in Java EE
Design
- Architect Scalable Solutions: Develop application architectures that can handle large-scale operations, ensuring scalability and flexibility.
- Component Design: Create modular and reusable components that can be easily integrated and maintained.
- User-Centric Design: Ensure the user interface (UI) and user experience (UX) are designed to meet the end-users needs and expectations.
- Security Considerations: Incorporate best practices into the design to protect against threats and vulnerabilities.
- Technical Documentation: Produce detailed design documentation that outlines system architecture, data models, and technical specifications.
Develop
- Java EE Development: Write clean, efficient, and maintainable code using Java Enterprise Edition (Java EE) standards and frameworks.
- Integration: Develop APIs and integrate with third-party services and systems, ensuring seamless communication between software components.
- Database Interaction: Design and implement robust database interactions, using Java EE technologies such as JPA (Java Persistence API) for data access and manipulation.
- Code Reviews: Participate in peer code reviews to ensure high code quality and adherence to best practices and standards.
Test
- Unit Testing: Write and execute unit tests to validate individual components of the application.
- Integration Testing: Use integration tests to ensure that different modules and services interact correctly.
- Automated Testing: Implement automated testing frameworks to streamline the testing process and ensure continuous integration and delivery.
- Bug Fixing: Identify, troubleshoot, and fix bugs and issues in the code, improving the application’s stability and reliability.
Document
- User Documentation: Create comprehensive documentation for end-users, detailing how to use the application effectively.
- Technical Documentation: Maintain detailed technical documentation for developers and system administrators, including installation guides, troubleshooting tips, and API references.
- Code Documentation: Write clear comments and documentation within the code to explain complex logic and workflows.
- Version Control: Keep a well-documented version history of the codebase to track changes and facilitate collaboration.
Support
- Application Maintenance: Provide ongoing support and maintenance for the application, ensuring it remains functional and up-to-date.
- Troubleshooting: Quickly diagnose and resolve issues reported by users or detected by monitoring systems.
- Performance Monitoring: Continuously monitor the application’s performance and make improvements as needed.
- Customer Support: Assist customers and end-users with their queries and issues, providing timely and effective solutions.
- Upgrades and Enhancements: Plan and implement application upgrades and new features to keep the software competitive and aligned with business needs.
Skills and Competencies Required:
- Proficiency in Java EE: Deep understanding of Java EE architecture, components, and frameworks such as EJB, JSP, Servlets, and JPA.
- Knowledge of Industry Trends: Awareness of the latest developments and challenges in the specific industry.
- Software Development Lifecycle: Familiarity with all phases of the software development lifecycle, from planning and design to deployment and maintenance.
- Problem-Solving Skills: Ability to quickly and effectively troubleshoot and resolve technical issues.
- Communication and Teamwork: Strong ability to communicate and collaborate with various stakeholders and team members.
- Attention to Detail: A keen eye for detail in both coding and documentation to ensure high-quality deliverables.
- Adaptability: Flexibility to adapt to new technologies, processes, and project requirements.
- Time Management: Efficiently manage time to meet project deadlines and balance multiple tasks simultaneously.
Minimum Requirements:
Educational Requirements:
- Bachelor’s Degree or Diploma in Information Technology, Computer Science, or a related field.
- Equivalent work experience will also be considered.
Experience Requirements:
- A minimum of 5 years of experience as a Software Developer.
Desired Skills:
- JavaEE
- Java
- Full Stack