Software Engineer - AI Focus (Center for Technology in Education)
Johns Hopkins University
The Center for Technology in Education in the School of Education at Johns Hopkins University seeks a Software Engineer - AI Focus to support the development of an AI-driven educational tool powered by a serverless API that connects a Retrieval-Augmented Generation (RAG) system to a frontend visualization tool. This is a backend-focused role responsible for the entire backend API layer, including its logic, security, and performance. In this role, the candidate will translate complex, branching pedagogical guidance into a reliable and efficient API. This requires a deep expertise in advanced prompt engineering, serverless Node.js development, and data-schema validation.
The Software Engineer - AI Focus will be responsible for the creation, implementation, maintenance, performance, production support and documentation of various departmental and enterprise-wide application systems. This includes but is not limited to the installation, modification, and testing of new and/or upgraded applications (packages or homegrown), operating systems, file structures, hardware, communication devices, and productivity tools. Applies analysis techniques and procedures to gather and then translate business requirements into functional/technical specifications and designs. Using functional specifications and designs, produces all or part of the deliverables. Maintains databases and application system code.
Responsible for full life cycle of medium to large sized complex projects; strong technical skills; strong ability to understand complex business processes. Develops solutions based on extensive technical knowledge, skills and experience; influences client towards innovative/integrated solutions.
Specific Duties & Responsibilities
- The responsibilities listed below are typical examples of the work performed by this position.
- Not all duties assigned to this position are included, nor is it expected that everyone in this position will be assigned every job responsibility.
Analysis & Requirements Gathering
- Define complex business/clinical/education problems by meeting with clients to observe and understand current processes and the issues related to those processes. Provide written documentation of findings to share with the client and other IT colleagues.
- Gather complex system requirements by meeting with clients and researching existing technology to understand the business requirements and possible solutions for new applications.
Design & Development
- Develop detailed tasks and project plans by analyzing project scope and milestones for complex projects to ensure product is delivered quickly according to software lifecycle standards.
- Write functional/technical specifications from the complex system requirements, putting them into functional and technical descriptions for use by programmers and business analysts to develop technical solutions.
- Develop/change data input, files/database structures, data transformation, algorithms, and data output by using appropriate computer language/tools to provide technical solutions for complex application development tasks.
- Document code and associated processes by adhering to development methodologies, adding code comments and appropriate documentation to various knowledge-base system(s) to simplify code maintenance and to improve support.
- Provide monitoring and guidance in application design and development to more junior staff.
- Provide thought leadership in designing and developing innovative integrated solutions.
Testing & Documentation
- Create and document complex test scenarios using the appropriate testing tools to validate and verify application functionality.
- Test all changes by using the appropriate complex test scenarios to ensure all delivered solutions work as expected and errors are handled in a meaningful way.
- Author and maintain documentation by writing audience-appropriate materials to serve as technical and/or end-user references.
- Mentor junior staff in testing tools and technologies by reviewing their work.
Implementation & Maintenance
- Implement changes by adhering to the change management policies and procedures for any given project to communicate to all parties the nature, significance, and risk factors of the solution.
- Monitor changes and resolve complex problems by responding as they occur, by reviewing all processing and output of the newly implemented solution, and by proactively ensuring the solution works successfully to satisfy the customer requirements and to provide a smooth transition to the new solution.
- Provide support by investigating and resolving issues, including complex issues to ensure prompt, effective service.
In addition to the duties described above
- Advanced Prompt Engineering - Design, develop, and iteratively refine the system prompts responsible for managing the entire conversational flow, performing complex reasoning, and generating required structured data (e.g., JSON) based on a defined schema.
- Serverless Function Development - Build, maintain, and monitor the core Node.js serverless functions on serverless platforms (e.g., Netlify, AWS Lambda, etc.).
- RAG API Integration - Implement and optimize the API calls to a managed RAG knowledge base (e.g., CustomGPT or similar). This includes programmatically instructing the AI to use metadata filtering for precise, low-cost retrievals.
- Data Validation & Security - Implement and maintain programmatic validation code to ensure 100% schema compliance for all structured data output from the LLM. Implement all server-side security mitigations, including API key management, security headers, and safeguards against prompt injection.
- Observability and Support - Implement the monitoring and analytics strategy (logging token usage, latency, validation failure rates) and address issues related to production outages, high error rates, or schema failures.
- Collaboration - Work closely with the Frontend UX Engineer to ensure the structured data contract is stable, efficient, and meets the needs of the visual rendering engine.
Minimum Qualifications
- Bachelor's Degree (or foreign equivalent) in Computer Science, Computer Information Systems, Information Technology, Electronic Engineering, or a related field.
- Five years of related work experience with computer systems and applications.
Preferred Qualifications
- Knowledge in the assigned application as well as the platform on which it runs.
- Three years or more professional experience in a backend or full-stack role with a heavy focus on serverless Node.js applications (e.g., Netlify Functions, AWS Lambda, Google Cloud Functions).
- Demonstrated experience with prompt engineering and managing conversational state and converting LLM output to structured data (e.g., JSON).
- Demonstrable experience with data validation libraries to enforce strict schema contracts.
- Proven experience with authentication using 3rd-party APIs.
- Proven experience integrating third-party APIs (especially RAG or LLM APIs) within a serverless environment.
- Strong understanding of serverless security principles, including API key management and mitigation strategies for common LLM vulnerabilities.
Additional Knowledge, Skills, and Abilities
- A strong portfolio of work that includes examples of complex backend API development and examples of advanced system prompts you have authored for complex, multi-step AI systems that require advanced reasoning.
- Experience with the full lifecycle of conversational AI applications, including frontend considerations like client-side context management (e.g., history truncation) and state synchronization.
On call or non-standard work hour requirements
Up to 27 hours per week within a six-month period to respond to development needs
Technical Skills
Agile Methodology - Intermediate
Algorithms - Intermediate
Application Programming Interface (API) - Intermediate
CI/CD - Intermediate
Cloud Serverless Computing Architecture - Intermediate
Code Review - Intermediate
Data Architecture and Design - Intermediate
Data Structures - Intermediate
Debugging - Intermediate
Dev Ops - Intermediate
JIRA - Intermediate
New Product Development - Intermediate
Secure Coding - Intermediate
Service Orientated Architecture - Intermediate
Software Design Patterns - Intermediate
Software Development Life - Cycle Intermediate
Software Engineering - Intermediate
Unit Testing - Intermediate
The core technical skills listed are most essential; additional technical skills may be required based on specific division or department needs.
Classified Title: Software Engineer
Job Posting Title (Working Title): Software Engineer - AI Focus (Center for Technology in Education)
Role/Level/Range: ATP/04/PE
Starting Salary Range: $37.58 - $65.79 HRLY (Commensurate w/exp.)
Employee group: Casual / On Call
Schedule: Monday - Friday, 18 hours per week
FLSA Status: Exempt
Location: Remote
Department name: Center for Technology in Education (CTE)
Personnel area: School of Education