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
- Demonstrate a willingness and desire to help
- Set realistic expectations
- Keep an open line of communication
- 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.
Add new features in a way that benefits the future of the team
- Follow the YAGNI principle
- Readability > Clever
- Write code that a junior developer could understand
- Use CSI (Commenting Showing Intent)
- 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?
- SOLID principles
- Identifiable design patterns
- Make them meaningful
- Keep the scope focused
Code you're reading should deliver on your team's objective
- Be critical in code reviews but remain objective - personal preferences don't matter
- Does the code you're reviewing follow the principles outlined above?
Never be comfortable
- Always be open to new ways of solving problems
- Always seek ways to sharpen skills you're already strong in
- No skillset is unattainable
- Persistence is key