Skills | Education | Experience
John Fabrizi
I'm a junior developer with a love and appreciation for following good development practices.
I've always had a passion for challenging myself and learning and mastering new skills. I think life-long learning is an essential part of being a developer and a successful career.
As an English teacher in a previous life, I learned to communicate and work with people from all walks of life and skill level. Adapting to a constantly changing environment has taught me to be flexible, and reach my goals with focus and determination.
After finishing Makers Academy I've decided to dive in head first into a major career change to get closer to the exciting tech scene. I'm currently looking for a role which provides the opportunity to continue progressing and growing at the incredibly rapid rate I have become accustomed to.
💻 Skills
Software/Web Development & Testing
- Main Languages: Ruby, Javascript, Java
- Frameworks: Rails, Sinatra
- TDD: RSpec, Capybara, JUnit, Jasmine
- OOP Principles such as SOLID and DRY
- Wireframe/Layout a website or web application
- Write HTML and CSS from scratch
- Take a PSD and turn it into a working website
- Add interactivity to a website with Javascript(or JQuery)
- Work comfortably with a version control system(Github)
- Deploy a website to a website host(Heroku)
Problem Solving
- Aim to simplify complex tasks/concepts by breaking them down into smaller/simpler units. I use plain English to solve a problem at an abstract level first, then translate into code, test-driving throughout the development.
- Use of diagrams to blueprint systems/concepts to more easily reason over them.
- Tackle problem solving with focus and calm; ability to take a step back and take a fresh approach whenever necessary.
- Scanning, identifying, diagnosing and resolving problems, errors and bugs in software.
Clean Code
- Taking pride in the code produced and constantly striving to improve it, make it more efficient and easier to understand.
- Designing and writing programs as interactions among functions that each perform a single well-defined function, and which have minimal side-effect interaction between them.
- Attention to detail, including choice of names. By carefully picking the clearest, most descriptive and least ambiguous name possible, the user experience is made simpler and more efficient.
Communication
- Coordinating with team members and peers, with clarity and purpose, to efficiently develop the product on time.
- Clear and frank discussion of technical options with team members and colleagues, ensuring that instructions and feedback are followed and shared.
- Promoting better technology options to promote more efficient productivity and better working habits among team members.
🎓 Education
Makers Academy (June 2016 to September 2016)
- Curiosity and hungry passion for code
- Independent learner and problem-solver
- OOP, TDD, SOLID, MVC, DDD
- Software Craftsmanship
- Ruby, Rails, Javascript, Node.js
- Rspec, Jasmine, JUnit
St. Louis Community College (2000 to 2003)
- Candidate of Associates of Arts, Business Administration
Any other qualifications
- Teaching English as a Foreign Language (TEFL) (April 2006)
- Italian C2
- Russian A2
💼 Experience
Digital Publishing (2012 to 2016)
Teacher
Shenker Institutes of English (2007 to 2012)
Teacher
ProNet International, Inc (2004 to 2005) Operations Manager
STL Department of Health (2000 to 2003) Pharmacy Technician