Posted in

Software engineer – AI retrieval

Software engineer – AI retrieval

CompanyWriter
LocationSan Francisco, CA, USA
Salary$Not Provided – $Not Provided
TypeFull-Time
Degrees
Experience LevelMid Level, Senior

Requirements

  • Proficient in Python, with a strong understanding of data types, string manipulation, type casting and conversions.
  • Experienced in calling functions, using default and variable arguments, and writing lambda functions.
  • Familiar with tools like venv, virtualenv, pipenv, and poetry for managing project dependencies.
  • Skilled in reading, writing, and manipulating files in Python.
  • Expert in handling errors and exceptions to ensure robust and reliable code.
  • Knowledgeable in designing and using data models to represent and manage data efficiently.
  • Proficient in using context managers and implementing logging best practices to maintain code clarity and traceability.
  • Experienced with object-oriented programming concepts, including inheritance and method overriding.
  • Familiar with Python’s magic methods to enhance the functionality of custom classes.
  • Adheres to code formatting standards using tools like black, isort, flake8, and pylint.
  • Strong background in testing methodologies, including unit testing with pytest, mocking, and integration testing.
  • Familiar with semantic versioning and maintaining changelogs to track changes and updates.
  • Proficient in using stack, queue, and priority queue data structures (via collections) to manage and process data efficiently.
  • Experienced in functional programming concepts such as map, filter, reduce, generators, and decorators.
  • Skilled in asynchronous programming using asyncio, aiohttp, async generators, and handling timeouts with wait_for.
  • Understands the differences and trade-offs between threading and multiprocessing, and can choose the appropriate approach for different tasks.
  • Proficient in using tools like tracemalloc and cProfile to identify and optimize memory usage and performance bottlenecks.
  • Experienced in developing and maintaining REST and GraphQL APIs using frameworks like FastAPI and Flask.
  • Capable of implementing streaming responses and cancelable endpoints to support real-time and interactive use cases.

Responsibilities

  • Develop and maintain the core AI retrieval algorithms and services that enable our platform to efficiently search and retrieve relevant content.
  • Ensure that our AI retrieval systems are highly performant, scalable, and can handle large volumes of data and requests.
  • Work closely with data scientists, product managers, and other engineers to understand requirements, provide technical guidance, and deliver high-quality solutions.
  • Write clean, maintainable, and well-documented code, adhering to best practices in software engineering.
  • Develop comprehensive unit and integration tests to ensure the reliability and accuracy of our AI retrieval systems.
  • Build and maintain REST and GraphQL APIs using frameworks like FastAPI and Flask to expose our AI retrieval capabilities to other services and applications.
  • Implement streaming responses and cancelable endpoints to support real-time and interactive use cases, such as model output.
  • Stay up-to-date with the latest developments in AI and software engineering, and continuously improve our systems and processes.

Preferred Qualifications

  • Familiarity with machine learning frameworks and libraries such as TensorFlow, PyTorch, or scikit-learn.
  • Experience with NLP techniques and tools, such as spaCy or NLTK.
  • Knowledge of distributed systems and experience with tools like Kubernetes or Docker.
  • Experience with cloud platforms like AWS, GCP, or Azure.
  • Contributions to open-source projects or a strong portfolio of personal projects.