Work · IDeaS Revenue Solutions (a SAS company) · 2025–26
Enterprise automation at IDeaS
IDeaS builds revenue-management software for hotels. Around the product sit teams doing a lot of careful, manual, cross-system work. My job has been to turn that work into scheduled, tested automation, and to put LLMs where they genuinely help.
- Roles
- AI & Automation Developer (Nov 2025 – present); Business Intelligence & Automation Intern (Jul – Oct 2025); Software Developer Intern (Jan – Jun 2025)
- Stack
- Python, pandas, Playwright, Power Automate, Streamlit, Altair, Java, Spring Boot, Angular, SQL, Docker
- Systems
- G3 revenue-management platform, Salesforce, Excel/Word/PDF, Microsoft AI Builder
- Note
- Described at the level of what was built. No internal code, data, names or screenshots.
01
Forecast-review reports with LLM-written commentary
- 01DataForecasts and projections per property
- 02CalculationsForecast vs. projection analysis
- 03Charts & tablesRendered per section
- 04CommentaryLLM-written narrative (Microsoft AI Builder)
- 05MergePDF, Word and Excel deliverables
A Python pipeline that assembles client forecast reviews. It is split into modular services (data, calculations, charts, document merge) so a new report section is an addition, not a rewrite, and it handles both full-history properties and those with limited history, where the model runs on a synthetic baseline. It is containerised with Docker and went through SIT, UAT and hypercare.
The LLM writes narrative around numbers the pipeline has already computed. The failure mode worth worrying about is a wrong number in that narrative, which is exactly what led me to build Proofline.
02
Configuration checks across three systems, in a browser
- 01SalesforceClient account numbers, integration types
- 02Product UIThe same settings in the G3 platform
- 03DatabaseWhat is actually stored
- 04CheckPlaywright run in Dockerised test environments
Setting up a client correctly means the same facts have to agree in CRM, in the product, and underneath it. I automated that end-to-end check with Playwright, running in Dockerised test environments, so it runs the same way every time instead of depending on someone clicking through three systems.
03
Analytics and mailbox automation
Pricing analytics in Streamlit
A Streamlit app (pandas, Altair) that takes pricing exports and automates best-available-rate trend analysis, property and chain extraction, date filtering and pricing-decision validation. It is structured as configuration, validation, calculation and chart services, so analyses can be added without touching the UI.
A shared customer-care mailbox that tracks itself
Scheduled Power Automate flows parse incoming client and system emails (chain codes, timestamps) into Excel and reconcile replies from Sent Items, so the team sees what is waiting and what has been answered without maintaining a tracker by hand. It removed ~3 hoursSourceManual tracking effort the service-delivery team no longer does, as estimated when the flows replaced it. of manual tracking.
04
Modernising a legacy dashboard without a big-bang switch
As a Software Developer Intern I migrated the product's “At-a-Glance” control dashboard from JSP and Struts to Angular and Spring Boot: Angular components on top of REST APIs backed by optimised SQL and Java Stream processing. The APIs moved from single-day data to custom date ranges, which meant reworking and tuning the underlying queries.
The new UI shipped behind a database-driven feature toggle, added through a SQL migration, so clients could be moved from the legacy JSP views to Angular in a controlled rollout, and moved back if something went wrong.
PATTERN
What these have in common
- Start from the workflow: who does it, how often, what breaks, what “done” looks like.
- Build the smallest reliable automation first; add an LLM only where language is the actual work.
- Test it where it will run (containers, SIT, UAT) and roll it out so it can be rolled back.