Back to Blog
8 min
experience

Diving Deep into Full-Stack Development: My Journey at eCenter Research

From Power Platform Development to migrating entire applications—how I learned real full-stack development by jumping into the deep end at a healthcare technology company.

LaravelFull-Stack DevelopmentDatabase MigrationPHPVue.jsRemote WorkMentorship

Diving Deep into Full-Stack Development: My Journey at eCenter Research

Published: September 20, 2025 • 8 min read

Picture this: after spending a year mastering SharePoint and Power Platform at Cambium Inc, I thought I had a pretty good handle on what "real" software development looked like. Then I landed at eCenter Research, and suddenly I was thrown into the deep end of full-stack web development. Spoiler alert: I had no idea how deep that pool actually was.

eCenter Research Inc. is a specialized organization dedicated to supporting drug and mental health courts, corrections departments, behavioral health service providers, and schools. Their mission? Enhance client outcomes through a comprehensive, streamlined platform that focuses on accurate assessment, targeted treatment planning, monitoring client response to treatment, coordinated care, and generating population outcome reports for evaluating program effectiveness. In other words, they were using technology to make a real difference in people's lives—which immediately made me excited to be part of their team.

My role? Software Developer. And unlike my previous experience, this was a fully remote position, which was both liberating and terrifying. No more casual hallway conversations to figure out if I was on the right track. It was just me, my code, and a screen.

The Big Migration Challenge

Understanding the MVC Architectural Pattern

Then came my first real assignment, and it was a doozy: migrate an entire application from Yii to a newer version in Laravel. I'd be collaborating with another co-op student, and honestly, I had no idea what I was getting myself into. During my first week, my supervisor introduced me to the Model, View, Controller (MVC) architectural pattern and its relevance to the company's workflow. I'd studied this pattern in my coursework, so I was excited to finally see how it worked in a real-world application. This understanding became crucial for planning and executing the migration while preserving the original application's functionality.

But there's a huge difference between understanding MVC in theory and actually implementing it when you're responsible for migrating an entire production application that people depend on. Suddenly, every decision mattered.

Reimplementing Models and Controllers in Laravel

For the first three months, a significant chunk of my work involved reimplementing models and controllers from the Yii framework into Laravel. This meant learning and applying various "php artisan" commands to create models and controllers, then carefully converting the existing code from Yii to Laravel.

I spent countless hours studying the documentation for both frameworks to ensure effective and accurate translation. Laravel has its own conventions and practices—things like table naming standards and relationship definitions—and I needed to write code that other developers could easily understand and maintain.

One of my biggest initial challenges was using Eloquent, Laravel's Object Relational Mapper (ORM), to rewrite SQL queries from Yii. My limited experience with SQL at the time made this particularly difficult. I remember staring at complex queries, trying to figure out how to translate them into Eloquent's syntax without breaking anything.

Over time, with help from online resources, guidance from my supervisor, and input from other fellow developers, I significantly improved my skills in this area. This not only enhanced my ability to translate Yii code to Laravel but also increased the speed and efficiency of the entire migration process.

Performing Database Migrations

Database migrations became a crucial part of my daily work since the Laravel application required different database tables than those used in the Yii application. I learned how to effectively create migration files to generate corresponding tables for the models I was translating to Laravel.

There were several instances where the table structures in the Yii application needed to be modified for the Laravel application. In these cases, I created migration files to implement the necessary changes, which further honed my skills in writing SQL queries. Every migration had to be perfect—one mistake could break the entire application.

Writing and Executing PHP Scripts

As part of the translation process from Yii to Laravel, it was essential to populate the new database tables with existing data. I learned to write PHP scripts to create commands that allowed me to successfully transfer database records from the old tables to the new ones.

These scripts also had to be robust enough for other developers to use, ensuring consistency and efficiency across the team. There's something incredibly satisfying about writing a script that successfully migrates thousands of records without losing a single piece of data.

Frontend Adventures and Debugging Bootcamp

Debugging Vue Code for Frontend Integration

While my primary focus was backend development, I also needed to modify Vue.js files to ensure that the Laravel application was properly rendered on the frontend instead of the Yii application. This task gave me exposure to JavaScript's Vue framework, and while my experience wasn't extensive, it was enough to appreciate how frontend and backend systems work together.

Working with Vue taught me that full-stack development really means full-stack—you can't just focus on one piece of the puzzle and ignore the rest.

Testing and Debugging Applications

Here's where I really cut my teeth as a developer. When I started at eCenter, my debugging skills were minimal at best. By the time I left, debugging had become one of my strongest skills, and honestly, one of my favorite parts of the job.

