Greg Miller's Personal Site
This is the personal website for Greg Miller.
Send questions to: gregpmillr@gmail.com
I'm a passionate developer with 8 years of experience. I've developed Tranquility Online from day 1 and continue to lead the team today. My long-term commitment is to make quality software and help my team be more productive.
Job Tasks: API development, frontend development, sprint planning, sprint reviews, sprint retrospective, release planning, Interviews, documentation, onboarding, optimizing for performance, hotfixes
Hobbies: Dog Training, Reading, Motorcycling, Camping, Biking, Snowboarding, Longboarding, Hiking, Game Design
This is my rescue dog, Samara. She's from Egypt and I got her from Friends of Zamalek Stray Animals.
Sadly, my rabbit Thumper had passed on December 20, 2023. He was the best! He's in his own tier for bunnies.
Since I have so much stuff for rabbits, I wanted to help out where I can. I'm now fostering Eli and Epi through 10,000 carrots rescue!.
Resume
Experience
Staff Developer June 2023 - Present
Greenshield
- Improve developer onboarding with automated environment setup, new developer Jira board
- Elastic APM traces to measure API performance issues
- API integration to show users their available benefits
- Update all Go repo CI to have matching workflows
- Update integration test suite to use dockertest
- E2E testing with Postman
Technical Lead Jan 2022 - June 2023
Inkblot therapy
- Led a team of 7 developers to deliver SaaS to multiple governments
- Implemented data privacy storage requirements to become SOCII and ISO 27001 compliant
- Updated API access controls to use RBAC and ABAC
- Facilitate the Daily Scrum, Sprint Planning, Sprint Reviews, and Sprint Retrospective
Full-Stack Developer (Contract) Mar 2021 - June 2022
ReelData
- Develop marketing website using Gatsby, Heroku, and AWS
- Created CI/CD pipelines to automatically build, test, and deploy changes
- Collaborated with designers for UI/UX incremental development and fixes
Lead Developer May 2017 - Jan 2022
Tranquility Online
- Implemented PubSub messaging over WebSockets for fan-out notifications and live chat
- Implemented Stripe payments, subscriptions, webhooks, and receipts for multiple products
- Implemented a matching algorithm to determine the best match between the practitioner and client preferences
- White labelling feature to customize B2B experience
Lead Teacher Assistant Jan 2017 - April 2018
Dalhousie University
- Created scripting exercises with PHP, database design and development with SQL
- Restructured lab classes with Android Development and data handling with Firebase
- Led teacher assistants on how to deliver labs to students
Business Intelligence Developer (Co-op) May 2016 - Sep 2017
Emera Energy
- Extracted data captured via pipeline sensors and third-party vendors
- Translated data to our schema and loaded it into our databases to process in-house
- Delivered reports on historical energy trades and incorrect forecasts
- Delivered reports to energy traders, showing excess or overpriced natural gas purchases
Website Developer (Co-op) Feb 2015 - Feb 2016
NSCC Print Shop
- Developed Laravel web app to eliminate paper from print orders
- MySQL database to collect user information
- Provided full documentation on replacing physical orders with the developed ordering system
Education
Bachelor of Applied Computer Science
Dalhousie University May 2020
Diploma in Database Application Development
NSCC Institute of Technology June 2016
Skills
- REST API development
- Database design and development
- Postgres data backup and restoration
- DDD
- Event systems
- Frontend (React, Next.js, Gatsby.js)
- Access control (RBAC, ABAC)
- Caching methods
- DevOps principles
- CI/CD
- Cloud (AWS)
- ETL (Elasticsearch, SSRS, SSIS, SSAS)
- Containerization (docker)
- Data and privacy governance (GDPR, HIPAA)
Brain Dump of Lessons Learned
- Features, Speed, and Quality. You can only have two.
- Choose the correct solution, not the fastest.
- Improve by measuring.
- Hire people, don't contract it out.
- Spread knowledge between teams, prevent silos.
- Learn how to be both an IC and EM. After discovering which you enjoy more, stick with it. Don't let a company choose your path.
- Use typed languages.
- Version your APIs.
- Do not overcomplicate. Be as simple as possible with everything. Be resistant to breaking changes.
- E2E tests and integration tests are important.
- In a start-up you'll work too much. It'll be worth it if you succeed.
- A good mentor can take a long time to find.
- Composition over inheritance.
- Managers need to make the most use of their best developers. The best developers want/crave a hard problem to solve.
- If you're unprepared, not engaged, or are not on the ball, your colleagues already know.