We are actively seeking a talented Software Engineer to contribute to the full lifecycle of product development. The ideal candidate will excel at programming well-designed, efficient, and testable code that aligns with project specifications.
Responsibilities:
Develop and Re-Architect:
Contribute to the development of new capabilities and re-architect existing system components.
Engage in test-driven, iterative development, prototyping, and collaborative code reviews with a dynamic team of developers.
Backend Design and Coding:
Design and code middle and back-end components in a clean and efficient manner.
Implement scalable and robust services to enhance overall system performance.
API Development:
Develop external and internal APIs, ensuring seamless integration with existing systems.
Contribute to the creation of reliable and user-friendly API documentation.
Testing and Debugging:
Develop and execute unit and performance tests to ensure scalability and reliability of the software.
Review and debug code to maintain code integrity and efficiency.
Documentation and Design:
Create comprehensive documentation, including flowcharts, layouts, diagrams, charts, and code comments.
Implement clean code practices and contribute to maintaining a well-documented codebase.
System Specification and Standards:
Determine and design system specifications, standards, and programming guidelines.
Collaborate with the team to prepare and install effective software solutions.
Requirements:
Education: Bachelor's degree in Software Engineering, Information Technology, or a related field.
Experience: Between 1 and 3 years of hands-on experience in software engineering.
Technical Skills:
Proficient in Java and experience developing server-side web applications.
Solid experience with Java Web Services, including exposure to REST and SOAP APIs.
Familiarity with both relational databases (e.g., MySQL, PostgreSQL) and NoSQL databases (e.g., MongoDB).
Strong object-oriented development skills.
Demonstrated ability to quickly adapt to and leverage new technologies.
Knowledge:
Understanding of Java frameworks, architecture, and design patterns.
Communication Skills:
Effective communication skills to collaborate within a cross-functional team.