Xerox Litigation Services
Responsible for the overall architecture of OmniX, a large scale, web-based document review platform designed to help law firms sort, redact, and produce legal documents. Proven ability to rapidly utilize emerging technologies and build reliable, enterprise systems.
- Deployed and maintained a distributed messaging platform using Apache Kafka and Zookeeper. Used at-least-once message delivery to ensure reliable service communication and provide strong consistency guarantees for mission-critical data.
- Eliminated costly manual server configuration from sys admins with Ansible playbooks. Server provisioning became significantly more consistent, overall turnaround time was reduced from days to minutes, and deploying services became more streamlined.
- Road-mapped a move from a monolithic web app to microservices. New services were deployed in a fraction of the time, requiring fewer resources and with less scheduling overhead.
- Designed, developed, and maintained a new Python service to provide an asynchronous task queue for long-running batch operations. Utilized Kafka partitions to allow for easy horizontal scalability.
- Trained other developers on Ansible. Identified common provisioning tasks and refactored them into Ansible roles, which could be shared among team members.
- Worked with the Project Management and Release department to design feature releases that could be easily rolled back and deployed without long outage windows.
- Improved Kafka testing and debugging by building a push-based Kafka consumer app using Node.js and WebSockets.
- Added JSON web token (JWT) authentication support for new services.
- Used supervisord and systemd to auto-restart dead processes and maintain high up-time.