Back to Portfolio

Notaic: Manufacturing Optimization

Intelligent manufacturing planning system with custom ML-driven partitioning algorithms and real-time optimization, achieving 40% waste reduction and $100K+ annual cost savings.

Business Impact

$100K+
Annual Savings
Cost reduction through optimization
40%
Waste Reduction
Material efficiency improvement
1K+
Orders/Month
Production volume processed
99.9%
System Uptime
Operational reliability

System Architecture

Manufacturing Optimization System - Technical Architecture

Order IngestionREST API1K+ Orders/MonthData PipelineETL ProcessingValidation & CleanOptimizationEngine40% Waste ReductionQueue ManagerJob SchedulingPriority QueuesSheets SyncLive TrackingReal-time UpdatesMonitoringPerformance99.9% UptimePostgreSQLPrimary DatabasePrimary-Replica SetupML AlgorithmsGraph PartitioningK-means ClusteringFastAPIAsync BackendDockerContainerizationGoogle APISheets IntegrationValidationHuman OversightMonitoringAPM & Logging

Data Processing Layer

Real-time order ingestion and transformation pipeline

FastAPI Async Processing
PostgreSQL Data Storage
Real-time Event Streaming
Data Validation & Cleaning

Optimization Engine

ML-driven algorithms for intelligent job grouping

Custom Partitioning Algorithm
Similarity Detection Models
Constraint Satisfaction Logic
Efficiency Scoring System

Workflow Orchestration

Automated process management with human oversight

Custom Process Automation
Queue Management System
Human-in-Loop Validation
Error Handling & Retry Logic

Integration Layer

External system connectivity and synchronization

Google Sheets API
Real-time Data Sync
Conflict Resolution
Audit Trail Logging

System Architecture Components

Data Ingestion & Validation

High-throughput order processing with comprehensive validation

REST API: FastAPI with automatic OpenAPI documentation
Authentication: JWT bearer tokens with refresh mechanism
Rate limiting: 100 requests/min per client with sliding window
Data validation: Pydantic v2 models with custom field validators
Error handling: structured error responses with trace IDs

Optimization Algorithm Engine

Custom ML algorithms for manufacturing job optimization

Graph partitioning: spectral clustering with normalized cuts
Similarity scoring: weighted Jaccard + cosine similarity metrics
Constraint satisfaction: mixed-integer programming solver
K-means clustering: adaptive K selection with silhouette analysis
Greedy optimization: resource allocation with backtracking

Database & Storage Architecture

PostgreSQL cluster with optimized query performance

Primary-replica setup: sync replication with failover
Connection pooling: SQLAlchemy async pool, 25 max connections
Indexing strategy: B-tree on order_id, GIN on JSON columns
Query optimization: EXPLAIN-driven index tuning
WAL archiving: point-in-time recovery with 7-day retention

Workflow Orchestration

Human-in-the-loop approval workflows with automation

Priority queues: Redis-backed job scheduling with priorities
State management: finite state machine with transition logging
Approval workflows: configurable business rule engine
Conflict resolution: automated detection with manual overrides
SLA enforcement: deadline tracking with escalation triggers

External API Integration

Google Workspace integration with real-time synchronization

Google Sheets API v4: service account authentication
Batch operations: bulk updates with atomic transactions
Real-time sync: webhook triggers with change detection
Conflict resolution: last-write-wins with version tracking
Error recovery: exponential backoff with dead letter handling

Production Infrastructure

Containerized deployment with monitoring and observability

Docker deployment: multi-stage builds with distroless base
Reverse proxy: Nginx with SSL termination and load balancing
Monitoring: custom APM with Prometheus metrics collection
Logging: structured JSON logs with ELK stack integration
Health checks: readiness/liveness probes with circuit breakers

Performance Optimization

System-level optimizations for sub-second response times

Query optimization: materialized views for complex aggregations
Caching strategy: Redis TTL cache with cache warming
Async processing: Celery workers with priority task queues
Database optimization: query plan analysis and index tuning
Memory management: connection pooling with prepared statements

