Looking for people passionate about cutting edge Web programming in PHP and with rich Internet application development experience.

You know very well at least two of the following:

  • PHP and frameworks (Symfony 2 preferred)
  • PHPUnit (+Behat/Selenium would be very nice)
  • Profiling/optimizing (XDebug, XHProf, caching)
  • Advanced knowledge of OOP concepts and design patterns

You want to explore:

  • Building scalable web applications for thousands of users
  • Building real-time web applications (node.js/socket.io)
  • Creating APIs for web applications

Would rock if you:

  • Understand and have awareness of web application security
  • Know how to prevent an over-engineered solution to a problem that doesn’t exist.
You Must:

  • Have strong attention to detail
  • Be passionate about startup culture – if you expect a 9-to-5 working hours, stop reading now
  • Have great ambitions in life. We’ll help you achieve them.
  • Have a “whatever it takes attitude”

In A Typical Day You:

  • Finished all your daily tasks on time
  • Won a couple of milliseconds in already optimized code
  • Remembered an old ticket and finally close it
  • Looked at the results of profiling you initiated last week and discussed with the team how we can improve the app.

You are:

  • Intelligent, with great logical & analytical skills
  • Self-motivated and excellent problem solver
  • The person who loves to juggle tasks and doesn’t sweat under pressure
  • Thinking critically and creatively
  • Communicate clearly and concisely

Is this you?

The Challenge

Create a web application in PHP that allows the user to enter any number of URLs (max 1000)..

The URL’s are loaded from a text area. After pressing the Submit button, front-end will send the list of URLs to the back-end (in one request) and the back-end should open asynchronous connections to these pages and attempt to GET them (using for example stream_socket_client() with the ASYNC flag).

At the same time the front-end should initialize the list of all sites and their current status.

The status contains HTTP response code and content length or “still working” if the application is still loading the given page. It should also contain a Progress bar which shows the progress of loading all pages.

The display should update in realtime with the current status of all pages.

During execution of one batch, the user may enter another set of URL’s and start a new batch in parallel, in which case the app frontend should add a separate list of sites and their statuses. User may start any number of batches in this way.

Redirection (301, 302) responses should be followed and the status of new page returned.

Example.

Batch #1:

site1.com http response: 200 OK  length: 12345 bytes
site2.com http response: still working
site3.com http response: 301 Redirect  length: 214 bytes redirected to www.site3.com http response: still working

Progress
[===———] 1 / 3

 

Batch #2:

site4.com http response: still working
site5.com http response: still working

Progress
[—————]  0 / 2

Is this you?

 

Contact vladimir@managewp.com