Writerposted 19 days ago
Full-time
San Francisco, CA

About the position

As a Software engineer, AI retrieval, you will be responsible for designing, implementing, and optimizing the AI retrieval systems that power our platform. You'll work closely with our data scientists, product managers, and other engineers to ensure that our AI models are integrated seamlessly into our applications, providing fast and accurate results. This role requires a deep understanding of software engineering principles and a strong foundation in AI and machine learning.

Responsibilities

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

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.

Nice-to-haves

  • 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.

Benefits

  • Generous PTO, plus company holidays
  • Medical, dental, and vision coverage for you and your family
  • Paid parental leave for all parents (12 weeks)
  • Fertility and family planning support
  • Early-detection cancer testing through Galleri
  • Flexible spending account and dependent FSA options
  • Health savings account for eligible plans with company contribution
  • Annual work-life stipends for home office setup, cell phone, internet, wellness stipend for gym, massage/chiropractor, personal training, etc., and learning and development stipend
  • Company-wide off-sites and team off-sites
  • Competitive compensation, company stock options and 401k
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service