Backend Application Developer - Job Description
Position Summary
We are currently looking for an experienced application developer who is well-versed in database-centric application development and will support the ongoing development of the company’s web-based software products and internally developed support systems.
You have extensive experience designing database structures and associated queries and procedures. You must be able to assess the business requirements accurately and translate them into technical implementations.
You will own all the technical aspects of your deliverables while keeping a close eye on estimates, status, code quality, team productivity, and deliverable dependencies on your components.
Duties of the Backend Application Developer
Tasks of the Backend Application Developer revolve around the development of enterprise-class, database-focused web-based applications which include :
- Design, code, and unit test core application components by applying advanced knowledge of modern programming languages and mentoring less experienced team members
- Assist in the creation of architectural design specifications by collaborating closely with stakeholders and the development team
- Ensuring that the software architecture fulfills non-functional requirements which include but are not limited to performance, scalability, security, extensibility, and maintainability
- Document and present design, architecture, and technical approaches to aid in code maintenance and code reuse
- Proactively anticipate roadblocks to accommodate product delivery schedules and collaborate with team members and managers for workarounds
- Assist in daily scrum meetings and change requests to ensure smooth sprints
- Participate in post-implementation reviews and discussions by providing recommendations on process improvements, knowledge sharing, and communication flows for continuous optimizations
- Debug defects and troubleshoot issues reported by the Software Quality Assurance and / or Client Services teams in a timely manner
Technologies in Use
PostgreSQL, PL / pgSQL, GraphQL (Hasura), ionic.io, VueJS, Java, Spring Framework, MongoDB, Python, Debian Linux, Docker
Education and Training Requirements
The minimum post-secondary education requirement is a Bachelor’s degree with concentrated study in Computer Science, Engineering, or other related disciplines or equivalent work experience.
Knowledge and Skills Requirements
The Backend Application Developer should possess the following ideally :
- 8+ years in a commercial software application development environment
- 6+ years of relational database-backed application development
- 7+ years of Java experience
- Strong Linux knowledge and ability to work comfortably in a Linux command line environment in addition to IDEs
- Excellent knowledge of relational database design principles including schema design, procedures, queries, constraints, transactional boundaries, troubleshooting, and query performance tuning
- Knowledge and experience with PostgreSQL and PL / pgSQL scripting (preferable) or other relational databases
- Working experience with Hasura as an asset
- Knowledge-building Java-based REST or GraphQL web services
- Knowledge of front-end UI development languages and frameworks (ionic.io, VueJS, React, etc) and methodologies for back-end communications (REST, GraphQL, etc )
- Ability to document software designs and produce clean, understandable, well-commented code
- Experience practicing agile development methodologies such as Scrum
- A proven track record of successfully designing, developing, and launching enterprise web-based applications to the market.
Person Specification
The Backend Application Developer is a passionate seasoned professional in software development. You have a relentless determination to be customer focused and results-oriented to ensure the customers will always have the most intuitive user and fast responsive experiences in using our applications.
You have excellent verbal and written communication skills. You should have a track record as a team player that knows how to work within a world-class development team in a highly collaborative manner.
You must have a desire to continuously improve your knowledge as it relates to new and emerging web and back-end technologies, development tools, and best practices.
You must be able to work proactively, with minimum supervision, and manage project deliverables under tight deadlines in a fast-paced environment.