
I’m Michael Paquette. I live in Montreal, where I design the future.
I started building websites in the early days of html, css and javascript. And then obsessed over new technologies as they were adopted like actionscript, php and java. I found a real passion in java servlets using struts framework and JSP‘s for serving the front-end.
This kicked off a 12 year run on building java based software projects in both front and backend. Lately, I have been building java and node backends with react and tailwindcss front-ends.
I like to be an active participant in requirement gathering. I believe in team first decisions and seeking out feedback from anyone. I believe in failing fast and the use of sprint iterations to evolve software into real-world solutions.
I believe in simple design for new solutions and un-designing complicated ones. I believe in a thin rank structure between colleagues grounded in humility and respect focused on getting the right job done.
Some important software engineering values for me are (some taken from friends along the way):
- Favor readability over brevity
- Favor libraries over frameworks
- Avoid the use of any technology that introduces "magic" (an element of surprise) into the software development / debugging process
- Given the choice between build-time code generation or runtime bytecode generation, we favor the former. Code generation creates source code that can be read and debugged, unlike bytecode generation.
- We invest the necessary time to ensure that our software is easy to maintain over the long haul.
- We add tests, refactor, and document our work as we go along, not after the fact.
- Time estimates include this work as an inseparable part of implementing a new feature.
- We work as part of a team. When you write (and document) code, do it with your teammates in mind.