Co-op Experience in Caracal Technologies

August 15, 2024

Technologies

TypescriptAWSReactSeleniumPythonPandas

In January 2024, I joined Caracal Technologies as a Co-op Software Engineer for an intensive 8-month term working on the company's core financial reporting platform. This mission-critical system processed millions of transactions daily, generating everything from internal API to complex reconciliation reports for hundreds of clients.

The Good: Ownership, Collaboration, and Impact

What stood out immediately was the team’s trust and inclusivity. Despite being a co-op, I was given meaningful ownership—whether proposing architectural changes, debugging AWS Lambda functions, or interviewing future co-op candidates.

Some highlights of the experience:

  • Mentorship mattered: Other developers reviewed my code but also asked for my input on system design.

  • Full-stack exposure: I touched everything from frontend optimizations to database restructuring.

  • Beyond coding: I helped refine hiring processes, documented tribal knowledge, and saw how engineering decisions aligned with business needs.

Challenges: Scaling a System Under Pressure

Of course, no real-world system is perfect. The reporting platform had grown over time, leading to some tough constraints:

  • Outdated Frontend: The frontend was built without any framework, and as more features are added, the codebase became hard to manage and scale.

  • Manual processes: Some part of the daily reconciliation involved hours of downloading reports and manual CSV work—error-prone and exhausting.

  • Database performance issue: The database architecture that previously supported our reporting needs efficiently began struggling under increased load.

My Contributions: Building for Scale and Efficiency

  1. Optimizing the Frontend

    • Rebuilt the entire Frontend reporting interface in React + TypeScript.

    • Designed a dynamic file explorer for S3 with secure pre-signed URLs, embedded previews, and one-click downloads.

  2. Automating Pain Points

    • Built Selenium bots to auto-download reports, saving hours of manual work daily.

    • Created Pandas data pipelines to process refunds, cutting reconciliation time from 8 hours to minutes.

    • Developed a log-scraping tool to extract key events into SQLite for auditing.

  3. Owning the Full Pipeline

    • Automated CI/CD deployments to S3 + CloudFront, ensuring smooth frontend updates.

    • Documented systems thoroughly to make future maintenance easier.

Conclusion

This experience gave me a front-row seat to how reporting systems are built and maintained at scale, with the added responsibility of knowing my work directly impacted the company's ability to serve its clients effectively.

Most importantly, I learned that the best teams invest in their co-ops, giving them responsibility, mentorship, and room to grow.

Another lesson I learnt was that a place that challenges you will leave not just with new skills, but with the confidence to build things that matter.