From PDFs to Widgets: What I Built During My Internship at Corporate Interactive

👋 A Developer in the Making
As a Master of Information and Communication Technology student at Western Sydney University, I’ve always been passionate about building practical, user-centric software. But like many aspiring developers, I was hungry for real-world experience — not just writing code, but understanding how software gets built, maintained, and used in the industry.
In May 2024, I got that chance when I joined Corporate Interactive as a Full Stack Developer Intern. Over the next three months, I would get hands-on experience with a variety of projects, learn to work with an experienced team, and grow more than I expected.
Here’s a look into the journey — from PDFs to widgets and everything in between.
💻 Getting Started at Corporate Interactive
Corporate Interactive is a Sydney-based software company focused on building proposal and sales quoting platforms. From day one, I was introduced to a powerful modern tech stack that included:
T3 Stack (Next.js, tRPC, Prisma)
Tailwind CSS
TypeScript
MySQL
AWS S3 for storage
I quickly dove into working with their main product, a powerful proposal-building tool that allows users to create, customize, and manage client-facing proposals using dynamic blocks and widgets.
🧩 What I Built
Over the course of my internship, I worked on a series of feature-rich widgets and tools that made the platform more interactive, efficient, and visually intuitive.
📄 PDF Page Upload + Reader
My first big task was developing a feature that allowed users to upload and preview PDF files as part of their proposals. I learned how to:
Handle file uploads via drag-and-drop UI
Convert uploaded PDFs into preview able images using a third-party service
Ensure pages were rendered in the correct order
Manage performance issues with larger documents
This was my first exposure to dealing with file streams and optimizing rendering performance — a challenging but super rewarding experience.
📅 Scheduler Widget
Next, I helped build a scheduler widget that allowed users to set dates, time slots, and event information as part of their proposals.
Some technical highlights:
Implemented date-pickers and repeat-event logic
Created responsive layouts using Tailwind
Synced form states using React Hook Form and tRPC
I got to experience how thoughtful UX decisions can really improve the end-user’s interaction with even a small feature.
🔍 QR Code & Barcode Widgets
Later on, I contributed to the QR code and barcode block widgets, which enabled users to embed dynamic scannable codes into proposals.
Here’s what I handled:
Generated QR codes and barcodes based on user-defined input
Ensured the blocks were printable and responsive
Connected them with back-end APIs for data syncing
This was a fun feature to build because it combined both visual output and practical use cases (like event check-ins or asset tracking).
📚 What I Learned
This internship wasn’t just about building features — it was about building the right mindset:
Writing clean, maintainable code: I adopted consistent formatting, better naming conventions, and followed component-driven development practices.
Communicating in a team: Daily standups, regular code reviews, and constructive feedback helped me grow faster than I could’ve imagined.
Working across the full stack: From API creation with tRPC and Prisma to styling responsive components with Tailwind — I finally felt like a real full-stack developer.
🚧 Challenges and Wins
Not everything came easy. One moment I remember clearly was debugging a PDF render issue that only happened on Safari browsers. It took hours of testing, checking forums, and experimenting with fallbacks — but in the end, I solved it with a combination of rendering tweaks and canvas adjustments. That “aha” moment was a huge confidence boost.
Another win? Seeing my scheduler widget being used in live proposals by clients — knowing something I built actually made someone’s job easier was incredibly satisfying.
🚀 What’s Next?
This internship gave me clarity: I love building UI/UX-focused features that solve real-world problems.
I’m currently exploring frontend developer roles in Sydney, especially ones that use React or Angular. I’m also working on side projects involving AI and automation — tools that summarize content, manage emails, and help people save time.
🙏 Final Thoughts
I’m incredibly grateful to the team at Corporate Interactive — especially Corey Baines and Darren Strong — for trusting me, guiding me, and giving me the freedom to experiment and grow.
If you’re a student or junior dev reading this: take that internship, ask questions, and say yes to the challenge. You’ll be amazed at how far you can go in just a few months.
Thanks for reading!
Feel free to check out my portfolio at roshanaale.com or connect with me on Linkedin
Subscribe to my newsletter
Read articles from Roshan Aale directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Roshan Aale
Roshan Aale
Full Stack Developer with expertise in building scalable web applications using React.js, Angular, Node.js, and PostgreSQL. Proficient in designing, developing, and deploying enterprise-level solutions.