Software Engineer & Consultant
January 2015 - Present
Moving on as a remote coder
Currently, I am working from home as a remote software engineer, consultant and sometimes freelancer. When I am not working, I deal with my hobbie projects, try new techs, contribute to open source and improve my coding skills by practicing algorithms.
Lead Software Developer
June 2008 - Present
Solving problems of companies by creating ad-hoc solutions within a smart business intelligence platform
I have been responsible for the core development of KivaCRM cloud based PaaS/SaaS product, its BI/CRM tools and primary mobile apps as well as leading a team of few people.
I have been developing the primary web app since the beginning with extjs frontend, and php backend. I developed various services including websocket based real-time notification system, automated workflow system, email/sms marketing services, task/event management, reporting/analytics and so on. I created advanced reports & analytics dashboards from transactional, highly relational datasets in mysql to achieve advanced BI experience. I’ve learned lots of tech stacks during development, some of which are zend and phalcon php frameworks, gearman job queues, nodejs, socket.io, firebase, sphinxsearch etc.
I developed multiple side projects/plugins, such as facebook lead integrations, microsoft office addins and 3rd party integrations. During development I have learned lots of 3rd party APIs such as facebook graph api, ms graph api, ms com library for office addins etc.
I also developed few hybrid mobile apps written in extjs/sencha-touch and framework7, built natively with cordova/phonegap.
Freelance Web Developer
June 2005 - June 2008
Stepping into the world of coding as a young student
This was the time I started using my fresh coding skills in real-world scenarios. I did some typical freelance projects such as building company websites, adding small features or fixing bugs in legacy projects. During this period, I created my first open source project, -an ajax library for php- PHPLiveX when concepts like ajax just became popular. I stopped developing it a few years later with the adoption of jquery and similar libraries.
Istanbul Technical University
BSc Control Engineering
2008 - 2013
Established in 1773, ITU (http://global.itu.edu.tr) is one of the oldest universities in Turkey, and is mostly known for its engineering studies.
During my study, I learned control theory and its applications in real world problems. I wrote PLC programs in ladder and procedural languages to control electromechanical systems. Although it is not directly connected to my occupation, I’ve learned theories and practical skills that helped my programming career. I believe that embracing engineering discipline and control theory made my coding skills and algorithms much better.
PHP12+ years | 9/10
I’ve been coding in php since v4, I started developing websites, ad portals and have been working in saas projects since then. I still like coding in php and I keep refreshing my knowledge by practising new features and patterns.
I prefer writing object-oriented, readable, maintainable code and avoid reinventing the wheel unless it is really neccesary, so I usually use frameworks in combination with well tested composer libraries to accomplish my tasks. I first started with zend framework and then used phalcon in many areas, but lately I am also interested in laravel and zend-expressive. I am also interested in swoole extension that runs php in a similar way to nodejs or golang, and I believe event-based php might be the future of the language and possibly web.
I am a fan of client side frameworks and tools like reactjs and webpack. I am enthusiastic about using react more and more, as I believe the concepts like state handling, top-down approach, function components, hooks and easy integration with other libs are great improvements over the web.
I use nodejs for some microservices and small components, such as messaging services, real time notifications, although I never code entire stack in nodejs.
ExtJS11+ years | 10/10
I have been developing single page apps with extjs and sencha touch(for mobile) for a long time. I created dozens of new components as well as 100s of overrides to implement new features. I know how to structure an extjs app very well and use it performant. Although it might be too expensive for small projects, I think it is still the best UI framework for large scale products or enterprise applications.
I also use extjs in mobile development and universal applications. I’ve developed few mobile apps using sencha touch with a large codebase. Nowadays, I would prefer using extjs6 modern toolkit for both mobile and desktop applications.
MySQL9+ years | 8/10
I have been using mysql since 5.1, and now keeping up with 8.0. I have designed and optimized multi-tenant saas databases, from query/index optimizations to kernel tuning and high availibility. I managed 300+ databases per node in a replicated environment with read-write split, which made me experience lots of database issues and os-level problems as well as their solutions. I design my databases with intention to make them scalable and maintainable in the future as well.
Since I believe that database is the most important part of today’s software, I regularly read mysql blogs and updates to stay up-to-date. Mastering an RDBMS requires a lot of experience and deep knowledge, so I would give myself 8 out of 10, to set myself aside from database specialists.