Stefan KoopmanschapFinding a job without a recruiter (18.4.2015, 11:30 UTC)

Earlier this week we had a discussion in the PHPNL Slack chat about finding jobs and using recruiters for this purpose. Some people had used recruiters to find their job and were stating that they might not have found their current job without the recruiter. I disagreed, and eventually promised to blog about it to share my ideas about finding a job without a recruiter.

About recruiters

First of all, funny enough, most developers seem to agree recruiters are (with a few exceptions) horrible people. Their only focus usually is money, not making the connection between a person and a company that seem to be a good fit.

I agree with the above. There are a few exceptions, people who really do care about the people that they represent as well as the companies they represent, but I’ve dealt with too many recruiters that:

  • alter CVs
  • send 10 CVs to a company at once
  • send random e-mails to everyone in their database, regardless of any matches in skills vs requirements
  • actually call people at work to try and get them to change jobs

And that list can go on and on and on.

Reasons for using a recruiter

Talking to people who have used a recruiter before, the main reason for using them was because recruiters have knowledge about jobs that they don’t have themselves. In the past you could just Google for jobs and find them, but these days using Google to find a job usually results in finding tons of recruiter websites, and not the sites of the actual companies looking for people. Does this means Google has no use when looking for jobs? It is perhaps less useful, but definitely not completely useless.

Another reason for using a recruiter is that they want to look for a job “below the radar”, and recruiters usually anonymize their CVs and profiles and hide the current employer. While this may sound like a valid reason for using a recruiter, I’ve seen CVs of candidates being offered to their current employer, or seen CVs that, even anonymised, were pretty clear in who it was.

Perhaps the most honest reason I’ve heard was “I’m lazy”. I believe this is also the only really valid reason for using a recruiter. I can’t counter this argument at all: If you’re lazy, using a recruiter is most probably the easiest way of finding a new job.

Reasons for not using a recruiter

First and foremost: The majority of recruiters do a horrible job focussed just on money. They don’t (seem to) care about the people they represent and the companies they represent, their only focus is the bonus they get out of it. They create a really toxic environment for jobseekers as well as companies with job openings. The fact that these days you can’t even use Google in a simple way to look for a job without finding dozens of recruiter websites is enough proof of that. Now if they were doing a good job finding matches, that would be OK, but in a lot of situations they lie, twist, hide the truth and misrepresent developers and companies. Using recruiters to find a job keeps this toxic environment alive. This alone should be enough reason to not use recruiters.

Keep the above in mind also for yourself and your image towards potential employers. I’ve heard of numerous situations where after a very nice job interview that was positive from both sides, either the developer or the employer got the message “yeah, the developer just isn’t interested” or “the company is not interested in hiring you”, while there was a clear interest. The reason they say there is no interest is because in the negotiations for the recruiter fee, the recruiter didn’t feel like they got enough money, so they lied to both parties. After a good interview, this reflects really bad on you. Based on an interview, your potential employer can get certain expectations, and when they hear you’re not interested (or worse yet, when they hear you think they offer way too little salary while you don’t actually think that) this reflects poorly on you.

Many recruiters are known for their bad business practices. I once went to an interview for a company that was really excited I was interested in working for them, because my CV was the perfect match for their job! We had a really good interview, up until the point where they asked me what kind of C++ projects I had done. I was confused. I had never done any C++, and surely this was not on my CV. “Well, your CV here lists you with a couple of years of C++ experience”. The recruiter had altered my CV to include experience I didn’t have to make me a better match, in the hopes of it not being noticed.

Another good example is the recruiter that I accepted on my LinkedIn. A couple of days later, I got several messages from peop

Truncated by Planet PHP, read more at the original (another 8268 bytes)

Anna FilinaCasual insults and flag burning in the dev community (17.4.2015, 18:07 UTC)

It is known, the dev community loves bashing. Bashing on Microsoft, on IE, on Java, on PHP, on frameworks, on conference organizers, on OSS leaders, on legacy code… bashing on pretty much anything that we personally dislike. This is not a good thing. Bashing is, sadly, so very ingrained in our community that most people have stopped noticing it. Every day, we tolerate a storm of casual insults, each of them seemingly mild, but together, these casual insults have nasty effects.

What kind of insults?

Just yesterday, I said that my son compiled his first Java program. Someone responded that teaching Java to kids should be considered child abuse. It was said in jest, but that doesn’t mean that it didn’t hurt. My son is only 11.

Another day, a guy tweeted that they’ll be celebrating the day of PHP’s death at Mozilla. In a Python chatroom, a guy said that if anyone is caught doing PHP *posts image of a Pythonista with a gun*. Everybody laughed because to them, it’s a joke. To me, a PHPer, it’s a threat. At a conference, a CTO went on stage and told the story about how their troops’ morale was low because they were using PHP. Being the only PHPer in the room, I felt unwelcome.

