Fullstack Software Developer (Java)
|Date Posted||January 3, 2023|
We are looking for a Software Developer, who’ll be the brain behind crafting, developing, testing, going live and maintaining the system. You must be passionate in understanding the business context for features built to drive better customer experience and adoption.
- Advanced knowledge of the software development lifecycle: SDLC (Requirement gathering and analysis, Design, Implementation and Coding, Testing [including unit and integration testing], Deployment, Maintenance).
- Advanced knowledge in data layer design (relational databases). Practical knowledge of related concepts such as normalization (up to the 3rd normal form).
- Advanced knowledge of Java programming language.
- Knowledge of Webservices / API implementation with Java (proficiency in the Spring framework is an advantage) and web application frontend (Angular, React, HTML/CSS).
- Knowledge of data structures and algorithms.
- Designing, implementing, and maintaining Java applications that are often high-volume and low-latency, required for mission-critical systems
- Interacts professionally with clients and internal business units to assist in developing core business requirements for applications.
- Designing applications in line with best practice and the specific requirements of clients (clean code, test coverage, source code version control, pull requests, code review, issue tracking, graceful as well as aggressive error handling).
- Documenting and communicating design approach and methodology to clients.
- 2+ years of software development experience.
- Rich experience in Application Development is a requirement.
- Experience in the design, development, deployment, and management of at least 3 large-scale enterprise application (JAVA) projects
- Bachelor’s Degree in Computer Science, Management Information Systems, Engineering, or any of the Physical Sciences from a reputable University.
- An Advanced Degree. Is an added advantage.
- Proficient in data layer design (for both relational and NoSQL databases). Practical knowledge of related concepts such as normalization (up to the 3rd normal form).
- Understands and can design and implement software to support performance on the scale (when it's interacting with a lot of users and/or a lot of data).
- Proficient in Java/Java EE and any other programming and/or scripting languages.
- Proficient in Webservices / API design and implementation with Java (proficiency in the Spring framework is an advantage) and web application frontend (Angular, React, HTML/CSS).
- Practical knowledge of data structures and algorithms
- At least some basic agile / project management skills; are required to deliver on a software feature/project.
- Have a working understanding of application security concepts (security of data at rest or in transit, access control, audit logging) and be able to apply them in application design and development.
- Proficiency in the use of modern tools and technologies that help with the software development lifecycle. Specifically:
- Git for version control
- Maven or Gradle for project lifecycle management
- UML2.0+ (Class diagrams, Use case diagrams)
- Docker for containerized deployment
- Critical thinking.
- Ability to communicate effectively verbally and in writing.
- Knowledge of modern computer hardware, and software and ability to work on multiple assignments with efficiency.
- Honesty, integrity, and commitment to work.
- Teamwork, proactive, self-driven, results-oriented with a positive outlook