TrestleIQ

Trestle® provides identity data APIs to help businesses maximize customer contactability, identification and efficiency.

During my internship at TrestleIQ, I worked on multiple key projects that advanced the company's technical infrastructure and market reach. These projects included migrating a legacy codebase to improve system performance and scalability, creating sales demos to demonstrate new product capabilities, and expanding integrations to strengthen Trestle's ecosystem.

Featured Project: HubSpot App Migration

My task for this migration was bringing the existing HubSpot App, which was hosted in Google Scripts, into an AWS environment. This project was the most challenging part of the internship, and honestly, the hardest engineering problem I had to work on at the time.

Initially, the project scope appeared straightforward. Leadership expected the integration process to follow our usual workflow for connecting Trestle with automation platforms like Make.com, Zapier, or CRMs such as GoHighLevel, typically requiring only straightforward API configuration.

However, HubSpot's platform demands comprehensive management of OAuth flows, API key handling, and rate limiting. This transformed what was expected to be a simple integration into architecting a full-scale application. Upon recognizing the project's true complexity, I remained committed to delivering a robust solution and demonstrating my capability to tackle enterprise-level challenges.

Many of the surface-level problems with the original app revolved around the CRM Card. The CRM Card in HubSpot is an interface that allows businesses to interact with their integrations. For Trestle, this card serves as a visualization for the data returned by the Real Contact API. Businesses can see the validation metrics associated with the API for any contact.

HubSpot CRM Card States

Fully validated contact CRM card
✅ Fully Validated Contact

Shows complete validation data with phone activity score and contact grades

CRM card showing timeout error
❌ Timeout Error

Failed to load due to synchronous API call limitations in Google Scripts

CRM card without auto-validation
⚠️ No Auto-Validation

Contact pending validation, requires manual update to process

The Business Problem: A Failing Application

🚨 Critical System Failures

⏰ Constant Timeouts
1,000+
Daily CRM card errors

The Google Scripts' synchronous logic caused over 50% of API calls to timeout

💳 Inaccurate Billing
Double Charging
Customer frustration

Flawed logic charged customers every time the card was viewed instead of using the stored data from HubSpot

📈 Lack of Scalability
Limited
Growth capacity

Google Scripts shared hosting couldn't handle enterprise-level load requirements

🔓 Major Security Risks
Exposed
API keys & endpoints

Unencrypted API keys and unverified endpoints created serious security vulnerabilities

Additional Engineering Challenges

🌏 Complex Project Coordination

🌍 Offshore Team Coordination
12-Hour
Time difference with India team

Required strategic handoff planning and detailed documentation to maintain continuous development progress

⚙️ Primitive Deployment Process
Manual
No proper development pipeline

My deployment process involved manually zipping code files and uploading them directly to AWS Lambda through the console, a completely unsustainable approach for any serious development work

My Role & The Technical Solution

My directive was to 'transition off Google Scripts,' a task that required me to act as the Architect, DevOps Engineer, and Lead Developer, owning the project from design to deployment.

My initial attempt was a direct migration to a 2000-line monolithic Lambda function. This quickly taught me a crucial lesson: a working solution isn't a good one if it's unmaintainable. The Lambda was a clear anti-pattern that attempted to route 15 different endpoints through a single APIGatewayProxyRequestEvent and was impossible to scale, defeating the entire purpose of the migration.

Realizing the flaws in my initial design, I consulted with my Senior Engineering Manager. With his guidance, we decided to re-architect the system as a Java SpringBoot microservice deployed on AWS EKS. This approach was chosen specifically for its ability to provide the long-term scalability required to support enterprise clients.

🔧 Key Technical Improvements

🏗️ Infrastructure

Collaborated with the India team to configure the entire AWS EKS and DynamoDB environment from scratch. We established a formal CI/CD pipeline and a dedicated testing environment to overcome HubSpot's platform limitations and ensure reliable deployments.

🔐 Security

Secured all endpoints by implementing HubSpot's required SHA-256 signature verification on incoming webhooks to prevent spoofing. On the backend, I configured AWS IAM roles with strict least-privilege policies, ensuring the service could only access its designated DynamoDB table and KMS key.

🧠 Strategic Development

This project taught me to use AI tools effectively. I learned that for architectural design, AI can act as a "yes-man," unable to handle critical trade-offs. I pivoted to using it strategically to accelerate the writing of boilerplate code, like OAuth2 flows, which freed me up to focus on the core logic and architecture.

The Business Impact

🎯 Migration Results

🚫
Daily CRM Errors
0
From 1,000+ daily errors
Load Time
<2s
Consistent performance
💳
Billing Accuracy
Fixed
No more double-charging
🔒
Security
Robust
Specific security controls implemented

Other Key Projects

Beyond the migration, I led other initiatives that showcased product innovation and expanded TrestleIQ's market presence.

🤖 AI Voice Agent Demo

High-friction user interactions, like repetitive address questions in voice calls, waste time and drive up the cost of using expensive AI agents.

🎯 Solution & Implementation

I built an interactive demo using a Java SpringBoot backend that integrated TrestleIQ's Reverse Phone API with an AI Voice Agent. The system used WebSockets for low-latency, real-time communication to pre-fetch a user's address from their phone number, saving an estimated 20-30 seconds per call.

AI Voice Agent Demo showing real-time call monitoring and address pre-fetching
Impact:The demo showcased a compelling new use case for TrestleIQ's APIs, creating a clear value proposition for the high-growth AI agent market by demonstrating significant time and cost savings.

📝 Intelligent Form Filler Demo

Tedious and error-prone online forms, especially on mobile, lead to user frustration and high abandonment rates.

💡 Solution & Implementation

I developed a web demo that leveraged the TrestleIQ Reverse Phone API to automatically populate an entire address form from just two user inputs: a phone number and a zip code. This drastically reduced the required fields for a user to fill out.

Before: Empty Form
Empty form showing multiple required fields before auto-population
After: Auto-Populated
Form automatically populated with complete address information
Impact:This project provided the sales team with a powerful visual tool to demonstrate how TrestleIQ can reduce data entry time by up to 90%, improving user experience and increasing form conversion rates.

⚙️ n8n Workflow Automation Integration

To increase developer adoption, TrestleIQ needed a presence on popular workflow automation platforms. I single-handedly developed and published the official TrestleIQ integration for n8n as an npm package. This project required me to learn the specific requirements of the n8n platform and the process for publishing a public package, ultimately exposing TrestleIQ's APIs to a large and active developer community.

🔗 Workflow Example
n8n workflow showing TrestleIQ integration steps

This workflow demonstrates a simple implementation of the TrestleIQ node: the "Code" step includes input values as JSON, "Verify contact information" makes the API call to TrestleIQ's Real Contact API, and "Edit Fields" processes the return values. While this shows a basic use case, the node can be integrated into much more complex automation workflows as needed.

Key Takeaways

This internship taught me to thrive in ambiguity, taking full ownership of complex projects from conception to completion. I learned that sound architectural design is the true foundation of scalable and maintainable software, and that AI tools, when guided by solid engineering expertise, are powerful accelerators for development.

👥 Team

TrestleIQ team photoTrestleIQ team photo