There’s also flag burning. It’s when you take a logo or a mascot of a company, product or technology and do something mean to it. Examples: Windows 10 logo with blood on it, a PHP elephant stepping on a Ruby gem and shattering it to pieces, Java logo with a skull instead of vapour, etc. Disfiguring logos is considered humour by many people in the dev community. To them, it’s friendly rivalry. To others, it’s alienating.


Some of the consequences of these jokes include making people feel uncomfortable when surrounded by those who use a different programming language, mocking them for using a different operating system, making them feel ashamed of stating their preferences, etc. I didn’t make this up: myself and others have observed this for years. It creates barriers between people who otherwise have a lot in common and could have collaborated on great projects together.

The consequences are real and it upsets me that people who make these jokes tell others to grow a thicker skin (a few years ago, they’d probably tell me to grow a pair). They completely dismiss the issue by saying that there are absolutely no consequences, rather than admitting that they simply don’t care about the consequences. I’ll give them the benefit of the doubt: maybe our dev culture so easily accepts these insults that they truly are unable to see them as insults.

Types of people

There are people who understand the effects these jokes, those who don’t and those who don’t care. I found that many of those who understand are often involved at the community level: bringing people together. Since their job is to unite, they are familiar with the effects of bashing. Their (important) jobs of facilitators don’t make them famous, which is why their opinions are often eclipsed by the opinions of the more famous framework authors, podcast hosts, professional bloggers, corporate evangelists, etc.

When I say famous, I mean 10k or more followers on Twitter. These people generate content for a living, which is why they generally don’t want others to question what they say. Choosing words carefully is a burden. When they make an inappropriate joke, they will get just enough retweets to validate their behaviour. If some of their followers were upset by the joke, they’ll be dismissed as oversensitive, an easy and baseless argument that shuts the door on any constructive dialogue. Some might even suggest that we educate those who got upset rather than those who made them upset.

You’ll find many exceptions, of course, but the pattern is there.

Diversity of technologies

Yes, it’s just a joke. But if we lived in a culture where bashing wasn’t so pervasive, some jokes wouldn’t fly. They’d be called for what they are: insults. If that PHP elephant from the above example would have stepped on a woman instead of a Ruby gem, there would be outrage. There has been a lot of education about sexism, so nobody can joke with “women can only code 3 weeks per month”.

But diversity also applies to technology choices. Nobody should be shamed for the language or browser that they use. We can discuss the merits of technologies with facts and benchmarks, but we can’t make jokes that have a very high potential of upsetting or offending people. Sadly, few people are having this conversation.

Are we allowed to speak at all?

I joke a lot and sometimes make mistakes. For example, there was this time I joked about a

Truncated by Planet PHP, read more at the original (another 2575 bytes)

SitePoint PHPUsing BoltCMS to Build a Small Business Website (17.4.2015, 16:00 UTC)

As the web continues to mature and the demand for the efficiency of content delivery increases, more and more slim and trim CMSs are coming into the fray. Developers (front-end and back-end) are branching away from the heavy-hitters like WordPress and Drupal, and into the likes of more streamlined, tailor-made solutions. Bolt CMS is one of these CMSs, and prides itself on being a dream for designers, developers, and content editors alike.

Bolt CMS Logo

On the front-end side of things, Bolt uses the increasingly popular Twig templating language, allowing front-end devs to quickly and neatly generate templates the way they want, and how they want. On the back-end side of things, custom types and fields give us the freedom to organise things the way we want. Bolt is also built upon Silex with Symfony components, making it stable, powerful, open source, and free. Twig, Silex, and Symfony are all under the Sensio Labs umbrella, so you’re guaranteed one will never leave the other in the dust. It’s a great combination!

Bolt has a really nicely laid out documentation on their site, as well as a Stack Overflow tag with an increasing number of posts. Other ways to raise points or get support include the GitHub issue tracker. Read up on the community page for more info.

Building With Bolt

In this article, we’re going to take a look at the following key points which should set us up nicely for building our first project with Bolt:

  1. Requirements, setup and installation
  2. Main configuration and theme set up
  3. Splitting up files into templates
  4. Introducing and creating content types
  5. Retrieving content from database records

From now on, I recommend you keep the docs open in your browser, because we’ll reference it a lot. Alright, let’s dig in!

Continue reading %Using BoltCMS to Build a Small Business Website%

Anna FilinaJokes can hurt the dev community (16.4.2015, 20:04 UTC)

Do you know why we created ConFoo? To end religious wars between programming languages. I don’t care if you code in Java or Python or Ruby or whatever. We’re all developers and we can all learn from each other if we talked to each other more often.

