{"slug": "i-revived-a-9-year-old-app-with-openai-codex-with-a-product-engineer-mindset", "title": "I Revived a 9-Year-Old App with OpenAI Codex with a Product Engineer Mindset", "summary": "The author revived a nine-year-old app called Highlander, which had become broken due to outdated dependencies and deployment issues, by using OpenAI Codex with a \"Product Engineer\" mindset focused on fixing critical issues and shipping value quickly. Codex assisted with local revival, adding a demo login, security hardening, and deploying the app to Fly.io, including removing hardcoded localhost API calls to resolve mixed-content errors. The author plans to apply the same approach to revive a related React/Redux app, documenting the process to blend software engineering and product engineering skills for broader career opportunities.", "body_md": "Nine years ago, I built an app called Highlander. It was one of those projects you never forget, but over time it broke: old dependencies, outdated tooling, local setup drift, and deployment blockers.\nThis week, I brought it back to life. Not by rewriting everything from scratch. By pairing with Codex and treating the work like a Product Engineer: fix what matters, unblock users, and ship value fast.\nThe Problem: The app was frozen in time:\nIt had been broken long enough that I honestly didn’t expect a quick recovery.\nThe Approach: Product Engineering, Not Just Refactoring:\nI didn’t just “clean code.” I prioritized outcomes:\nThat sequence mattered more than perfection.\nProduct Development Context:\nThis rebuild also reconnects to the original product planning work from the Highlander sprint board on Trello: Highlander product sprint board\nThat board reflects early MVP scope, feature prioritization, and roadmap thinking. Revisiting the app now with Codex let me combine that original product intent with modern implementation and deployment practices.\nWhat Codex Helped Me Ship:\n1) Local revival\n2) Demo-ready UX. I added a demo login path directly in the UI.\n3) Security hardening. Before deployment, I tightened core risks.\n4) Deployment to Fly.io\nOne of the most important production fixes was removing hardcoded localhost API calls\nThat one change removed mixed-content/CORS issues on deployed pages.\nWhy this matters for my career growth:\nI’m not making a hard transition away from software engineering. I’m intentionally blending Software Engineer + Product Engineer skills so I can widen my career options and be more valuable to a broader set of teams and employers.\nThis project reflects that blend:\nIt wasn’t just a code cleanup. It was an end-to-end product delivery exercise.\nWhat’s Next:\nI have another 9-year-old app: Highlander-react-redux. It uses the same backend API, but the frontend is React/Redux. Next, I’m going to use Codex again to revive it with the same Product Engineer lens:\nI’ll document that process too, including what worked, what failed, and what changed in my thinking.\nHighlander Project\nDemo: https://highlander.fly.dev/index.html\nGithub: https://github.com/heriberto-codes/highlander", "url": "https://wpnews.pro/news/i-revived-a-9-year-old-app-with-openai-codex-with-a-product-engineer-mindset", "canonical_source": "https://dev.to/heriberto_codes/i-revived-a-9-year-old-app-with-openai-codex-with-a-product-engineer-mindset-19c9", "published_at": "2026-05-22 19:33:03+00:00", "updated_at": "2026-05-22 20:04:10.025777+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence", "products", "startups", "cloud-computing"], "entities": ["OpenAI Codex", "Highlander", "Fly.io", "Trello"], "alternates": {"html": "https://wpnews.pro/news/i-revived-a-9-year-old-app-with-openai-codex-with-a-product-engineer-mindset", "markdown": "https://wpnews.pro/news/i-revived-a-9-year-old-app-with-openai-codex-with-a-product-engineer-mindset.md", "text": "https://wpnews.pro/news/i-revived-a-9-year-old-app-with-openai-codex-with-a-product-engineer-mindset.txt", "jsonld": "https://wpnews.pro/news/i-revived-a-9-year-old-app-with-openai-codex-with-a-product-engineer-mindset.jsonld"}}