Software engineer – AI retrieval
Company | Writer |
---|---|
Location | San Francisco, CA, USA |
Salary | $Not Provided – $Not Provided |
Type | Full-Time |
Degrees | |
Experience Level | Mid 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.