Hi, I'm Colin Phillips.
Most often you'll find me after hours digging endlessly over my latest obsession.
I'm a learning junkie in the sense that I want to consume as much as I can about something that has caught my interest until I rinse and repeat with the next addiction.
I most certainly get this from my father.
In 2019, outside of work this has been fitness and nutrition - having lost just shy of thirty pounds since January.
In the past this has been my saltwater fish tank, crypto, prosumer home-networking, smart home automations, wristwatches, PC building, cameras, home theater, scotch/whiskey and modifying cars.
From a professional perspective, I've been wrapping my head around maintaining and refactoring legacy code bases, design patterns, scalable application architecture, raw speed, scrum and agile project management, team building, cultivating cross-team relationships, mentoring and management as a hands-on tech resource.
From a stack standpoint, I'm focused on .NET / dotnetcore, SQL / optimizations and both monoliths as well as microservices.
In my company the past few years I've been in a management-oriented architectural role, transitioning us
to a modern stack and mindset after some critical stabilization and speed enhancements through refactoring,
restructuring and re-imagining an older codebase with legacy dependencies.
I work closely with the vision of our CEO and marketing team being both responsive to and influencing strategy while driving technical leadership.
I've become appreciative of the opportunity to being both hands-on as a technical resource while also working largely on business.
Having held a few positions maintaining and upgrading dated code with dozens of collaborators, I was able to newly apply proven modern design patterns, architecture and technology.
This was adapted while training up junior resources on code quality expectations that were repeatable by any member of the team. A code review - after all, is not an intended measurement of capability (mis-hire) but instead an opportunity to provide insight via language, framework or product knowledge on approach with minor suggestions on technique that overall benefits both parties.
Very soon thereafter we were able to provide stakeholders with measureable results that were found to be quite repeatable and a process was born; we were able to push the boundaries of archaic foundations on a modern stack that left our customers without delay of purchase and conversion rates reflected our efforts.
I was lucky enough to become responsible for our next-generation roadmap that saw several iterations and soon will come to life!
I picked up an interest in reading technical books sometime in 2015 after not appreciating them several
years prior back in college.
Here is a list of books I've gone through and would recommend starting with the most recent I've read:
- Pro .NET Memory Management: For Better Code, Performance, and Scalability
- Pink Goldfish: Defy Ordinary, Exploit Imperfection and Captivate Your Customers
- Your Code as a Crime Scene: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs
- Data Analysis Using SQL and Excel, 2nd Edition
- PMP Exam Prep: Accelerated Learning to Pass the Project Management Professional (PMP) Exam
- Peopleware: Productive Projects and Teams (3rd Edition)
- Practical Azure Application Development: A Step-by-Step Approach to Build Feature-Rich Cloud-Ready Solutions
- Real-Time Web Application Development: With ASP.NET Core, SignalR, Docker, and Azure
- Coaching Agile Teams: A Companion for ScrumMasters, Agile Coaches, and Project Managers in Transition
- The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)
- Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services
- Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity
- The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change
- Clean Architecture: A Craftsman's Guide to Software Structure and Design
- Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams
- The Subtle Art of Not Giving a F*ck: A Counterintuitive Approach to Living a Good Life
- Cracking the Coding Interview: 189 Programming Questions and Solutions
- The Pragmatic Programmer: From Journeyman to Master From Journeyman to Master
- Pro ASP.NET Core MVC
- Design Patterns: Elements of Reusable Object-Oriented Software Elements of Reusable Object-Oriented Software
- The Elements of Style, Fourth Edition
- Python in Under 60 Minutes: The Disaster to Master Guide to Python Programming
- Code Craft: The Practice of Writing Excellent Code The Practice of Writing Excellent Code
Most often, I end up creating something to familiarize myself with a new technology after-hours so it is much easier to see its benefit on the job.
For work I had quickly spun up a highly available API to serve data from a SQL database and cache in Redis that could handle high volume on a well known online marketplace.
This had given me the opportunity to learn net core 1.x which I loved.
To learn net core 2.0, I built a resume site that encompasses an updateable stack via a boostrap theme.
Some things picked up from this project, find more details under Built With section at the link above.
- EntitiyFrameworkCore and Migrations against a SQLite database
- MVC Scaffolding
To elliminate a personal need, I built a highly-available robust notification engine that I use daily build in 2.2.
This gave a chance for using some more features of core MVC and new libraries:
- Running EntityFrameworkCore against a MySql database on Ubuntu
- Utilizing Hangfire for recurring and scheduled jobs including their lifecycle
- Client Secrets
- Action Filters
- Background Service with DbContext access via DI
- Roles and Authorization Handlers