Hello! I've been working as a software developer and architect for 10+ years with a wide range of duties such as building and maintaining a suite of Angular libraries, building highly scalable and interoperable CI/CD pipelines, system administration, creating Spring microservices, leading team workshops, and more!

I've been lucky enough to wear many hats over the years. I'm a firm believer in using the right tool for the job rather than trying to fit a square peg in a round hole. More importantly, I believe that software development is an industry of people more than abstract ideas.

By having the right attitude and strong interpersonal skills in addition to technical expertise I know that I can help elevate any team I have the pleasure of working with.

Software Development Principles

I have the following principles proudly printed out and on my wall as a daily reminder of how I can deliver maximum returns for myself, my team, and the customers I serve.

Soft skills matter as much as technical skills

  1. Demonstrate a willingness and desire to help
  2. Set realistic expectations
  3. Keep an open line of communication
  4. Everyone's journey is different; What would you need if you were in this person's shoes?
  5. You can't think of everything; Ask for help when it's needed. The struggle is good but there comes a time when things need to move forward.
  6. Every day should be a step towards mastering prioritization (for yourself and the team)

Add new features in a way that benefits the future of the team

  1. Follow the YAGNI principle
  2. Readability > Clever
    • Write code that a junior developer could understand
    • Use CSI (Commenting Showing Intent)
  3. Consistency > Creativity
    • Do things as the team does them even if it's not your preference
    • Try to steer the team towards consistency and best practices
    • Changes in patterns should be deeply considered and discussed with the team before implementing. Is the ROI worth it?
  4. Follow best practices and a set standard whenever possible
    • SOLID principles
    • Identifiable design patterns
  5. Documentation matters. Keep them up to date as much as possible.
  6. Unit tests save lives
    • Make them meaningful
    • Keep the scope focused

Code you're reading should deliver on your team's objective

  1. Be critical in code reviews but remain objective - personal preferences don't matter
  2. Does the code you're reviewing follow the principles outlined above?

Never be comfortable

  1. Always be open to new ways of solving problems
  2. Always seek ways to sharpen skills you're already strong in
  3. No skillset is unattainable
  4. Persistence is key