But then people go and post this kind of stuff for the benefit of their followers. I’ve had Java folks calling me an amateur. I’ve had Python folks threaten to shoot me. I’ve had countless developers making me feel bad for my choices.

This one may seem harmless, but it’s really saying “I’ll step on you and smash you to pieces.” You can’t caption it with “Shots fired”, then call it friendly or pretend that it pokes fun at both languages.

As someone who is working really hard to end religious wars, this t-shirt makes me sad. And just because some Ruby folks would find it funny, it doesn’t mean that it’s okay. I’m worried about the Ruby developers that *will* get offended by it. I’m worried that they would later feel uncomfortable discussing with PHP folks or going to PHP events. It’s already bad enough. Do we really need to add more oil to the fire?

I have spent many years to try and get the different dev communities to collaborate, so I know exactly how these things affect the dialogue.

PHP: Hypertext PreprocessorPHP 5.6.8 is available (16.4.2015, 00:00 UTC)
The PHP development team announces the immediate availability of PHP 5.6.8. Several bugs have been fixed some of them beeing security related, like CVE-2015-1351 and CVE-2015-1352. All PHP 5.6 users are encouraged to upgrade to this version. For source downloads of PHP 5.6.8 please visit our downloads page, Windows binaries can be found on The list of changes is recorded in the ChangeLog.
PHP: Hypertext PreprocessorPHP 5.5.24 is available (16.4.2015, 00:00 UTC)
The PHP development team announces the immediate availability of PHP 5.5.24. Several bugs have been fixed some of them beeing security related, like CVE-2015-1351 and CVE-2015-1352. All PHP 5.5 users are encouraged to upgrade to this version. For source downloads of PHP 5.5.24 please visit our downloads page, Windows binaries can be found on The list of changes is recorded in the ChangeLog.
PHP: Hypertext PreprocessorPHP 5.4.40 Released (16.4.2015, 00:00 UTC)
The PHP development team announces the immediate availability of PHP 5.4.40. 14 security-related bugs were fixed in this release, including CVE-2014-9709, CVE-2015-2301, CVE-2015-2783, CVE-2015-1352. All PHP 5.4 users are encouraged to upgrade to this version. For source downloads of PHP 5.4.40 please visit our downloads page, Windows binaries can be found on The list of changes is recorded in the ChangeLog.
SitePoint PHPSocial Logins in PHP with HybridAuth (15.4.2015, 16:00 UTC)

A trend in many of today’s websites is a feature that allows users to sign in via their social network accounts. A classic example is the SitePoint community where users have the option to use their Facebook, Twitter, Google, Yahoo or GitHub account to log in without having to register an account.

In this tutorial, we will be learning about HybridAuth - a PHP library that takes the pain out of building a social login feature.

HybridAuth acts as an abstract API between your application and the various social APIs and identity providers.


