Verified Expert in Engineering
Chris has years of experience in developing API services. He's most comfortable using the aiohttp package, SQLAlchemy (Alembic), and the PostgreSQL stack, but he's also familiar with Flask, MongoDB, Redis, and more. He's been a part of the back-end team at Indico Data Solutions—a machine learning API and tools provider—developing back-end services handling big data processing and analysis. Chris also has excellent skills with AWS, GCE, and Azure clouds.
Docker, Ubuntu, MacOS
The most amazing...
...thing has been designing and developing the entire tech infrastructure for https://indicodata.ai: it serves huge data loads and produces tons of business value.
Indico Data Solutions
- Designed and integrated new technologies into an incredibly large and complex microservices infrastructure.
- Mentored multiple teams of engineers and guided them in the design and development of features.
- Built, maintained, and deployed back-end services for data visualization tools, data analysis, and custom machine learning model training tools (Indico's Crowdlabel).
- Developed, maintained, and deployed a machine learning API server with several gigabytes of machine learning models behind the scenes.
- Constructed in-house deployment utilities for AWS, Azure Cloud, and Google Compute Engine capable of spinning up several clusters of API workers with a simple script.
- Created a scheduling service that extracts information via scraping an API from several online mediums, performs a series of text analyses (keywords, topics, text features, sentiment, and more), and continuously builds a text corpus.
- Set up continuous integration on all projects using Docker, Docker Compose, and CodeShip (Jet).
- Improved large data ETL and database transactions by optimizing speed and memory consumption.
- Managed the infrastructure in Kubernetes and deployed a series of Celery pipelines woven together with a Redis-result store and a RabbitMQ cluster broker.
Back-end Developer | Python and API Design
- Developed a user portal to host installers locked behind user authentication.
- Built an administrative interface tool to manage the database for the user portal.
- Developed a camera SDK for Metalenz's proprietary camera hardware.
- Built Python API for camera hardware and calibration processes.
- Helped integrate camera hardware into desktop GUI application, using PyQT5 and the API I developed.
- Built the user portal back end and front end on FastAPI, SQLAlchemy, and React to provide authenticated file access to users.
- Served as a database consultant on how to improve the database structure and database queries.
- Performed a high-level audit of an existing system and created a low-to-high priority action items report.
- Assisted in debugging nondeterministic behavior with database connection management. Refactored the codebase to have cleaner and more reliable database connection logic.
- Developed TargetSmart APIs on AWS Lambda. Maintained, modified, and tested APIs as necessary.
- Queried database information from an AWS Aurora SQL database.
- Developed auto-example API generation for client-facing documentation.
- Supported the updating and adding documentation to new APIs.
- Interfaced with several crypto-exchange APIs like KuCoin, Binance, Bittrex, Bitfinex, OKEx, Poloniex, Huobi, and CCXT.
- Used REST APIs and WebSocket APIs to acquire data in real time.
- Saved time-sensitive data into a Redis database and enabled database clients to retrieve data through a simple interface.
- Developed async IO implementations for asynchronous operations.
- Used cfscrape (a Python library) to bypass a Cloudflare anti-bot page.
Python and Facebook API | Developer
Lerderian, Inc. (via Toptal)
- Created a series of recurring data ETL tasks for API data from Facebook and Instagram.
- Developed an image downloader and vectorizer and stored the data in PostgreSQL for future use in image analysis.
- Built an HTTP Server to trigger ETL tasks, synced Facebook accounts through OAuth 2, and performed analysis tasks on data.
- Created a database schema that allows for plug-and-play data ETL types from different API endpoints.
- Developed a sophisticated command-line tool to interface with an aiohttp server.
- Handled the ingressing and processing of Google Sheet data via the Google API.
- Designed an interface for Windows executable to run browser automation and data collection.
- Automated the Windows COM API for a desktop application.
IDEA Public Schools
- Automated scraping data from web portal.
- Queried MS SQL database across multiple tables for aggregate and time-series information.
- Generated multi-sheet Excel workbooks with formatting and formulas.
- Automated weekly/monthly report generation using a Windows scheduler.
Android Developer Intern
- Used LruCache and preloading to create smooth scrolling and fragment transitions.
- Built generalized adapters to use the same item caching and loading techniques across the application—decreasing the amount of additional logic and maintenance in the codebase.
- Created custom animations for spinners, loading screens, and sliding notifications and banners.
- Implemented a variety of intents for deep linking, third-party activity linking (camera, SMS, email, and other social media apps).
- Reduced the source code to less than half of the original while adding twice the amount of features—bringing the product to feature completeness.
I needed to extract only the image data from the PDF to perform OCR on the scanned image. I used Indico's PDF extraction tool to extract the image data. I also have an image processing step to prepare for (optical character recognition) OCR. This involved applying thresholding to the pixel data, resulting in a higher contrast black-and-white image.
The rest of the project uses the Google Cloud Vision API to perform OCR on the extracted image. Then, it parses the resulting data using a combination of filters and pattern matching via Python regexes to determine the row and column of each cell. The resulting data is then written into an Excel file for the client.
It comes with Bash functions that are set up on package installation to either manually sync private files or to set up the Git hook integrations.
Tornado and Motor Boilerplatehttps://github.com/sihrc/tornado-boilerplate
It contains boilerplate that allows API routes to take shape quickly from scratch. It has a 100% test coverage run with a Travis integration.
StoryQuilt | Android Apphttps://github.com/sihrc/Story-Quilt
This was a culmination of a semester course on Android development. It puts into practice various kinds of ItemAdaptors, modularized fragments, real-time database synchronization (Firebase), and Google User authentication and permissions.
Custom Collection Tutorialhttps://github.com/sihrc/custom-collection-tutorial
It also contains an API wrapper designed to allow easy access to the machine learning APIs.
SQLAlchemy, NumPy, Google APIs, Pandas, TensorFlow, Google Maps API, Facebook API, Google API, Facebook Open Graph API, Google Sheets API, React, ZeroMQ, Scikit-learn, PyQt 5, Python Asyncio, Camera API, Google Cloud API
Docker Compose, Celery, Amazon Elastic Container Service (Amazon ECS), Google Compute Engine (GCE), Android Studio, RedBeat
DevOps, Object-oriented Programming (OOP), Agile Software Development, Responsive, Microservices
Docker, Google Cloud Platform (GCP), Azure, Android, MacOS, Ubuntu, Amazon Web Services (AWS), AWS Lambda, Microsoft
Amazon S3 (AWS S3), Redis, PostgreSQL, RethinkDB, MongoDB, Azure Cloud Services
APIs, Software Design, Architecture, Async/Await, Containerization, Tornado, Data Scraping, Distributed Systems, Content, COM, Poetry, SDKs, HTTP Server, FastAPI, CI/CD Pipelines, API Design, OCR
Android SDK, Selenium, Flask
Bachelor of Science Degree in Engineering: Computing
Olin College of Engineering - Needham, MA, USA