I learned to utilize the Network tab in the browser's developer mode to trace and identify errors effectively. I became proficient in running commands to view SQL queries and variables in the console, which allowed me to pinpoint issues in my code with precision.

Testing became an essential part of my workflow. I frequently executed commands in the database to verify that the application was functioning as expected. This process gave me further exposure to database tools and enhanced my ability to write common SQL queries.

While I acknowledge that I still have much to learn in debugging, I'm proud of the progress I made during this work term. There's nothing quite like the feeling of tracking down a bug that's been driving you crazy for hours and finally squashing it.

Laravel Nova and Advanced Development

Understanding and Working with Laravel Nova

In the final month of my work term, my ongoing project was paused, and I was assigned a new challenge: translating another Yii application to Laravel, but this time using Laravel Nova—a management interface for Laravel web applications.

I collaborated with another developer on this project as well, and all the skills I'd developed during the first three months proved invaluable. My role involved creating resources for the Yii application being translated, and I learned a tremendous amount throughout this process. The expertise I'd gained from earlier tasks was especially helpful during this project.

Laravel Nova opened my eyes to how powerful admin interfaces could be when done right. It wasn't just about moving data around—it was about creating tools that would make people's jobs easier and more efficient.

Using GitHub to Collaborate with Other Developers

Throughout my internship, GitHub and Git commands were integral to my daily workflow. Since I was working with another developer on overlapping sections, we maintained a shared Google document to track the models, controllers, helpers, services, commands, and migration files we had translated from Yii.

This collaboration required us to frequently commit our changes and push them to the remote branch, ensuring we stayed synchronized with each other's progress. This experience allowed me to practice and refine my Git skills extensively. I learned about branching strategies, merge conflicts, pull requests, and code reviews—all the collaborative aspects of development that you don't fully appreciate until you're working on a team.

The Remote Work Reality

Working in a Distributed Team

The role being fully remote meant all communication was conducted online via email and Skype. I joined daily meetings with my supervisor and other developers where we reported our progress and addressed any questions or challenges.

Working remotely during this internship actually prepared me incredibly well for the future of work. I learned how to stay focused, manage my time effectively, and communicate clearly in a distributed environment.

The Power of Mentorship and Support

One thing that made eCenter Research special was the exceptional support I received from the development team, particularly my supervisor. This was the first co-op where I had access to senior developers who provided guidance whenever I encountered challenges.

Their assistance not only accelerated my problem-solving process but also maximized my productivity by minimizing time spent stuck on problems. Having experienced developers to turn to when you're struggling with a complex migration or debugging a tricky issue is invaluable—it's the difference between spending hours banging your head against a wall and actually learning something.

What This Experience Really Taught Me

The Deep Satisfaction of Problem-Solving

My co-op experience at eCenter Research was transformative in ways I didn't expect. It offered me deep insights into web application development and practical exposure to industry-standard tools and frameworks. Over the course of my work term, I gained proficiency in translating complex applications between different frameworks, managing databases, and developing my debugging skills.

But more than the technical skills, it taught me about persistence. Migration projects aren't glamorous—they're methodical, detail-oriented work where small mistakes can have big consequences. Learning to work through complex problems systematically became one of my most valuable skills.

Learning on the Job is Essential

This role challenged me to quickly adapt and learn, reinforcing my belief that with the right resources and determination, I can master any skill. The remote work environment taught me the importance of clear communication and collaboration, especially when working with a distributed team.

Once again, I experienced firsthand the value of being a continuous learner in the tech field. This mindset allowed me to approach challenges with confidence, knowing that I had the ability to find solutions, no matter how complex the problem.

The Foundation for Everything That Followed

Technical Skills That Changed My Career

By the end of my time at eCenter Research, I had developed proficiency in:

  • Laravel framework and its ecosystem
  • Database design and optimization
  • API development and integration
  • Vue.js and frontend-backend integration
  • Git workflows and collaborative development
  • Debugging and testing methodologies
  • Migration strategies for legacy applications

But the real value wasn't just in learning these specific technologies—it was in developing the confidence and methodology to tackle complex technical challenges systematically.

Looking Back: A Transformative Chapter

My experience at eCenter Research was exactly what I needed at that point in my career. It took me from someone who could automate workflows and create training videos to someone who could build and maintain complex web applications that serve critical social services.

The relationships I built, the mentorship I received, and the technical foundation I established during those months became the launching pad for everything that followed. Sometimes the most important learning happens when you're thrown into the deep end and forced to swim.


This post is part of my "Professional Journey" series, where I share authentic experiences from my career path. Next up: how I discovered the power of AI-assisted development at Outlier.