The purpose of this position is to serve as a Software Engineer in computer application development. The person holding this position would design, develop, document, unit-test, implement and deploy web-based Java applications to support business requirements. The responsibilities also include documentation, and ongoing application maintenance. The incumbent would also be interpreting specifications and creating system design.
Education and Experience Required:
- Bachelor's in computer science with a minimum of 5 years or Master's degree with a minimum of 3 years' experience in structured programming, web application design, database operations, and programing languages.
Computer Skills Required (including level of expertise):
Significant experience with modern web application design and development using JAVA programing language, Spring Framework and related technologies.
- Thorough in-depth knowledge of Spring Framework.
- Knowledge of API services and security.
- Fair amount of experience with SQL and stored procedures.
- Understanding of operations/deployment and full-stack know-how.
- Experience with either version control systems like Git, SVN, BitBucket, etc.
- Thorough knowledge of web applications, database operations, and markup languages.
- Knowledge of Java script and JSON callbacks.
- Good understanding of IT best practices such as developing technical design
- documentation, software quality assurance, code peer review process, change controls,
- agile methodologies etc.
- Regularly contribute to the development of new concepts, techniques, and standards.
- Proven track record in completion of development projects, responsiveness to users, high
- productivity, and open communication.
- Knowledge of Learning Tool Interoperability and Learning Management Systems is
- Knowledge of Angular is preferable.
Responsibilities (main responsibilities of the job; including financial authority, supervision, representing APA to members and outside organizations, and other duties as assigned):
- Design and develop structured application programs and interfaces based on requirements and directives. Develop workflows that facilitate easy interaction between systems and users. Document the applications and enable other team members to be able to maintain them.
- Design database schemas to support programming efforts.
- Maintain existing applications, adding new features and improving efficiencies on them constantly. Perform releases on existing applications as a part of the development team. Provide maintenance and support response to internal and external clients.
- Research new and innovative technologies and help integrate them into workflows.