Marco Cabrera

 

How would you ideally build a new project?

  1. Agile Process
    1. By having short iterations, it forces the team to:
      1. Communicate more frequently.
      2. Think in more depth about each small piece of the functionality.
      3. Reflect upon the work and process frequently and adjust accordingly.
    2. Allows each team member to learn different aspects of the application allowing more developers to work more fluidly in and out of the team.
    3. Affords developers time to review their code so constant growth is built in to the process.
    4. Refactoring is essential, not a bad word within the project.
  2. Test-Driven Development
    1. By thinking about your test first:
      1. You will write less code for the product
      2. Your code is more usable to a greater group of applications
      3. Your code is more independent which makes it more portable.
    2. Using Data providers, you can use your test to account for any possibility you can think of, for very little extra effort.
    3. You can refactor code with less concern of a ripple effect if there are tests written.
  3. Think of the structure of the database, the server-side scripting language, and the user experience as 3 areas that work with each other but are independent of one another.
    1. Why let the limitations of the database, hinder your organization in your code, when you could create a data abstraction layer and have your code and database work independently?
    2. Your code needs to be written in a way that it can be maintained without worrying about the database or the user.
    3. The User neither cars about the internal structure of your office, nor the folder structure of your web server.

How would you ideally modify or maintain an existing project?

  1. Self preparation
    1. Accept and honor the work and decisions that went into the current code base, but look forward from that place to see where we could be with the right efforts.
    2. Think beyond the requirements, think beyond the current limitations, if your code base can adapt, or move to a new location, you have the ability to add functionality without destroying a workflow.
    3. Be humble, you never know what you don't know. Even in a language I know "inside and out", I respect that even a beginner has something to teach me. If nothing more than the way they phrase questions, that can cause me to see a different connection that I might not have had before.
    4. Accept that we all make mistakes, but our merit is only a reflection of how they handle them.
  2. Study the Database
  3. Study pre-existing code
  4. Speak with team members
  5. Learn any existing processes
  6. Move forward, as possible, with steps for a new project.
 

Downloadable

Resume PDF

Recommendations

I worked closely with Marco on a major CMS overhaul for our site, and I enthusiastically endorse him as a talented and flexible developer with impressive skills in both server- and client-side development. His strong, effective communication skills helped us overcome the challenges of working remotely to complete the project.
— Warren Mills
Marc demonstrates great mastery of the web languages he teaches and an intense enthusiasm to further his knowledge and to share with others. Marc comes very well prepared and is comfortable with people ranging from expert level to new, as seen in the classes in which I participated. Few can work that balance of keeping the high level attendees challenged and not lose those who are newer and determined to learn. Marc did. I learned much while there and would not hesitate to be involved again or recommend him to others.
— Rick Cichewicz
Marco is very hard working and knowledgeable in web development. He is always ready to help in any way he can. He setup learning sessions that proved invaluable to the other developers there. He is very passionate about doing his work correctly instead of just getting things to work.
— Charles Harriger
I have worked with Marco now at two different places, and I've been consistently surprised at the depth of knowledge he has on various topics. He knows specifically a lot about SQL and the differences of implementations. At the second place I've worked with him, he brought a lot of energy and leadership when he came on board and started a couple of new programs (HR type) that have really improved the environment here.
— Chad Crabtree
Marc is the employee every supervisor desires to manage. He is energetic, committed, smart, innovative, hard working, fun, easy to talk with, full of ideas and sees every problem as an "opportunity for a solution". He makes your supervisory IQ go up and does not need much direction. He is a pleasure to work with and I would recommend Marc to anyone seeking his employment. Your organization would be better with him on board. Guaranteed!
— Theodore Coutilish
Marco was one of the more agile developers on staff. His "can do" attitude and willingness to explore new possibilities is hard to find in most developers. He is very personable, easy to get along with and a good collaborator.
— Chris Hanna
Marc was great to work with. He assisted in teaching me web development to better my business and I enjoyed becoming a sub contracter for him. He followed through on all promises and was very patient and pleasent person to do business with. From the moment you meet him you get a feel of honesty and integrity and as you get to know him more you will see how right you are.
— Eric Soukenka