As a developer I think my main job is simply bring cool ideas to real life. By giving much attention to architecture details, me and my team can reach a point where the software meets the client's needs with value adding features. All this comes out of a code base that welcomes any change requests or new features.
Bringing ideas to real life needs tide planning, using agile always do the job. I've worked in agile teams for more than 5 years, so I am working agile by nature. Even in non agile teams I become the agile source team member and eventually the whole team may become working agile by just working with me.
As much as I’ve worked in many startups during my career life. I've worked too in many up-and-running projects with existing software and I had no problem fixing bugs or developing new features on top of it without the interruption for current software users. And off-course in some cases we needed to refactor some areas in the code base.
As a +7 years experienced developer I've worked on many open source platforms like PHP/MySQL, Node.js and Python. As result my favourite OS for desktop and servers is Ubuntu Linux. So by default I am doing almost every thing by command line.
My experience was mostly involved in several categories as following :
- Real-time web applications
- Restful backends APIs for mobile apps
- Mobile push notifications backends
- Web crawling
- Geo location web services
- Search engines