Job Description
<p><strong>Job Description</strong></p><p><br></p><ul><li>Design and implement new software programs.</li><li>Produce efficient and elegant code based on requirements.</li><li>Make good technical decisions that provide solutions to business challenges.</li><li>Write Integration and Unit test for the written code.</li><li>Troubleshooting, debugging, maintaining and improving existing software.</li><li>Recommend and apply software improvements to ensure speed, scalability and security.</li><li>Extract and maintain reusable software components.</li><li>Create technical documentation to guide future software development projects.</li><li>Clearly and regularly communicate with management and technical teams.</li><li>Maintain up-to-date knowledge of technological developments in the industry.</li><li>Share knowledge and technical experience with company members.</li><li>Conduct code reviews to ensure proper design and coding practices.</li><li>Provide technical guidance to junior team members</li></ul><p><br></p><p><br></p><p>Qualifications</p><ul><li>BS/MS degree in Computer Science, Engineering or a related subject.</li><li>5+ years of proven professional experience in Java or Ruby on Rails.</li><li>Proficiency in English.</li><li>Good Communication and negotiation skills.</li><li>Critical Thinking and Problem Solving skills.</li><li>Deep knowledge of Software Design Principles.</li><li>Deep understanding of Object Oriented Programming concepts.</li><li>Deep understanding of Design Patterns.</li><li>Strong troubleshooting and debugging skills.</li><li>Good experience designing and implementing RESTful APIs.</li><li>Good understanding of database systems and practical experience with relational databases.</li><li>Familiarity with the Linux operating system.</li><li>Familiarity with using Docker.</li><li>Experience using Git for source control.</li><li>Experience writing unit and integration tests.</li><li>A critical eye for code weaknesses and points of improvement.</li><li>Ability to provide in-depth evaluation and analysis of complex technical issues.</li><li>Ability to continuously learn and apply solutions using new technologies.</li><li>Ability to provide mentoring and guidance to junior developers.</li><li>Knowledge of GraphQL is a plus.</li><li>Knowledge of React is a plus.</li></ul><p></p>