PHP Architect logo

Want to check out an issue? Sign up to receive a special offer.

PHP Alive And Kicking – Episode 12 – Rob Allen

 

 

Rob’s journey into PHP started in 1995—way back in the last century, as he puts it—when he got headhunted from a C++ role testing mobile phones. The twist? He was in an online gaming guild that needed a website, discovered PHP 3, and thought “this is way easier than writing C++.” Three decades later, he’s still here.

The Accidental Path to Independence

After years at various companies—some you’ve heard of, some you haven’t—Rob found himself constantly getting made redundant through no fault of his own. Companies got bought, restructured, or just folded. Eventually, someone planted the seed: “Why don’t you just go independent?” Fifteen years later, he’s still doing it, and the variety keeps it interesting.

APIs Are His Jam

When people ask what Rob does, the answer is simple: APIs. REST APIs specifically, though he’s increasingly working with OpenAPI specifications. Need someone to build the backend that talks to your mobile app? That’s Rob’s specialty. Building the thing that other systems talk to? Also Rob. He’s carved out a niche and he’s sticking to it.

The Uncomfortable Truth About Marketing

Here’s the challenge nobody talks about: how do you get clients when your clients aren’t developers? Rob’s clients are CTOs and CEOs who need developers, so traditional developer networking has to work backwards. He speaks at conferences, writes for PHP Architect, stays visible in the community—and hopes it eventually translates into someone saying “I know a guy.”

Mike’s American Healthcare Debut

In a delightful tangent, Mike shares the story of how he injured his finger setting up speakers at PHP[tek] and got to experience American urgent care. For the record, it was a lighting speaker that fell on his finger, not a human speaker. This injury happened right before meeting Chris for the first time—who Mike thought was American until Chris spoke with a very British accent. Brain: officially confused.

Community vs. Networking: The Friendly Version

“Community” sounds so much less intimidating than “networking,” doesn’t it? Rob, Mike, and Chris all agree: being part of the community—whether online or in person—has been the single biggest factor in their career success. You don’t have to be an extrovert. You don’t have to speak at conferences (though Mike just submitted talks to Tech 26—someone’s growing!). Just show up. Say hi. Join the Discord. Play chess. Answer questions when you can.

The Chess Club Career Strategy

Mike admits most of his interaction in the PHP Architect Discord wasn’t even technical—he set up a chess club and gave Eric and John tips on the game. That level of “just being around” eventually turned into a job. The lesson? You don’t need to know everything about PHP to be part of the community. Just be present.

Why People Want You to Succeed

Rob drops wisdom for anyone terrified of public speaking: the audience wants you to succeed. They’re not hoping you fail. You could talk about your dogs for 15 minutes and people would still cheer you on. It’s only a slight comfort when you’re “absolutely bricking it,” but it’s true.

Listen to hear why Rob thinks remote work hasn’t killed in-person community building, and how being on a C++ mailing list 30 years ago set the foundation for everything that came after.

PHP Architect Social Media:

X: https://x.com/phparch
Mastodon: https://phparch.social/@phparch
Bluesky: https://bsky.app/profile/phparch.com
Discord: https://discord.phparch.com

Subscribe to our magazine: https://www.phparch.com/subscribe/

Streams:

Partner

This podcast is made a little better thanks to our partners

Displace

 

Infrastructure Management, Simplified
Automate Kubernetes deployments across any cloud provider or bare metal with a single command. Deploy, manage, and scale your infrastructure with ease.
https://displace.tech/

 

 

PHPScore

 

Put Your Technical Debt on Autopay with PHPScore

Honeybadger.io

Honeybadger helps you deploy with confidence and be your team’s DevOps hero by combining error, uptime, and performance monitoring in one simple platform. Check it out at honeybadger.io

 

Music Provided by Epidemic Sound

https://www.epidemicsound.com/

Listen

Transcript

PHP Alive And Kicking – Episode 12 – Rob Allen

Show Summary

In this episode of PHP Alive and Kicking, the hosts continue exploring the evolving landscape of PHP development, touching on practical tools, open source contributions, and ways developers can stay productive while keeping their code modern. They discuss real-world experiences, community stories, and share thoughts on the ongoing growth of PHP in 2025.

Transcript

