Phillip Ninan

Online Resume

Download PDF Version

Phillip Ninan

Senior Software Engineer

A Senior Software Engineer with 8+ years of experience responsible for full-stack architecture and development. I am an enthusiastic technologist, proven leader, and convey excellent communication skills. I am seeking a leadership position with a progressive employer where I can contribute to developing new technologies and work with bright, dedicated individuals.


Work Experiences

Senior Software Engineer

LBi Software | 2014 - Present

Technical lead developer for several ongoing projects. Trusted with architectural decisions, development of core components, continuous integration, and software development processes for sports analytics applications.

  • Software Architect. Responsible for architectural decisions of core frameworks and technologies used on a project by project basis. I am well versed in the balancing act of keeping apps up to date with the "latest and greatest" for security, performance, and better developer experiences while not adding unnecessary technical debt. I have learned to make effective design decisions based on communications businesses and clients. I help break down complicated tasks into manageable chunks of work that can easily be understood and implemented.
  • Team Lead. I make high-level design choices and enforce technical standards across my team. I not only make technical decisions myself but also try to mentor other developers and encourage them on how to learn how to make decisions on their own. I try to always lead by example and make sure I am using the best practices that I set forth for my team.
  • DevOp Enthusiast. In charge of setting up DevOps for my projects using Jenkins CI/CD pipelines. I have set up integrations with Jenkins and Bitbucket to require a successful build before being merged, send slack messages upon build failures or status changes, and provide both daily and on-demand one-button deployments. I have spearheaded a company-wide effort to utilize Docker. My efforts have lead to a lead to a 50%+ decline in project onboarding and made for much happier developers.
  • Office AWS Guru. I have used AWS to deploy applications to EC2 instances, push Docker images to ECR, deploy those images to ECS, and scale applications using ELB's. I have created PostgreSQL DB's in RDS and setup security groups to isolate communication between environments.
  • JUnit & Mockito Expert.

    -Increased the adoptions of developers writing tests by launching JUnit and Mockito training workshops resulting in 300%+ more developers writing tests.

    -Reduced bugs found by clients by creating pull request guidelines and asking developers to write tests yielding 24% less server-side bugs.

    -Improved project code coverage by teaching developers to write higher quality tests using BDD resulting in 90% Java package and 48% line coverage over two years of development with a team of 4+ developers.

Projects

Athletes Unlimited - Technical Project Lead

New sports leagues for the world's best athletes. Starting with softball in August 2020

  • Java 9, Spring Boot, Swagger, MSSQL, Angular
  • Notable Feature: Public API. I am developing a public-facing API to provide the client-facing application with data for players, teams, games, and statistics. I need to provide API versioning for by sport for resources to provide the most flexibility and prevent changes made to one sport to break another. I am utilizing Swagger for API documentation on how to consume the API and AWS ECS to be able to scale the application as needed by traffic or schedule.
  • Rule 4 MLB Draft Tool - Technical Project Lead

    The LBi Dynasty Rule 4 Draft App is a light-weight application designed to integrate seamlessly with the MLB Rule 4 Draft in real-time. The Draft App combines statistics and scouting data accumulated throughout the scouting season to determine the best available player on the board.

  • Java 8, Spring Boot, MSSQL, Angular.JS, Plotly.js
  • Notable Feature: Websockets. I was able to implement some very useful features using WebSockets. Prior to the draft, clients rank and group players they would like to draft. Each client will have their changes published to all other clients whenever a player is ranked, added, or removed from a group. This tool is used during the real-time MLB draft, we utilized WebSockets to be able to push draft picks to all clients in real-time. When draft picks come in players will be removed for their client’s draft queue and their ranks will be adjusted accordingly.
  • Caesar - Technical Project Lead

    Detroit Tigers Scouting Application - Java web application used for scouts and front office users in the Detroit Tigers organization. I am responsible for architecture and major components. This tool is designed for Font Office employees and GM's to be able to manage their players, rosters, depth charts, stats, and scouting.

  • Java 8, Spring Boot, MSSQL, Angular.JS, Plotly.js
  • Notable Feature: Video Aggregation. I implemented a tool to aggregate videos across different sources. I designed this feature to be able to seamlessly add N number of video sources and return them in a uniform response. Each video source needed to have its own set of filter options and request and response mappings. I decided to have this driven by database metadata to allow for zero downtime changes and plug and play functionality when adding new sources. This pattern also allows for a uniform design when implementing video filters client side. Video requests were made asynchronously to allow for faster responses.