Quality Assurance & Testing

Comprehensive testing strategy with automated validation

Unit tests: pytest with 95% code coverage requirements
Integration tests: database transactions with rollback
Performance tests: load testing with realistic data volumes
E2E tests: API contract testing with schema validation
Continuous testing: GitHub Actions with automated deployments

ML Optimization Algorithms

Job Similarity Detection

Identifies orders that can be efficiently grouped together

Technical Approach:

Feature extraction from order specifications, material requirements, and machine compatibility

Results:

85% accuracy in identifying optimal job pairings

Resource Optimization

Minimizes material waste and machine setup time

Technical Approach:

Multi-objective optimization considering material usage, time constraints, and production capacity

Results:

40% reduction in material waste, 25% improvement in machine utilization

Dynamic Scheduling

Adapts production plans based on real-time constraints

Technical Approach:

Priority-weighted algorithm with constraint satisfaction and conflict resolution

Results:

99.9% schedule adherence with automated conflict resolution

System Performance

Order Processing Speed

10K+/day

Manufacturing events processed in real-time pipeline

Job Grouping Efficiency

40%

Reduction in material waste through optimized partitioning

System Reliability

99.9%

Uptime SLA with fault-tolerant job scheduling

Cost Savings

$100K+

Annual operational cost reduction achieved

Processing Latency

<500ms

API response time for optimization algorithms

Data Accuracy

99.5%

Google Sheets synchronization accuracy rate

System Design Decisions

Why use custom partitioning algorithms instead of existing optimization libraries?

Manufacturing job grouping has domain-specific constraints that generic optimization libraries can't handle efficiently. Our algorithm considers material compatibility, machine setup time, and production scheduling constraints simultaneously - something that would require extensive customization in libraries like OR-Tools.

How does the real-time data pipeline handle 10K+ events daily without overwhelming the system?

We use a multi-layered approach: FastAPI with async processing handles incoming requests, PostgreSQL provides atomic operations for data consistency, and our queue manager batches similar operations. The queue system prevents cascade failures when the optimization engine is under heavy load.

Why Google Sheets integration instead of a custom dashboard?

Manufacturing teams already use Sheets for production planning and inventory tracking. Rather than forcing adoption of a new tool, we made the existing workflow more intelligent. The Google Sheets API provides real-time updates that stakeholders can access immediately without training.

How do you ensure data consistency between the PostgreSQL database and Google Sheets?

We use eventual consistency with conflict resolution. PostgreSQL is the source of truth for all job data, and Google Sheets updates are batched and retried on failure. If there's a sync issue, we have automated reconciliation that compares timestamps and resolves conflicts in favor of the database.

How does the optimization engine handle conflicting job requirements?

The algorithm uses a priority-weighted scoring system. Critical jobs (marked by production managers) get higher weights, and the optimization engine finds the best grouping that maximizes efficiency while respecting these constraints. If conflicts can't be resolved automatically, the system flags them for human review.

Technology Stack

Backend

FastAPIPostgreSQLPythonAsync Processing

Automation

Custom AutomationGoogle Sheets APIQueue ManagementError Handling

Optimization

Custom AlgorithmsJob PartitioningConstraint SolvingReal-time Processing

Key Engineering Learnings

  • Domain-specific optimization outperforms generic solutions: Custom partitioning algorithms achieved 40% better results than OR-Tools by incorporating manufacturing constraints that generic libraries couldn't efficiently handle.
  • Real-time processing enables immediate optimization: Processing 10K+ events daily with <500ms latency allowed dynamic job reallocation, improving efficiency by 25% compared to batch processing approaches.
  • Integration with existing workflows accelerates adoption: Google Sheets integration eliminated training overhead and achieved 100% user adoption, vs. custom dashboards which typically see 60-70% adoption in manufacturing environments.
  • Human-in-the-loop validation builds trust: Custom validation workflows with approval steps increased confidence in automated decisions, leading to 99.9% system uptime and reduced manual overrides by 80%.