[00:12] Hello and welcome to PHP Alive and Kicking brought to you by PHP architect and may better buy a Partners at Honeybadger more about them later this podcast explores the developments in a PHP and what it’s like to earn a living in PHP today, I’m 1 of your hosts Mike Paige better known as Mike Paige Dev I’m a developer at PHP architect my co-host is a longtime contributor to the magazine and now a fellow team member Chris Miller. Hey Mike how you doing I’m good thank you that’s not the the best reading of the opening I’ve done but I hope so we have although this is a pre-recorded. Podcast just wanted to let people know though we do have a Discord if you’re watching this via the. Live stream on YouTube when this goes out please come on over to a Discord, me and Chris will be in there and our guests might also be there as well if you ever want to ask some some questions to that we will be hanging around whilst the,
[01:20] stream goes live we have also got now at PHP architect. If I can find the right table hey uh swag shop. Here we go so get on down there have a look at what we’ve got uh some. A t-shirts and this is the new items are being added all the time and 1 of the most recent ones for us is this uh. Include elephant there where we’ve taken from the cover of 1 of our magazine episodes. So yeah do come along it’s a pretty cool t-shirts and other bits and pieces in there. Okay is there anything else oh we have a conference next year we do I’m so I’m assuming this is still going to go live in. 20 2025 and we do have a a conference Tech 26 will be in Chicago again. And I do have that open it’s open let’s just show that website really quick. If you don’t come come on down it’s a great great conference I’ve been a few years obvious I’ve been there in my capacity of a member of the team but it’s always very welcoming I found it.
[02:38] Very. Helpful learns a lot of the great speakers you you bump into people that work on Pitch p and the core you’re bump into people that have uh written packages that you probably use every single day and just have a general chat with them. They’re just like normal human beings it’s pretty cool it’s pretty cool is your your first experience of tech class this year I should say 25 was it Chris it was yeah and honestly 1 of the best conferences I’ve ever been to. I’ll be I’ll be there in 26 as well. Yes you you you’re kind of contracted to be then now come with the job exactly exactly well enough about that let’s let’s move on and. Who have we got on the uh this episode today Chris. So we have Rob Allen Rob Allen is an independent API contractor so. Hey Rob how you doing hey folks how you doing man good busy day as usual and welcome happy to be on the Stream good to hear about PHP Tech I’d like to that it’s a good conference.
[03:50] You were the last year that’s right in 24th have happened and yes I think that’s the first time we met was, when you’re there in in in 24 that’s right yes em crisp before around the uh UK scene yeah and we we don’t actually live that far away from each other we’re both both Midlands both meet up regularly in Birmingham at different things
[04:25] are in fact I’ve been reading these articles for years in the magazine. And I thought he was American and so I got introduced to I mean it took me a while to click what was going on it was like my brain just wasn’t. Computing I mean I was on a bit of a this was at the speaker’s dinner on the Monday evening, because we got we take all the speakers out we do then we have a bit of fun we went bowling this year so they they I didn’t Bowl but some of the others did and I was just trying to mingle and talk but unfortunately this year, it’s been a bit of a running joke but I actually got injured on the on the Sunday as we were doing the setup. And we had to go to urgent care so I have now experienced what American Health Systems like and it wasn’t a major thing I I literally I’ve caught my finger, and took quite a big chunk out of the tip of my finger when the speaker fell on it. And we’ve just it was like we couldn’t stop it from bleeding so we had to go we had to go so yeah I’m continually do you mean by speaker right yes.
[05:31] Not not a speaker no not a speaker yeah no I was setting up okay so for people that don’t know or might not have heard on some of the I my background is in Sound and Lighting in theaters and events so I tend to get. But not go away but I get. Thrown into setting up a well we all do we all pitch in but I was running around being a bit careless it was mindful I hadn’t put my protective gloves on and things like that and I’d loosened some something on the speakers and it just felt onto my finger and I couldn’t get my finger out fast enough so I wasn’t feeling that my best on on the Monday night when I actually got introduced to Chris and this English accent and I literally was thinking, based American and he’s talking to me I’m going he’s American what and I just it’s my brain didn’t click straight away so we do joke about that and the fact that we we’re literally what an hour away from each other.
[06:24] So we’ve gone thousands of miles to meet for the first time so that’s but I suppose you and me we could say the same thing, well we we went all the way over to the states actually meet for the first time and so but we bumped into each other a few more times since then yeah it happens it was quite a lot going on in the UK in terms of PHP and Community which is brilliant yeah it’s great stuff yeah, so talking about PHP how how did you end up in the world of PHP oh it’s a long while ago now. Way back in the last century so if I can say that it makes it sound really really long time ago but obviously yes way before the year 2000 1995 they show about head Hunted. Into a PHP role because I was a c plus developer I was doing stuff with Mobile Radio testing for, mobile phones and there’s a side thing I was a member of an online gaming guild for computer gaming and I read the website for The Guild 1 of The Guild members.
[07:31] Was looking for a web developer they contacted me and they paid me a very sensible amount of money to hop over from what I was doing to uh work for them on web stuff and I learned web and became web developer. And came across PS3 remarkably quickly because it was so much better than Paul and I think ISP was the other major 1 at the time and nobody should be tied into a proprietary language that only runs on Microsoft IAS ever, PHP was a thing and PHP was good and I’ve been with PHP now since then so. So many many years sorry 199 yeah 1959 I was going to say 95 was the year it was released so you you would have been version 1 and that would have made us the same sort of age in the industry I’ve I’ve been using it since version 1 I discovered it when it was used just for his sight and it was like this is cool I want to use this and it’s it’s mad to think that 30 years on it’s such a powerful language even now yeah it’s changed very much and does evolved into a really really good language but yeah 95 99 I started with PHP 3
[08:50] so I’ve been doing it since then to have a site that I wrote in 90 99. I think an ocean 199 199.4 I was I was just phb 3 I want to see that source code, let’s just think it’s the very first app I ever wrote that source code will never be released to the, I learned a lot in that work yes the the way in which, people even just write has changed so much since then that people just don’t realize just what PHP is capable of half the time and I mean we’ve we’ve alluded to it a few times on our podcast but you’ve literally gone from the point of PHP being able to do just websites to now you can write PHP for literally anything, and you could do desktop apps you could do mobile apps it’s all the same language yes okay that’s work gone underneath in other languages to make that possible but the fact that I could make a mobile app in laravel if I wanted it was cool. I probably will it’s so yes this shrimps are still very much web.
[10:05] And I could like to follow that yes that will always be its core of what it’s for it it operates differently to compiled languages like C+ that’s 1 of the strengths of PHP, but it can also be a downfall depending on what you want to use it for I think you and I have given similar comments before on picking the right tool for the right job. I wouldn’t want to go and write a website in C but I also probably wouldn’t want to go and write an operating system in PHP yes 1 be my first choice either so although I may try it just to find out what happens, fa go no it’s fine 1 of my clients currently writes a computer game which is cost platform funds from Steam and stuff like that and that’s obviously all C plus plus the side we’re doing this API based and that’s all in PHP because you’re going to hit the right tool right job, you’re going to be talking to a graphic player but since you plus plus and it’s very time sensitive the stuff on the servers that’s all PHP.
[11:15] Yeah and I suppose that kind of leads nicely into my very next question what does an API consultant do I like Consultants. Works apis designs apis answers questions about apis basically does everything about apis because they’re absolutely rubbish at doing HTML CSS and JavaScript so I have done it before but I’m not my strengths do not lie in the presentation side of websites my strengths are in the back end they lie in, solving people’s problems at the business domain if we were to use DDD in today’s age. That tends to be web apis very very few people are writing monolithic websites nowadays. Mostly because we need to also talk to mobile apps as well as talking to, the website itself so you tended to see apis tend to be when most of the business logic is ending up and hence I’ve gravitated gravitated that way, the various JavaScript or when I started the few layers XML.
[12:28] Because I like the business problems so yeah that’s what I do I help people solve API stuff, all variety of different layers some of my clients I literally just answer questions and help their devs do the work other clients I do the actual Dev work itself and build them API so then they use. That’s cool so I I assume you’re a worker across the across the the different forms of apis so you know you might have a Json API you might have a soap API and of of those which do you find is, probably the easiest to write in PHP so you’re showing your age a little bit though by mentioning soap we we try not to talk about soap anymore I mean yeah but however said that I do work in Enterprise quite a lot and soap still exists there I tend to like, food Enterprise restful. If apis most of my clients do not generate pure rest apis they are, quite challenging to build up to the full I’ve reached the maturity model and most clients don’t need that level of rigor so don’t tend to go that way I’ve done a few graphql apis in my time doesn’t happen so often for me,
[13:49] I tend to think graphql apis are more specialist. I think if you like to build a graphql API you should know why you’re building it and strengths across your are within the problems that you are trying to solve if you’re not sure whether you should use a graphql API or a slapi or an RPC API then the office right to rest for 1 it is much easier for your clients to access and operate against their own experience of it, is generally more widely vibrant is easier if the current scheme of things the other 2, Json RPC API is like soap or Json apis sorry Json RPC is another common around now. Have their place they’re still in use you still see applications being built for them, but they tend to be written for Industries or domains which expect that type of API similarly graphql was the same way, because, environment where you’re controlling both ends then graph to addition is really good if you want to move a lot of business logic to the client then graph class starts looking interesting
[15:03] if you’re making a generic public API then you probably want restful. Sorry I appreciate that I just continue talking that’s fine that’s exactly why we bring people on to you you have expertise that let’s be honest I don’t and. I don’t want to speak for Mike but I’m pretty sure you don’t write grpc apis and Json API no no, and I think I did do I did do quite a bit in my previous role was mainly API API and and, database development because I worked the the company I worked for built VR and AR applications which need to suit gather data and we need to and then they need to be an admin front end as well for people that we’re building them for so they can see what the collecting data but that was mainly rest. A few sort of blurry lines here and there where I needed to do something slightly more uh, whatever whatever the the the app developers wanted really so but I was the the only PHP developer in that company so that was that was sort of I did it how I wanted it I don’t know if it’s the best way to do it.
[16:16] In this role I’m in now I don’t don’t do a lot of I deal with a lot of a lot of apis and have lots of nightmares with apis, by apis that return 200 no matter what the result of it is that’s 1 of the nightmares we’ve had to deal with and they put a uh an, an error code in the body and so and I go why is this why is this not working you’re sending me a 2002 oh, because you’re sending me like a 400 in the actual body I’ve been looking at the in the proper response code that that’s been a that’s been an interesting 1 or consistency that’s another 1, I’ve I’ve dealt with 1 where we’ve they’ve just set up a different, endpoint for something slightly different but we’re expecting the response to come back exactly the same. But it’s not and it’s taken us a few few days to go oh all the response coming back differently okay I’m on the other end I’m I’m I’m consuming API is quite a bit and having to deal with some of these weird things that some people do with apis and that’s generally because of knowledge I suppose.
[17:27] Yeah very much so and. Longevity of an API is very hard to keep consistent in the same way longevity of a website is the same thing maybe have got a website that’s been around a really long time for instance the BBC’s website you can find. Older pages in older styles that’s no shade on the BBC, a long list website a long list application will show its age in various places and API on a different older endpoints for 10 to, behave slightly differently to newer ones as the organization has learned more yeah use hope they would have better documentation that is an area that. API in particular needs more Focus you hope they have documentation. Well yeah so stop stop find a few that there is no document documentation except for an email they sent this is what we’re sending back to you. And that’s unfortunate because you tend to be a very small scale at that level yeah it’s fun. The lot of the intended audience the better the documentation tends to be yeah depending on how fast the API moves so
[18:40] no it really really good example of fantastic documentation would be GitHub for instance I saw very well documented really when organized and they. Update their apis intelligently and with intention. Which is quite nice uh the payment space may be less so you tend to see far more moving, fun it’s fun ball fast moving in the fintech space and their documentation can sometimes lag what their API has done and that lack of joined up thinking can be quite frustrating as an integrator. I think is that some of that the advantages there it’s dev’s building for devs, when you’ve got an organization where they are all of a sudden think oh we need an API that’s to see if someone in the office can try and put something together they’re not. Naturally developers they might be into it they might be part of the like it support team that’s where things can go a bit awry I suppose that’s where people like you can come in and help and advice and and.
[19:45] So yeah because obviously this idea do that a fair amount the client comes to me saying we need an API. That’s a challenge in itself in terms of why do you want this API what’s the reason that you need an API 1 of my clients. The board had said they needed an API because that seemed to be the industry trend that’s so you’ve now got these active saying we need an API. And then now you’ve got down to the people who need to deliver, for the executive for the CEO and for the CTO and they need to build an API well what sort of an API it works out audience works the problem we try to solve how we get to monetize this API how we get paid for it how we going to do the maintenance All Those Questions start coming up the actual writing of the little bit of code that’s going to be your API is relatively small in the grand scheme of the entire product. And your example there have no documentation it’s a good example of that we need an API so therefore I’ve written the code now I have an API you don’t you’ve just got some code.
[20:53] To have an API so I have a product I have something that is sustainable and maintainable you’ve got documentation you’ve got a build process you’ve got a way to make changes to it, you’ve got a white communicate with your developers your integrators who are using it how what’s your changes you’re going to be making to it or how to accept feedback when it doesn’t go right if you’re lucky you’ve got monitoring so if it goes down you know before integrators tell you and. That whole caboodle that whole thing represents an entire product an actual deliverable and the bit that was right in the code that’s this big it’s tiny in the grand scheme of things. Which of course is white developers are terrible estimates in how long anything takes yeah I mean that’s a really interesting way to think about it and. Put it I think a lot of people when you say API they are just thinking about the code they’re not thinking about all the other bits that that that you’ve just mentioned there that’s that’s really interesting way to think about it I think.
[21:53] Yes and you should be doing the same at all levels of development so you’ve got a ticket to add a new feature. To whatever so you need your ID unique feature you can able to write documentation if you need feature you need your test your new feature you need the plan for getting it into station and production flat new feature maintenance flat new feature communicating to the outside world the new feature exists all of that is part of getting back ticket complete. But of course the developer doesn’t see any of that or chooses not to see most of that depending on the size of organization yeah some of it some of it is not your problem. Month in a going to write the blog post not you speak but someone needs to Market it what the new features does yeah sometimes as well you you can be sitting with clients and you can hear this conversation if we need this and we need that and we need the other and you’re sitting there going no you really don’t I I remember a time where I was sitting there with a
[22:49] client for a company I was working with through this 3-hour meeting where they explained to me that this they needed to do this in code and then this encode and then this encoder was like 20 odd steps that was. Ending off as this really complex mathematical formula and it had to apply certain rules that at different points and I listened to this entire explanation of it and at the end I said all you could take the first number and multiply it by 0.03 something. And they went know so they tested it. And they went they went away and said this is close enough for us to go yeah we might actually be able to do that so that 3 hour meeting could have resulted in me being the, the bat developer and taking 20 grand off them to develop the feature they wanted or the good developer and going or I could just simplify your steps to 1. By having that conversation sometimes as developer the best coach you have is the 1 that you didn’t write in the first place this is true I mean you’re hitting difference between different levels of developers as well at this point so.
[23:53] If you go up the. Experienced 3 fun facts were freezing it a supercom a senior developer into team bleeding to architect into those sort of roles. Communication becomes your most vital skill so as a junior developer it’s all about learning how to code and being a good coder, medium mid-level do we call it mid-level mid-level developer and now you’re really really good at taking a problem and solving it, mhm by the time you get up to senior get into architect level you’re now more interested in the problem than the implementation, and getting the right implementation the right solution for the problem starts becoming more interesting which is why you tend to see the best senior developers are the best communicators it’s fairly rare to have a really good senior developer. Who’s well respected and does a really good job but can’t also communicate well yeah. I think that puts us as a very convenient point to hear from our sponsors yeah I’d say so.
[25:11] 1 time a customer of theirs had a background job run overnight that caused hundreds of thousands of Errors to be reported to Honeybadger by mistake. Like many other are tracking and performance monitoring tools Honeybadger bills for monthly usage and so this customer’s mistake was going to cost them a lot of extra money that month. Ever used a monitoring service you might have experienced something like this well fortunately for this customer they emailed Honeybadger support and received the most amazing reply. Honey badger was resetting their monthly quota and canceling their bill. This is just 1 example of how much the small team at Honeybadger cares about their users asking anyone you know and you’ll hear similar stories. Go check them out at honeybadger.io it’s free to get started and set up takes less than 5 minutes. Don’t forget to bookmark it that’s.
[26:05] Thank you honey badger safe we’re here to have found an echo. Do we still have an echo we do not there we go and this is proof that we record these live so I guess the next sort of question I have is around building apis how how would you approach that with PHP what’s your process of going through building an API these days. Oh there’s a question in itself with PHP bits quite interesting because most of the work is doesn’t really matter what the language is. So generally we’re concerned about what the shape of our requests and our response will be. My phone that’s the most important thing what the shape of the API is going to look like how usable is it what the clients for it is get break it down into different sections into different. Groups sex of endpoints because your fundamental unit is the unit of the endpoint, the same way as the web page you know your fundamental Unity is a web page but we’re going to group our web pages into sections there’s going to be the news section that’s going to be the store section that’s going to be the press release section or whatever.
[27:19] Same logic in your your API we’ve got our user management section we’ve got our section that does the work or whatever it might be so I normally think mostly about the design and how we’re going to do that bit. So talk seemingly talk about restful so we’re going to be talking about. What operations are going to be get requests which are going to be modification requests so they’re going to be posted they’re going to be patched are they going to be put or delete all that sort of decisions start getting made, in an Ideal World and 1 of the nice things about me being able to talk to you is I’m going to pretend it’s an Ideal World and an Ideal World we’ll write this down first. Because it still was quicker than trying to maybe you want to plan I know I like planning actually all this wonderful we’re planning helps and, ideally we do all that design we if we’re doing vaguely restful things we propagate to write it all down into something that looks like open API,
[28:16] that’s a nice specification format for describing API endpoints payloads how they all fit together, and the generate documentation so you’re writing in the yaml format or something like that and you’re going to get an HTML format out, the only thing about HTML format is that people who don’t understand code can read it so they can think about it so hopefully we can spot this inconsistencies early. You know where we’ve used pluralization over here but we’ve used single over there, spotting things like that is much easier at the spec station is at the implementation stage we’re certainly less tedious. To fix this at the backstage so we’re going to do something like that and now we’ve got some sort of document now we need to implement it. He put in the project if you’re building new projects then you’ve now got the other architectural decisions to make are we building this as a microservice architecture is this going to be a monolith how big is the team working on it,
[29:18] what are the deliverables in which order those sort of questions come up 9 times out of 10 the right answer is some sort of monolith. Because once you start hitting microservices you end up with a whole load of other challenges which are Super interesting to solve, and might not actually be problems you have so I I think you should be quite careful about going to a full microservices architecture, unless you have experience of doing so because it does introduce additional challenges. Monolith has less of those challenges challenges anyway but less of them and then you need to build your PHP bit. That’s easy but pick your language pick your phone work. Pick your orm write some code you could tell an optic interest in that bit it doesn’t really matter to me and I think that is actually part of what makes it so interesting working with apis in in any language that 99% of the problem happens before you write the line the first line of code.
[30:24] The code is almost secondary. In that let’s be honest there are systems now where you can plug in an open API spec and if it is literally crud it can do it for you. You don’t need to write code in yes for the G site at least yeah yeah I wouldn’t suggest adding that to an an existing API for example but you. You have systems now that can do the hard work but. The the easy work almost of the code the hard work is getting that design right and I think for. Things like laravel like cake there are predefined systems that they come up with of how they expect you to do it. Do you ever find yourself fighting against a framework and wanting to go to an alternative no right the first rule is once you’ve got a framework you can do it a framework way. If you’ll try it in the framework then you’re doing it wrong, if you’re going to use a lot of valve then do it the way laravel expects it to work it’s a force now and not to and.
[31:33] Because I’m a consultant I tend to work in the technologies that my clients prefer so. I’ve I’ve got tons of experience with a lot of our developers writing an application that doesn’t work the way laravel works. Is not set in the mouth of success. So we don’t do that that’s it’s just that point we’re there to make a successful product we’re there to make a product that could be maintained for the long term, if we’re using laravel because we use an example at the moment then we want it to be written such a way that when the next version layer of our comes out we could use laravel shift to do the upgrade we don’t have done something so weird that laravel shift doesn’t work anymore, that that would be a nonsense. If we’re not doing that then we’re picking a different framework so we’re using symfony framework or say we use an API platform then we’re going to follow the API platforms paradigms and its conventions because that will work out the best for within that set of code.
[32:31] If we’ve got a very specific requirements for the way we want to develop it because I don’t know maybe we’re not using the database behind the scenes for instance, and for the or maybe we don’t we’re not outputting Json our output format is different those photo scenario if you start wanting to go down to more component based solution so you start looking at something like mesio or something like this in framework because you’re already doing something quite specialist anyway, and you’re probably writing or benefiting less from the ecosystem stuff relatively speaking there’s few of those. 99% of everything we do fundamentally it could be done with WordPress 99% of all websites are just content. But yeah, or their website in which case we can do it with Shopify back in the back end probably mostly doing they’re all Specialists stuff when we start this special stuff we need a framework of some for 1 another picking 1 of the bigger Frameworks is generally.
[33:34] Easier in terms of the knowledge within your team already going with the team’s knowledge is generally better. Sunday is a consultant and then yeah follow it as best as you can to the way that that phone works is the way I would try to do it. Occasionally you want to do a few bits of different the most obvious ones are related to Output formats so. 1 that the misconceptions for apis is that the output format is just Json therefore it doesn’t really need to be thought about. That’s not a good move it’s a view layer in the same way that the htmls of your life for a web page and all the good Frameworks have transformation. Or Transformer type classes to enable you to choose how the output looks and, format it appropriately and independently of your database so C resolved well and good but, it doesn’t take very long before you need to decouple your database architecture from your API output layer so putting that in first is super helpful um.
[34:46] That’s where you start getting some specialist stuff happening if you don’t control the output because it needs to be a standard that’s needs to be standardized to us a way that is not normal. Because of where you’re sending it is where things get interesting in a Chinese kind of way. Yeah it’s it’s interesting that you call it a view layer which it is and, cake is the only Cake PHP is the only framework I’ve known that literally uses the view layer to do it to reinforce that point you you edit an API in cake using their format literally in template files which right it’s a fascinating way of doing it but it forces that thought process that there’s a user at the end of this you’re not just outputting some text, and even down to formatting of how many spaces there are in the Json yes we can probably argue over that forever and then we can argue over whether it’s spaces or tabs and,
[35:53] well people like stripe or varnish and you’ll see how things have evolved over time and as you were saying earlier you’ve got those slight differences from the older ones to the newer endpoints and how they’re slightly different. Fascinating to think that we haven’t yet as far as I can tell come up with a solution that solves this long-term have you have you found any ways of handling Legacy that needs updating. Right so the terminology for guests search for it is probably Transformer so. I think it must be very unique in sort of actually called The View layer which is quite a nice way of doing it but we can normally. No but we can always use a programmatic transformation layer to go from where our internal representation of our domain is. To our output format uh. The nice thing about doing it as a programmatic class or process of sub form or another is that handling versions. Easier or because you talk about Legacy the next obvious thing that comes up is hoping to handle the fact that we need a new version of the output.
[37:06] And we talk about versions of apis generally when we are changing the version of an API we are changing it because we want to. Ultra the list of properties that are in the output or we want to rename the properties that are on the request. So we created a backwards backwards incompatible change sorry. Classic example you’ve got some sort of user endpoint retrace your user item and in that user item there is an address. Property and inside that address property it’s an object that’s got Street, Town post code country or whatever and the business have come along and said oh we need multiple addresses so that needs to be an array. And we can’t make and address them array. Nope without breaking all the clients that expect it to be an address object so now we’ve got BC break how do we handle that BC break. That’s the question and at that point the challenge in the code is not breaking the old way when you write the new way.
[38:12] Yeah it’s dead easy to write the new way, it’s really hard to keep the old way working and your most profitable customer is using the old way. So you can’t break the old way because that’s where the company makes all their money because they’re profitable customers on the old way, and we tried to persuade the profitable customer to go to a new way but the profitable customers got other things that they care about They Don’t Care About Us 9 times out of 10. Ago we need to keep V1 working that is 1 of the hardest challenges in the average API development cycle, Transformers are quite a good way of doing this at 1 level because that social view layer problem as now we can just write a V2 Transformer. And however we’re managing our API versioning whether we’re using the media type on the ETA or whether we’re using a V1 V2 on the, URL path we can switch on that pick the correct Transformer class and do the work that’s.
[39:15] Super helpful to think about it like that it’s also helpful to put that in at the beginning but it’s not that hard to retrofit which is nice it’s when you start making. The main level changes that it gets complicated when the operation of calculating the way you do a total is you do in a different. Algorithm so go back to your example of the point multiplied by 0.13 or 136 or whatever so maybe in Russia 1 we multiplied by 0.136 and sending that out to the value in our API if actually 2 comes along and we now need the high Precision solution. So we implement the high Precision solution and now we’re sending out the maneuver the total is now got the right number in it but all our clients are expecting the approximate value. So that’s that is a BC break. Might not be but possibly let’s assume he is so now you’ve got 2 versions of your business logic you need to maintain even though your output layer is the same.
[40:12] Yes. So this is where the complexities arise the clip is invariably arise around things like that and you don’t see these problems until you’ve got a long lived application, which is tends to be a legacy application because it’s only Legacy applications that making money that hence are still around and they tend to be. Crafty code because once you get to the point where it’s worth making those sort of changes you tend to be in a situation where. That’s been around a while so it’s gone through 3 versions of symphony and it’s gone through multiple different database migrations and now you needed to allow this sort of stuff. So yeah. It’s a challenge and it’s a maintenance challenge but it’s the area that I find most interesting yeah I can see why but those are the sort of areas I like as well how do you solve this problem and there’s 20 different, patents you can use to solve the problem but it basically boils down to you need to make a choice based on that versioning ID
[41:19] however you get that version ID in there I mean we could do an entire podcast on on the ways to version and API and we could but not with me because I don’t care I 1 of the things I really don’t care about. Version is 1 of them. Uh I care that you don’t break your backwards compatibility promise that’s all I care about whether you put it in the URL whether you put it as a subdomain whether you use a media type. It it’s not a difficult it’s not it’s not a problem for me, not breaking your output and not changing your version that irritates me because that is a pain as an integrator if you’re the. As a client that is a horrible job to have to deal with. I I like the ones that don’t tell you that they’re going to change something and you find out the following morning when there’s a millionaires so yeah I have a story on that 1 I mean that’s a challenge in itself though because how do you communicate it.
[42:21] How would you communicate that you are retiring an API How would how would you do that it’s a really that is a 1 of the hardest problems there is, it’s got I mean I I consume an API for a personal app and it just hits this 1 end point once a month collects all the data sticks in my database and 1 1 month I wake up to, funny enough a honey badger alert to say that it’s not checked in that job’s not checked in. Like I was going on and have a look everything should be fine they changed the URL. Yes I don’t know when they did it it was sometime between the start of the month before and then but they changed the URL like what what’s going but I couldn’t find anywhere any documentation anything to sell so, that they will change it. And I think they did put something I I tell her I think they put something in the documentation but unless you’re looking at the document documentation every every day.
[43:20] You’re not going to know and that is the fundamental problem yeah because at the end of the day they don’t know that I’m using their API. The the how to how to inform me unless I’m signing up to a newsletter or or consuming like looking for extra inputs in the in the body to say by the way we’re doing to making these changes, how how do you know when those sorts of changes are happening that’s this is a difficult problem if you’ve got APR registration so every every key is authorized. Are you sorry every endpoint, authorized so you’ve got some sort of token involved somewhere then you at least have some sort of relationship with the client or an integrator that you’re changing something is a problem in itself. But it’s not uncommon for a team to build a given integration against an API, and then move on to something else and then that thing is given to the End customer then customer uses it for 5 years and everything’s about it so that’s not uncommon this is why you see the big companies do things like brands.
[44:30] Where they will randomly. Reduce or remove access to the API endpoint they go into remove mhm and let it error and then bring it back up again. So the error message that goes back down the wires go to we are removing this endpoint in 2026. Make sure you migrate to our new 1 here’s a URL to go to see error message you sent back down to on that endpoint you turn it off for an hour. All the API clients that hit it get the error message if they try again and now it works as usual, but now they’ve got something in their logs that gives them a message yeah but now you need someone to actually go and read the log yeah, amen if you’ve got registration you can send them an email if if there’s the email they signed up with and got their token is on their keys still the email they’re using, you can put it on your blog if you go yeah they’ve got to go to the blog and see that and in my instance there’s no key it’s just you just.
[45:31] Send the request and you get the response is nothing no authorization or anything like that it’s there’s there’s no real way to have informed us that there was going to be a change, yes at which point you have to fix it when it breaks yeah which is 1 of the reasons why I quite like the people who do the controlled timeouts. Because if that happened you’d have found oh it doesn’t work I’ve now got to go and look up why it’s not working but tomorrow your API will work as normal, until you come out to fix it properly yeah now that part is called API life cycle because the API life cycle starts from, oh we need an API which is where we started right back at the beginning of this conversation all the way through to how do we turn an API off. Have a life cycle implies a finish how do we how we turn an API off. Is equally as important for planning as getting started my API but of course developers like us we don’t care about that so much,
[46:32] but in the business people should be caring about that quite a lot assuming they’re making money off it if they’re not making money then all bets are off but it’s interesting you should say though that. Only this week I’ve actually had an email from the Met Office to tell me that they’re expiring 1 of their apis and I thought oh how quick is this going to expire, 2027 at say that’s fairly good notice because now I’ve got time to do something about it I’ve also had the reverse previously where it’s oh by the way we retired this yesterday right thanks, that they insist that they send you others they didn’t I’ve checked the emails it’s interesting how different companies will handle it and some companies just don’t tell you. Or as you said may not even have a way of telling you. Yeah and you start hitting Conway’s law of course in the all this effects the way that the company is internally as to how well they’re going to handle it externally.
[47:30] Yeah interesting I mean I don’t know about you Mike but I found this very interesting conversation yeah. Her husband is is certainly has been um I’m quite interested to. On the stand I’m sure there are people like to sort of ask about now you you said that before we came on there not to use the word freelance that’s not what you are or a contractor, your advisor how how did you get started in that how do you. Do you Market yourself or you mainly get in your clients through Word of Mouth these days and how would you start off if you were to start today. And to do what you do now how how does that look. There is a question yes so I call myself an independent data consultant because from my point of view you are purchasing my brain not my hands so. The key thing from my point of view is. My knowledge is way more interesting than the fact that I output some code for you sometimes Freelancers know that’s why she asked but contractors tend to join teams and tend to work under the direction of,
[48:38] back to him for the development that’s a perfectly great way to earn a living and do lots of interesting projects. They tend to be 1 project at a time though, I tend to work with multiple clients simultaneously so I’ve got 3 or 4 clients and their projects go in simultaneously in each week so it’s, different type of job in that sense how you get into it I wish I knew that that would be a super helpful thing for Curious would that so yeah how to get new clients is another 1 that I wish I knew how that worked because they’re not have more of them uh, I was standard web developer for most of my time I worked at web agency the web agency was struggling and. I understand some work on the side I was. Relatively underpaid which motivated me to do some work on the site the work on the site started growing to this point where. It looked possible that it could replace my day job. And that’s the point I quit my day job and went self-employed because I’ve built up a bit of a business,
[49:50] simultaneously and that is really easy for me to say that in my very privileged position of being married with my partner at home who is able to rob my household whilst I’m working, and they’ve done some popular projects not everyone has that way to get into. A second career if you see what I mean so I I appreciate that I was very fortunate about to do that I think it’s very difficult to become self-employed without the knowledge and experience of having done lots of work, so I I think if I was newly starting out I think working for a variety of companies doing a variety of different, Industries is actually quite good for a career. I think that’s quite helpful to ideally experience different types of teams and different types of let’s call it project management for now or project list management might be more accurate half the time but the way companies, and teams operate is something you need to understand if you’re going to join 1 and be good
[50:56] and be part of it and if you’re going to advise a company on how to do things you need to come from a relative position of authority so you need to have built up that Authority somehow first and obviously if the credit is helps in providing, the proof that I’ve been around on 1 now you you need to have got that experience that is for instance is easier to get within a traditional career structure. Is I think I could be wrong about that but I think that works finding new clients for me it’s nearly all word of mouth it’s all via. Been known which is a challenge in itself how do you get known in order for people to recommend you how do you mock it. In a way that people can find you because my clients are not necessarily developers are people who need developers yeah but my word of mouth works you know developers have heard of me and they recommend me to their CTO and to their CEOs. And that’s how I get work and that’s why I speak at conferences that’s why I’ve written for PHP architects in the past they’re ways to.
[52:02] Get my name known amongst Developers some love for another and sometimes it magically turns into a client who wants some work done I’m sure there are better ways to Market in but I start hitting the traditional develop a problem of not being a extreme extrovert like the average salesman appears to be so that bit is slightly harder for me in that sense. I see I see it’s kind of a trend in what you’re saying is is something I advocate and we’ve talked on a couple of the other episodes is about being part of the community being out there you never know what happened to me at the end of the day, if if people have seen the first episode, we’re meeting both me and Chris talked about how we got to where we are today it was about being in the community in different various ways, obviously Chris’s uh been writing for the magazine for a long time was and his name is well known uh he’s always in the Discord at pitches.
[53:01] Sort of helping people out all the time and that’s kind of where he. He got in and and talking to Eric and John knew knew of him I was fairly similar being involved in the community. So got that profile up and when I said that I was I was needing to find work they reached out and that’s kind of how it all happened so yeah I see it’s very and I think Eric and John talked about the conferences how how many people that have gone to conferences and have made relationships and now careers have changed because of being in those those conferences I think that’s. Important it’s and it’s I get the the fact that it’s difficult for people that don’t aren’t that outgoing, I’m 1 of those people whereas you know well we’ve we’ve do we’ve talked about this a few times that I’m not very it’s very hard for me to talk to people and and start the conversation that generally I need someone to either introduce me or.
[53:56] To start the conversation with me and. That’s 1 of the the more personal reasons why we’ve started with I’m doing this podcast this show is to try and. Force myself out of my comfort zone a bit and you’ll be pleased to know I have submitted talk to Tech 26 why I might actually be talking whether I’ll be talking any sense to anyone I don’t know it might be a load of rubbish but you can you can blame Chris as well because he’s on the sort of twisted my arm and said no just do it. So they are whether they get picked I don’t know they might not get picked they’re still a selection process to go through but you never know I might actually be talking but yeah yeah Community is, very nice way to talk about it if we’re going to talk about it more professionally we would just like networking, but Community is much more friendly way we think about it because it’s less intimidating Network so I’m in the community I don’t network with that sense because I don’t think I could cope with that level of intimidation but yeah and.
[55:03] There’s nothing more important for your career even if you’re going to be a full-time developer working for a big corporate the entire career. Your chances of getting better jobs in the companies you want to work for. Significantly increase if you have been networking so that you know people and how you do that networking is up to you but Community in-person stuff. Even though a lot of us are now quite remote doesn’t make quite a big difference in my opinion. But it’s I found it valuable over micro I would completely agree and I mean although I I had never met, Eric and John face to face it was all our communication was all through the Discord and even then it wasn’t that much of a technical, sort of involvement I had I mean I I asked a lot of questions and and for people who might not have known I’m I’m very new into this industry I’ve only been developing for about 5 years now so I feel myself a very,
[56:00] like baby compared to especially present company at the moment you guys have been in not not, yeah I’m not talking about the greyness I’m talking about the years you’ve been in the industry I’ve just become to a very late age that there’s. Go back to go back to the first episode and you can hear about that I won’t reiterate here but I the most most of my interactions was actually setting up a chess club for people in the Discord to play chess against I, sort of helped John and Eric and gave him some tips about Chess and even though I’m not. A massive really good chess player I’m I’m I’ve sort of low Club level chess player but I had that was mean to her actions so my kind of message is you don’t have to know a lot of stuff about, PHP or programming in any form just join in. In any way just have a chat say hi to people ask questions answer answer them if you can I still think I’ve yet to find a
[56:59] question that I can actually answer or normally someone’s answered it before I actually get to it because you know but the a lot of the community that we’re in Maine is is based in the US so by the time we get up someone’s already answered someone’s question so we don’t see it a lot but although we do have quite a few Europeans in the in the chat as well. Particularly involved is I think is a really strong message it’s just getting involved and it doesn’t I know you said face to face it doesn’t always have to be face to face if that’s really intimidating join online networks is. Invaluable I think and I I Echo everything you you said that and. Talking about sort of the building up the courage to to to talk is another thing that a lot of people have said to me and I’m sure both of you are do agree people in the audience want you to succeed. They don’t want you to fail so they’ll be cheering you on no matter what you talk about I could stand up and talk about my dogs for a 50 minutes they don’t care they just they care that I’m up there.
[58:01] Get sort of saying something so that’s a slight Comfort I it’s only a slight Comfort I am still absolutely freaking. Doing these these talks they’re not, technical talk to ones I’ve suggested I’ve I’ve put forward but I won’t I won’t spoil anything yet no spoilers yet but we’ll see and. And you you yourself probably have been a big part of me taking that step because we’ve had that conversation every time we’ve met about taking those steps and it’s just taking me a little while, I’m getting there yeah a lot of things out to what you want to do as well like you don’t have to speak you don’t have to be a proactive member of a community. In my experience at least the. Benefits of being part of a community part of a group of some form or another has vastly improved my career. I’m a much better developer than I ever would’ve been would have been if I hadn’t had the community of people helping me and cheering beyond all the way back to when I started on a mailing list talking about C plus.
[59:12] Literally knew nothing and the people on there are obviously my question so that eventually I became 1 of the people replying with an answer because someone had told me the answer 2 years previously and then I started actually understanding why that was the answer she was even more impressive yeah, about that level of community that level of interaction with your peers and vastly improve your career yeah I completely agree. Mhm I think that gives us a very good point on which to end yeah we’re slightly running longer than we would normally but yeah. I did 1 that’s what I have to have you on again yeah what have you on again and we’ll talk something else so okay yeah we’ll. Pick your brains about other things but yeah well thank you very much for giving up your time to speak to us today it’s been really interesting really enjoyed. Having the chat with you I hope we all bump into each other in person at some point or just.
[01:00:11] Or just arranged to meet we also it’s not like we’re on the other side of the world we’re all quite close so uh yes well thank you very much well for joining us today and thank you very much everyone for watching, and we will see you in the next 1.
Air date November 7, 2025
Hosted by Mike Page, Chris Miller
Guest(s) Rob Allen

Our Partners

Collaborating with industry leaders to bring you the best PHP resources and expertise