The recommended way to install HybridAuth is via Composer. We’ll also use Slim as a foundation for our sample app.

    "require": {
        "slim/slim": "2.*",
        "hybridauth/hybridauth": "2.3.0"

Using HybridAuth for Social Logins

To use HybridAuth, copy the config.php and index.php (HybridAuth Endpoint) files in /vendor/hybridauth/hybridauth/hybridauth to your project’s root folder.

Rename the index.php file to hybrid.php because index.php will be used by Slim framework for our demo application logic.

Populate the config.php file with your application’s (e.g. Facebook, Twitter application) credentials.

For example, If you want users to sign in to your website via Facebook, Google, and Twitter; your config file would look pretty much like this. My application URL is http://slim.local.

Continue reading %Social Logins in PHP with HybridAuth%

Andi on Web & ITZend and Microsoft Azure Announce Strategic Partnership: Additional Context, Background and Views on the Announcement (15.4.2015, 15:43 UTC)
Today, Zend and Microsoft announced a strategic partnership that will transform developer productivity in the cloud. Before I share the details of this news, I’d like to cover some background on Zend and Microsoft’s past collaboration to provide additional context on why today’s announcement is significant for both Zend and Microsoft!

Early Stealth Relationship
In 2001, a small Microsoft SWAT team focused on winning more Web share for Windows Server reached out to the PHP Group. They invited us for a few days to Redmond with the goal of boosting PHP support for Windows. Their motivation was simple: PHP on Linux had already dominated a major part of Web share and they were interested in selling more Windows Servers into that market. Hence, PHP needed to run well on Windows Server. We made some significant improvements during the few days in Redmond, but that forward-looking team met some internal opposition for collaborating with PHP. At the time, PHP was viewed as a key competitor to ASP and much aligned with the competitive open-source Apache web server and Linux operating system. As a result, this effort remained largely incognito and was never officially announced although favorable changes to the code base were incorporated into

From “Stealth” to “Technical Collaboration”
Five years later, in 2006, Microsoft started to carefully open up to open source and the PHP market. We announced a technical collaboration, which was focused on improving interoperability of PHP and the Windows Server platform. This collaboration was extremely successful at the technical level. We were successful in making PHP on Windows rock solid. Microsoft changed its Windows Server “Longhorn” roadmap late in the game, and, based on our feedback, added FastCGI support to IIS 7 to better run PHP. We also worked on a number of additional interoperability initiatives. While there was good Microsoft-supported public exposure to this collaboration and great technical success, there was still some bumpiness in the joint go-to-market approach. In my view, Zend was focused on getting deeper into Enterprise (depth market), while Microsoft preferred to focus their PHP efforts where it was less likely to compete with Enterprise ASP (the breadth market). That said, technical collaboration continued to work well for years to come and we jointly supported some significant joint customers. However, balancing breadth and depth in the partnership was always a bit of a challenge.

Strategic Partnership
Today, in 2015, we are excited to announce a strategic partnership with Microsoft focused on transforming the developer experience and productivity in the cloud. While we’re building on past technical synergies, the big difference is that we are now fully aligned on the market opportunity.

In past years, Microsoft has evolved into a cloud platform player focused on delivering the best platform for developers across any language, database or operating system, whether open source or proprietary. Instead of limiting its open source efforts to specific target audiences, Microsoft has embraced an open approach to the market. Microsoft continues to make significant investments in differentiating Windows and .NET, while also working to personalize and differentiate the Microsoft experience for open source developers. And PHP, needless to say, is the biggest Web development community, driven by both custom application development and the accelerating adoption of leading applications by businesses such as WordPress, Drupal and Magento. So it makes a lot of sense to do something “special” on this front.

Truncated by Planet PHP, read more at the original (another 39696 bytes)

Fabien PotencierBlackfire, a new Profiler for PHP Developers (15.4.2015, 10:10 UTC)

I've always been fascinated by debugging tools; tools that help you understand what's going on in your code. In the Symfony world, the web debug toolbar and the web profiler are tools that gives a lot of information about HTTP request/response pairs (from exceptions to logs, submitted forms and even an event timeline), but it's only available in development mode as enabling those features in production would have a too significant performance impact. The Symfony profiler is also more about giving metadata about the code execution and less about what is executed.

If you want to understand which part of your code is executed for any given request, and where the server resources are spent, you need special tools; tools that instrument your code at the C level. The oldest tool able to do that is XDebug and a few years ago, Facebook also open-sourced XHProf. Both XDebug (as a profiler) and XHProf are profilers; they are able to answer a lot of questions you might have about the performance of your code, and they can help you understand why your code is slow.

But even if tools are available, performance monitoring in the PHP world is not that widespread. You are probably writing unit tests for your applications to ensure that you don't accidentally deploy broken features and to avoid regressions when you are fixing bugs. But what about performance? A broken page is a problem, but what about a page that takes seconds to display? Less performance means less business. So, continuously testing the performance of your applications should be a critical part of your development workflow.

Enter Blackfire. Blackfire is a PHP profiler that simplifies the profiling of an app as much as possible.

The first big difference with existing tools is the installation process; we've made it straightforward by providing easy-to-follow instructions for a lot of different platforms and Blackfire is even included by default on some major PHP cloud providers.

Once installed, profiling an HTTP request is as easy as it can get: use the Google Chrome extension to profile web pages from your browser, or use the command line tool to profile web services, APIs, PHP CLI scripts, or even long-running scripts like daemons or workers.

The other major difference with the other existing tools comes from the fact that Blackfire is a SaaS product. It let us do a lot of things that would not be possible otherwise like storing the history of your profiles, making comparisons between two profiles really easy or providing a rich and interactive UI that evolves on a day-to-day basis.

If you've used XHProf in the past, you might wonder if it would make sense for you to upgrade to Blackfire. First, and unlike a popular belief, the current Blackfire PHP extension is not based on the XHProf code anymore. Starting from scratch helped us lower the overhead and structure the code for extensibility.

Then, and besides the "better experience", Blackfire offers some unique features like:

  • Profile your applications without changing a single line of code;
  • Easily focus on code you need to optimize thanks to more accurate results, aggregation, and smart cleaning of data;
  • More information about CPU time and I/O time;
  • No performance impact on the production servers when not using the profiler;
  • SQL statements and HTTP calls extraction;
  • Team profiling;
  • Profile sharing
  • an API;
  • Garbage collector information;
  • The soon-to-be-announced Windows support;
  • And much more...

We are very active on our blog where you can learn more about the great features we are providing for developers and companies.

Blackfire has been in public beta for four months now and the response has been amazing so far. More than 20.000 developers have already signed up. You can read some user feedback on our Twitter a

Truncated by Planet PHP, read more at the original (another 568 bytes)

LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP