Role
Participate in the vision creation, design, development,
deployment, testing, release, maintenance and support of high quality software
applications for Fixed Solutions Customers, as well as applications for Fixed
Solutions internal use.
Responsibilities
• Supporting the sales team
in achieving the company's sales target by creating a solution vision,
designing, sizing and estimating the implementation cost of competitive
software solutions.
• Selecting the most
effective and efficient approach for delivering software solutions.
• Ensure junior and mid-level
team members have the required knowledge, skills and experience for successful
delivery.
• Leading a project's
software development team throughout the whole software development life cycle.
• Ensure junior and mid-level
developers participating in projects have a clear vision of the project and
their role, and work on clearly defined tasks.
• Ensuring the developed
software solutions meet all the customer's functional and non-functional
requirements.
• Ensure every component of
the delivered software applications meets or exceeds both the customer's and
Fixed Solutions quality objectives.
• Ensure successful delivery
of the developed software solutions.
• Expending every effort to
ensure software development projects stay on track from the time and cost
points of view.
• Participating in improving
the effectiveness and efficiency of the software development operations.
Duties
• Creating high level design
for software solutions during the bidding process based on the available
business requirements.
• Sizing software development
projects and estimating the effort required to deliver high quality software
solutions.
• Participate in defining the
project scope, creating high level design diagrams and defining project
implementation timeline during the bidding phase.
• Breaking down the overall
software system into components with clearly defined functions and integration
interfaces, whenever required.
• Creating detailed design
and producing high quality accurate and complete design documentation during
project delivery.
• Breaking down software
development projects into well defined tasks and activities, with clear
dependencies.
• Overseeing release planning
activities (backlog estimation, etc…)
• Guiding and coaching junior
and mid-level developers both on and off projects.
• Reviewing and approving
effort estimations during sprint planning.
• Working closely with a
multidisciplinary team (Developers, DevOps, QA engineers, Product Owners)
throughout the software development project's life cycle.
• Developing software
components and modules, especially those of higher complexity of criticality.
• Performing unit testing on
developed modules and components.
• Reviewing code and
artifacts developed by peers and other team members and creating peer review
analysis reports.
• Deciding when to conduct
application penetration testing and engaging application penetration testing
teams when required.
• Reviewing source code
baseline after every sprint.
• Participate in roll-out
planning
• Evaluating the performance
of junior and mid-level software development project team members.
Requirements
Required Qualifications:
Knowledge:
• Excellent knowledge of
software sizing and effort estimation methodologies.
• Excellent knowledge of
HTML, CSS and JavaScript.
• Excellent knowledge of
back-end development using Node.js and Python
• Excellent knowledge of
relational and non-relational database systems
• Good knowledge of Front-end
JavaScript frameworks such as React
• Good knowledge of
information security and secure programming practices.
• Good knowledge of messaging
queues applications (Kafka, RabbitMQ, etc...)
Skills
• Excellent software design
skill
• Excellent ability to
develop modular, well-organized, secure, high quality clean code.
• Excellent problem solving
skills
• Very good leadership
skills.
• Excellent verbal and
written communication skills
Experience
• 10+ years
experience as a Full Stack Developer or a related field.
• 10+ years experience in developing Python and Node.js backend applications
• 10+ years
experience in designing database systems using MySQL, PostgreSQL and MongoDB.
• Solid experience working
with Containerization technologies (Docker, Kubernetes, etc..)
• Experience with Front End
development using JavaScript, Typescript, React.
• Experience in using agile
development methodologies and practices in software development (e.g.
Continuous Integration, Refactoring)
• Experience working within a
Scrum team
• Experience working with
Atlassian toolset (Jira, confluence, etc...) is a plus
Other Qualifications
• Bachelor's degree of Computer Science,
computer engineering or an equivalent degree.
• A track record of
delivering software to agreed quality and cost.