About this project
it-programming / web-design
Open
Nosso escritorio esta buscando um programador que tenha trabalhado com IT em inglês. Que a lingua inglesa não seja um problema par o desenvolvimento do trabalho.
Abaixo esta as qualificações necessárias:
Advanced understanding of object-oriented programming.
The codebase for ush was written by many different people over many years, but the problems it attempts to solve fit very well with modern oop design patterns. Over the next five or so years I except the USH codebase to require a lot of revision, and the person or company that does it needs to be really good at refactoring code to conform to modern patterns. If it's done well, it will last for many more years.
Strong understanding of Laravel 4.
If a person has an advanced understanding of OOP, then picking up Laravel shouldn't be too hard, so this point isn't quite as important as (1). But the corollary is that Laravel can take several months to get good in for someone who has only a moderate understanding of oop, because it uses modern oop patterns and the most recent improvements to php. When I first started using Laravel, I wasn't used to thinking in terms of Services, Providers, and Facades--not to mention Dependency Injection and Inversion of Control--so it took a little while to get used to Laravel and to use it well.
If possible, I'd like to find somebody who is already past that hump.
Strong understanding of unit testing and PHPUnit.
Currently, the bulk of the old USH codebase is untested and very fragile. Small changes are prone to rippling and breaking distantly related code. I want as much as possible to ensure that new code has unit tests to go along with it.
Writing testable and well-tested code takes a lot of practice, so I'd rather not have someone who's just beginning.
Advanced understanding of relational databases (MySQL) and ORMs.
The new code I've written uses Laravel's Eloquent orm heavily, and an orm is well-suited to handling much of what needs to be done for ush. However, an orm is not always the best fit, and even when it is, it may be difficult to use because the ush database has some deep-rooted anti-patterns that unfortunately will take a lot of work to stamp out. Thus I want somebody who really knows proper use of MySQL.
Dogmatic adherence to the DRY principle and proper Separation of Concerns.
Two of the biggest problems with the old Ush codebase are duplicate code and code with totally mixed up responsibilities/concerns, e.g., html, php, and sql all in the same files. Consequently, I think the two most important principles to be followed by any developer on the project are 1) DRY (Don't Repeat Yourself), and 2) Separation of Concerns. It's easy for a developer to say they know what those mean, but I want someone who practices them and can prove it to me.
Category IT & Programming
Subcategory Web design
Is this a project or a position? Project
I currently have Not applicable
Required availability Part time
Experience in this type of projects Yes (I have managed this kind of project before)
Specific need Update a website
Project duration More than 6 months
Skills needed