Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-theme.php on line 554
Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-theme.php on line 595
Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-theme.php on line 535
Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-theme.php on line 544
Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-request.php on line 960
Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-request.php on line 980
Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-request.php on line 992
Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-request.php on line 1003
Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 151
Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 175
Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 164
Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 186
Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 138
Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 75
Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 89
Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 110
Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 127
Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/class-wp-block-list.php on line 199
Warning: session_start(): Session cannot be started after headers have already been sent in /var/www/popup4phone/html/wp-content/plugins/popup4phone/includes/components/leads.php on line 18
Deprecated: Return type of WC_DateTime::setTimezone($timezone) should either be compatible with DateTime::setTimezone(DateTimeZone $timezone): DateTime, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-content/plugins/woocommerce/includes/class-wc-datetime.php on line 57
Deprecated: Return type of WC_DateTime::getOffset() should either be compatible with DateTime::getOffset(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-content/plugins/woocommerce/includes/class-wc-datetime.php on line 47
Deprecated: Return type of WC_DateTime::getTimestamp() should either be compatible with DateTime::getTimestamp(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-content/plugins/woocommerce/includes/class-wc-datetime.php on line 68
Deprecated: Return type of WC_Meta_Data::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-content/plugins/woocommerce/includes/class-wc-meta-data.php on line 50
Warning: session_start(): Session cannot be started after headers have already been sent in /var/www/popup4phone/html/wp-content/plugins/popup4phone-premium-lite2/includes/main.php on line 402
Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 63
Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 73
Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 89
Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 102
Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Cookie/Jar.php on line 111
Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40
Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51
Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68
Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82
Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/popup4phone/html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91
Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/popup4phone/html/wp-includes/class-wp.php on line 173
Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667
Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667
Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667
Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667
Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667
Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667
Reliable Senior Web Developer (7 years exp.) - PHP, MySQL, Yii, API, WordPress
My total programming experience is more than 18 years (since 1997), experience in web-development is more than 7 years (since 2008).
I have completed more than 100 projects. These projects includes web sites, online stores, custom CRMs, web-services/Apps/SaaS, API integration/automation tasks, ecommerce email marketing apps (collecting data, segmentation, cart abandonment, feedback request, etc.), web-analytics setup
I prefer to working on programming web services / web applications (Software as a Service, SaaS), WordPress / WooCommerce plugins related to marketing and analytics, data-mining, automation.
Also I like to work with ecommerce tasks (for example, cart abandonment emails, customers reactivation campaigns).
Rate: 49 USD per hour
My advantages
- During work on project – I will provide updates to you in less than 72 hours since last clarification
- Communication skills – I can describe any technical issue, so even not savvy person can understand it
- I work iterative, starting with smallest scope, and extend it step by step, so you will have good control on development.
- Reliability (for example, I have two independent internet lines + two independent power supplies)
- Ability to work on long-term projects with consistently high quality (some customers are working with me since 2010)
- I am working only free-lance (since 2009), have time-management skills (I even made my own ToDo manager that help me to be concentrated and productive)
- I worked in business consulting for near two years (in such areas as ecommerce, email marketing, conversion optimization), but in 2013 I decided to comeback to programming because I was too tired from annoying meetings and calls. I understand marketing much more than usual programmer.
- If needed – I can make copy on my hosting and work with it to avoid disturbing existing users
- Since 2014 I am working in Upwork (former oDesk), more than 40 projects had been completed with five-star feedback. 98% of clients recommend me to others
My disadvantages (yes, I don't hide it)
- I work only with hourly projects (no fixed price)
- I am very introverted and avoid projects that requires Skype availability. With some customers I working for near one year using only asynchronous communications (email, Trello).
- I cannot start work immediately and I will need up to 48 hours before start to change my schedule
- I don't work for urgent / ASAP projects
- I don't work for any possible project – I have some criteria and may decline from some projects
My skills
Strong fundamentals (math, algorithms, theory), analytical thinking.
I have experience with PHP, JavaScript (including jQuery, WebRTC, WebSockets, canvas), AJAX, MySQL, SQLite.
- Architecture: have experience with object oriented programming (OOP), Model-View-Controller (MVC) architecture, data-flow (DFD) and entity-relation (ERD) diagrams
- Frameworks/libraries: Yii (including Yii Auth, RBAC), CodeIgniter, Bootstrap, jQuery, AngularJS CMS: OpenCart, Moodle, Drupal, ZenCart, Joomla!, WordPress (including event management - Event Espresso, membership sites, Digital Access Pass (DAP), OptimizePress)
- ORM (object-relational mapping) libraries: RedBean, Medoo
- APIs: Amazon CloudWatch / EC2 / S3 / CloudFront, Google Analytics / Adwords / Maps / Charts / Docs / Drive, MailChimp, Mandrill, Emarsys, Wufoo, CallRail, InfusionSoft, Salesforce, YouTube, Twitter, AngelList, Facebook, Unbounce, PIWIK, Bit.ly, Klout, Basecamp, GitHub, FreshDesk, ZenDesk, Dropbox, simPro, WebinarJam, WHMCS automation Big data cloud-based solutions: Google BigQuery
- Visualisation / Reporting: have experience with building dashboards and with these tools: Google Charts, D3.js, C3.js, JpGraph, pChart, PDF generation (TCPDF), PHP Excel
- Integration with import/export from/to different systems using POST (cUrl), XML, WSDL/SOAP, REST, oAuth / oAuth2.
- Payments setup: PayPal, USAePay
- Page loading time / speed optimization: working with GTmetrix reports
- SMS gateways setup: SMSC
- Version control systems: SVN, GitHub
- Web Analytics: Google Analytics / Universal Analytics, Google Tag Manager, PIWIK. Have experience in setup goals and funnels, UserID / content groups / forms / events tracking, customization (dimensions, metrics, reports, dashboards, segments).
Just few feedbacks
Risk-free test
Do you want to reduce risks when hiring freelancers for your project?
Best check before hiring freelancer – complete some part of your project. This will sure confirm ability of freelancer to work on your specific project.
I am ready to provide you demo/test task before hiring, so you will be sure in my skills in advance.
For each new customer I can dedicate up to 4 hours for demo/test tasks (costs $144 with my current rate, but you will receive it for free).
Contact me
Please send a request using this form:
Reliable Senior Web Developer (7 years exp.) - PHP, MySQL, Yii, API, WordPress
My total programming experience is more than 18 years (since 1997), experience in web-development is more than 7 years (since 2008).
I have completed more than 100 projects. These projects includes web sites, online stores, custom CRMs, web-services/Apps/SaaS, API integration/automation tasks, ecommerce email marketing apps (collecting data, segmentation, cart abandonment, feedback request, etc.), web-analytics setup
I prefer to working on programming web services / web applications (Software as a Service, SaaS), WordPress / WooCommerce plugins related to marketing and analytics, data-mining, automation.
Also I like to work with ecommerce tasks (for example, cart abandonment emails, customers reactivation campaigns).
Rate: 49 USD per hour
My advantages
- During work on project – I will provide updates to you in less than 72 hours since last clarification
- Communication skills – I can describe any technical issue, so even not savvy person can understand it
- I work iterative, starting with smallest scope, and extend it step by step, so you will have good control on development.
- Reliability (for example, I have two independent internet lines + two independent power supplies)
- Ability to work on long-term projects with consistently high quality (some customers are working with me since 2010)
- I am working only free-lance (since 2009), have time-management skills (I even made my own ToDo manager that help me to be concentrated and productive)
- I worked in business consulting for near two years (in such areas as ecommerce, email marketing, conversion optimization), but in 2013 I decided to comeback to programming because I was too tired from annoying meetings and calls. I understand marketing much more than usual programmer.
- If needed – I can make copy on my hosting and work with it to avoid disturbing existing users
- Since 2014 I am working in Upwork (former oDesk), more than 40 projects had been completed with five-star feedback. 98% of clients recommend me to others
My disadvantages (yes, I don't hide it)
- I work only with hourly projects (no fixed price)
- I am very introverted and avoid projects that requires Skype availability. With some customers I working for near one year using only asynchronous communications (email, Trello).
- I cannot start work immediately and I will need up to 48 hours before start to change my schedule
- I don't work for urgent / ASAP projects
- I don't work for any possible project – I have some criteria and may decline from some projects
My skills
Strong fundamentals (math, algorithms, theory), analytical thinking.
I have experience with PHP, JavaScript (including jQuery, WebRTC, WebSockets, canvas), AJAX, MySQL, SQLite.
- Architecture: have experience with object oriented programming (OOP), Model-View-Controller (MVC) architecture, data-flow (DFD) and entity-relation (ERD) diagrams
- Frameworks/libraries: Yii (including Yii Auth, RBAC), CodeIgniter, Bootstrap, jQuery, AngularJS CMS: OpenCart, Moodle, Drupal, ZenCart, Joomla!, WordPress (including event management - Event Espresso, membership sites, Digital Access Pass (DAP), OptimizePress)
- ORM (object-relational mapping) libraries: RedBean, Medoo
- APIs: Amazon CloudWatch / EC2 / S3 / CloudFront, Google Analytics / Adwords / Maps / Charts / Docs / Drive, MailChimp, Mandrill, Emarsys, Wufoo, CallRail, InfusionSoft, Salesforce, YouTube, Twitter, AngelList, Facebook, Unbounce, PIWIK, Bit.ly, Klout, Basecamp, GitHub, FreshDesk, ZenDesk, Dropbox, simPro, WebinarJam, WHMCS automation Big data cloud-based solutions: Google BigQuery
- Visualisation / Reporting: have experience with building dashboards and with these tools: Google Charts, D3.js, C3.js, JpGraph, pChart, PDF generation (TCPDF), PHP Excel
- Integration with import/export from/to different systems using POST (cUrl), XML, WSDL/SOAP, REST, oAuth / oAuth2.
- Payments setup: PayPal, USAePay
- Page loading time / speed optimization: working with GTmetrix reports
- SMS gateways setup: SMSC
- Version control systems: SVN, GitHub
- Web Analytics: Google Analytics / Universal Analytics, Google Tag Manager, PIWIK. Have experience in setup goals and funnels, UserID / content groups / forms / events tracking, customization (dimensions, metrics, reports, dashboards, segments).
Just few feedbacks
Risk-free test
Do you want to reduce risks when hiring freelancers for your project?
Best check before hiring freelancer – complete some part of your project. This will sure confirm ability of freelancer to work on your specific project.
I am ready to provide you demo/test task before hiring, so you will be sure in my skills in advance.
For each new customer I can dedicate up to 4 hours for demo/test tasks (costs $144 with my current rate, but you will receive it for free).
Contact me
Please send a request using this form:
Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/popup4phone/html/wp-includes/wp-db.php on line 3030
Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667
Warning: Cannot modify header information - headers already sent by (output started at /var/www/popup4phone/html/wp-includes/class-wp-block-list.php:14) in /var/www/popup4phone/html/wp-includes/rest-api/class-wp-rest-server.php on line 1667
{"id":132,"date":"2015-12-26T08:50:14","date_gmt":"2015-12-26T08:50:14","guid":{"rendered":"http:\/\/localhost\/?page_id=132"},"modified":"2016-03-15T15:17:48","modified_gmt":"2016-03-15T15:17:48","slug":"author","status":"publish","type":"page","link":"https:\/\/popup4phone.com\/author\/","title":{"rendered":"Author"},"content":{"rendered":"","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"lp-author.php","meta":[],"_links":{"self":[{"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/pages\/132"}],"collection":[{"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/comments?post=132"}],"version-history":[{"count":2,"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/pages\/132\/revisions"}],"predecessor-version":[{"id":210,"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/pages\/132\/revisions\/210"}],"wp:attachment":[{"href":"https:\/\/popup4phone.com\/wp-json\/wp\/v2\/media?parent=132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}