[HIRING] Software Engineer - AI Memory Systems

Job Title: Software Engineer – AI Memory Systems (Contract)
Location: Remote (U.S.-based) or Hybrid – Bay Area
Type: Contract / Project-based
Start Date: Immediate
Duration: 2–3 months, with potential for extension

Overview
We’re looking for an engineer with deep expertise in knowledge graphs, large language model integration, and distributed backend development. In this role, you will architect and implement a composable memory layer that combines graph databases, vector search, and real-time AI agents to deliver hyper-personalized user experiences. You will collaborate with product and AI teams to continuously improve how our system learns from user interactions and adapts the application UI over time.

Key Responsibilities

  • Design & Development: Build the unified memory framework integrating Neo4j, Graphiti, Mem0, Memary, and Cognee components. Implement robust data pipelines for capturing user interactions (episodic events) and deriving user preferences (semantic knowledge). Develop APIs and services that allow real-time retrieval of user-specific context for our AI models.
  • Neo4j Knowledge Graph Management: Model complex relationships (user personas, content preferences, interaction history) in Neo4j . Write Cypher queries or use Graphiti’s APIs to efficiently update and query the graph . Ensure graph data is consistent and optimized with appropriate indexing and constraints.
  • LLM Integration: Integrate Apple Foundation Models (or similar LLMs) into our pipeline for both real-time query handling and offline analysis. Develop the interface that supplies the LLM with augmented prompts including long-term context . Fine-tune prompts and memory injection techniques to maximize personalization relevance in LLM outputs.
  • Vector Memory & Search: Configure and maintain vector databases for semantic memory search (e.g., via Mem0) . Implement memory embedding generation and similarity search, potentially using Neo4j’s vector indexing or external stores. Optimize retrieval pipelines that combine vector results with graph-based results for comprehensive memory recall.
  • Personalization Logic & Services: Develop background services (using frameworks like Cognee) that perform batch learning on accumulated data – such as summarizing interaction history or updating user preference weights – and feed results back into the system . Implement logic for hot-path vs. background memory updates, ensuring real-time operations are low-latency and heavy computations run asynchronously.
  • System Architecture & Orchestration: Own the end-to-end architecture of the memory system. Ensure each sub-component (Graphiti, Letta agent, Mem0, Memary, etc.) interacts through well-defined interfaces and that the overall orchestration yields a cohesive functionality. Use event-driven or scheduled workflows to coordinate background memory consolidation jobs versus real-time requests.
  • Data Quality & Monitoring: Implement monitoring for memory accuracy and performance – e.g., develop metrics for memory retrieval time, memory footprint per user, and personalization success (such as repeated user engagement with personalized layouts). Identify and resolve issues like conflicting memory entries or stale data. Establish automated tests for memory updates (e.g., adding a new interaction should correctly reflect in retrieved preferences).
  • Scalability & Maintenance: Ensure the memory infrastructure scales with increasing users and data. Optimize Neo4j queries and index usage, partition data if necessary, and load-test vector search. Manage migrations of memory data schema as the personalization logic evolves (for instance, adding new node types or relationships).
  • Collaboration & Leadership: Work closely with AI scientists, product managers, and frontend engineers to align the memory system with product needs. Translate personalization requirements into technical designs. Provide guidance to junior engineers on the team, especially around graph data modeling and best practices for integrating ML in production. Participate in code reviews and knowledge sharing sessions to elevate the team’s expertise in AI memory systems.

Must-Have Qualifications

  • Neo4j & Graph Database Expertise: Hands-on experience designing and querying complex graphs. Proficiency in Cypher and understanding of graph algorithms. You should have built or maintained a Neo4j (or similar) in production, modeling interconnected data and ensuring query performance. (e.g., experience implementing a knowledge graph or recommendation graph store)
  • Large Language Model Integration: Practical experience integrating LLMs into applications. Familiarity with constructing prompts that incorporate retrieved context (RAG pattern) . Ideally, experience with one or more of: OpenAI API, LangChain, or custom LLM deployments. Understanding of token limits, embedding generation, and techniques to avoid LLM hallucinations via grounding .
  • Memory/Context Management: Knowledge of how to manage conversational state and long-term context in AI systems. Experience implementing short-term vs. long-term memory (even if not explicitly called that) – for example, maintaining session state in a chatbot, using a vector store for past conversation retrieval, or caching user-specific data.
  • Backend Development: 5+ years in software engineering with a focus on backend or data engineering. Proficient in Python (our pipeline language) and comfortable with asynchronous programming (asyncio) as used by frameworks like FastAPI or in agent tool calls . Strong system design skills to build modular services and connect databases, APIs, and workers.
  • Data Pipeline & Database Skills: Experience building data pipelines or ETL processes, especially ones involving analytical processing of logs or user data. Familiar with one or more databases besides Neo4j – e.g., Postgres, Redis, or Elastic – and when to use them. Ability to write efficient queries and debug performance issues in a data-heavy system.
  • Distributed Systems & Microservices: Understanding of how to develop and deploy microservices that communicate (REST, message queues). Capable of handling failure scenarios, ensuring that a failure in a background job won’t take down the whole system. Experience with containerization (Docker) and possibly orchestration (Kubernetes) to deploy components like Neo4j, vector DB, etc.

Preferred Qualifications

  • Experience with AI Agent Frameworks: e.g., familiarity with LangChain, Haystack, Rasa, or in our case Letta/MemGPT. Having built an “agent” that uses tools or external knowledge is a strong plus (you’ll leverage those patterns here).
  • Knowledge of Open-Source Memory Projects: such as awareness of Graphiti, LlamaIndex, Chroma, or even having contributed to something similar. This can help in quickly understanding and integrating the open-source tools we use.
  • Frontend/React Integration Knowledge: While this is primarily a backend role, understanding how the frontend consumes personalized data (via APIs, WebSocket updates, etc.) will help. If you have worked on personalizing UI content delivery (like a recommendations API feeding a React app), that’s a bonus.
  • Cloud & DevOps: Experience deploying and scaling graph databases or ML services in cloud environments (AWS, GCP, etc.). Knowledge of how to secure and backup a Neo4j instance, how to scale an LLM service or use GPU instances if needed for heavy jobs, and monitoring tools (Prometheus, Grafana).
  • Academic Background in AI/ML: A degree or courses in machine learning, especially NLP, can be beneficial. Understanding the theory behind word embeddings, vector similarity, and reinforcement learning for preference optimization (as we use some RL principles for Mosaic feedback ) will help in fine-tuning the system.
  • Academic Background in AI/ML: A degree or courses in machine learning, especially NLP, can be beneficial. Understanding the theory behind word embeddings, vector similarity, and reinforcement learning for preference optimization (as we use some RL principles for Mosaic feedback ) will help in fine-tuning the system.

How to Apply
Send a short email to submissions.onscreen591@aleeas.com with your GitHub, portfolio, or recent project examples. We’re looking for engineers who know how to work in a modern AI stack, understand what real product code looks like, and can ship meaningful features fast.