Yalla Let's Code Podcast

Transcript: Building Native Apps with PHP by Simon Hamp

Read the full transcript of this episode of the Yalla Let's Code podcast.

Yeah, that's an interesting take and I think what I've found in my career, I've worked

with people who've come from like doing a formal CS degree, a computer science degree.

And even with that, it doesn't make you a good programmer.

It helps you to think about how the machine is working and how the systems can be set

up to be performant and learning algorithms and a lot of theory about how all of this

stuff works.

But that doesn't naturally translate into being a good programmer.

And I think that's kind of the thing that I still don't feel that I am a good programmer.

I think that's fundamentally what it is.

I think, you know, if you look at it just purely on the basis of like, can you write

an elegant solution to a given problem?

My answer is no from the angle of a systems thing.

But when it comes to does it solve the business problem?

The answer is yes.

You know, and then from that perspective, I think I am a good programmer because I think

I can see things from like the business owner or the stakeholders perspective and help translate

things back from a more technical angle to the, you know, the terminology that they will

understand if they're less technical.

And then it becomes less about like how good you are at some objective scale of, you know,

measuring things to the standard of grades and certifications and things.

And it's more about not even how quickly you can get things done, but how you can achieve

an end result that meets all of the requirements within a given time frame.

And budget, you know, at the end of the day is like customers have got a certain amount

of money that they can afford to pay for things and if you can do it within their budget,

then that's kind of job, you know, the job's done and they care very little really about

what programming language you use or what framework you use or how you deliver the thing

to the, you know, like what algorithms you've used to do it.

They just want the thing to work and for it to work kind of reliably.

So yeah, it's kind of, I feel like I learned a lot of those lessons very early on, which

was good.

Yeah, it makes sense.

Yeah, I got the point because it's at the end of the day is because I got frustrated

with the fact that, you know, these businesses basically just, they want you to come in with

a quick fix and it's not elegant and it doesn't feel right because you know that the long

term solution is there's something better, there's some better way of doing this.

When I write code now, I know that it's code that must be written and it's of real value.

It's not just like, you know, chucking some component into some page because somebody

says that that's going to be a good thing for the business.

But what is the business model that keeps this project alive?

So welcome guys, really, let's go to podcast podcast, we interview software engineers,

which is an entrepreneurial story.

And here we are on episode number 10 of the podcast and we have Simon, the owner and the

maintainer of native PHP, also the technical co-founder of is still is and the owner of

Laravel Dev, which is one of the biggest or the biggest Laravel developer directory.

And we will go more about Simon story after this intro.

So Simon, thank you so much for accepting my invitation.

It will be a pleasure hosting you for today episode.

So can you give the audience more insight about yourself?

Thanks for having me, Elias.

It's great to be here.

Well, insights about me.

I'm a very boring nerd.

I like to play with computers.

I have done for a very long time and I can remember being a small child and being fascinated

by, you know, oh, this, you can type keys on the keyboard and stuff happens on the screen,

you know, it's like magical.

Yeah, I just, I always, from kind of whenever I remember wanted to get into programming.

And so I started looking at that, probably not properly enough until I'd finished my

schooling at like 16.

And then the first language that I picked up basically was PHP.

So I've been, I've been working in PHP for about 25 years now.

Wow.

That's amazing.

Yeah.

And, and I do, I do have other hobbies, but they pale into insignificant compared to my

programming.

So.

Interesting.

And like you mentioned, this is like a 25 years of using PHP.

Like how was the experience like from the first version of PHP to the version that we

have right now?

Like, what is your experience?

Like, are you going through all of this version for PHP?

Yeah, I didn't use the first version of PHP.

It was a little bit older than, you know, like I was too young at the time to even be fully

aware.

I don't think we even had like the internet at home when the first version of PHP was

released.

Um, yeah, I think I'd started really on like PHP for something.

I can't remember the exact version number, but you know, there was like, they were,

it didn't have a lot of the conveniences that the language has today.

I don't have familiar or you with PHP.

Do you, have you used it?

Do you?

Yeah.

I like to use the PHP is quite something like a mod, like a three years or something

like this.

Cool.

So you're sort of familiar with modern PHP.

Yes.

Um, even like version four didn't have things like object oriented programming.

There were some little things that would allow you to do certain pieces of kind of object

style programming, but it was not, it wasn't fleshed out properly.

And, um, yeah, I mean, I distinctly remember upgrading to PHP 5.3.

I think it was when there was all these like advancements that were made in, uh, namespaces

and anonymous functions and all of the things that we kind of take for granted today, um,

that have allowed the language to like Excel and it just didn't have a lot of that stuff.

Uh, and then yeah, there's like these big moments in time where things like composer

came out, some of the, the frameworks, you know, I was using code igniter, I don't know

if you've heard of that, but, uh, code igniter was kind of huge for a while.

And then Laravel came along and like every good PHP programmer, I built my own framework

as well.

So yeah, been through the journey of all of that kind of stuff.

And, um, like it's just got better or better.

No, I remember going through this period where, uh, everybody seemed to be building things

with Ruby on Rails.

And I was like learning Ruby on Rails because it was the cool thing.

And I was just so stuck with how some of it worked and I like couldn't get my head around

it.

And I kept going back to PHP and I was just like, what's wrong with PHP?

Why can't PHP do all of this stuff?

And of course it can, it's quite capable.

And yeah, just like stayed with it and, and PHP eventually did get good enough to do all

of those things and more.

So yeah, kind of glad that I stuck with that language.

That's great.

That's great.

Awesome.

Thank you for like I mentioned that.

And also like I've been, I mentioned I have been using like a PHP for two years and also

the first programming that I learned programming language was PHP.

I hit it at first, but at like a later time, using like a Laravel, I like a lot, I love

it more because of the Laravel because it's much easier than vanilla PHP or like without

using a framework.

It's like a more structure.

So it's like a better for me and going through like your timeline, I would say like currently

you like have been using PHP for quite some time.

Like did you go through like the formal way or like the academic way of getting like a

degree on computer science or the self thought way to be able to get your hand dirty in programming?

Yeah.

I think I would call myself self taught.

Although in reality, it was other people, just I did it on my own time, you know, like

reading books, watching videos if there were such things available.

I mean, when I started to learn how to do PHP, YouTube didn't exist.

You know, there was no Lara casts and all of that kind of thing.

So it was a lot of reading a book, writing the code out that's written in the book, you

know, like printed pages as well.

There wasn't things like Kindle or iPhone, you know, it's literally, there's some code

that somebody's written that they printed in a book.

I'm typing it out into notepad, I think it was at the time, you know, like on a Windows

machine writing in notepad, saving it as a dot PHP file, and then trying to figure out

how to run it under Apache, you know, and they'd kind of let the book that I'd got went

through all of the basic setup of an Apache installation on Windows with PHP, with MySQL.

So this is kind of the, well, they call it the lamp stack, right?

It was eventually, because what you ran on was a Linux server, so it was Linux, Apache,

MySQL, PHP, and that was the way to kind of get up and running with PHP, but like building

web applications.

So I just had to follow those guides and try stuff, you know, and then you start to explore

like, well, if they're doing it that way, maybe I can do it this way, and then you start

learning how to like read the documentation, so I'm reading through the PHP website almost

like one page at a time, you know, like, oh, I don't know what's next.

And trying to learn all of the things that are there and try to just understand as many

of the principles of the thing, you know, as I'm trying to solve problems, you know,

I'm trying to create solutions, I'm trying to make the things that are in my head, but

at the same time, I'm sort of figuring all of this stuff out.

And the book that I had was really good, and it was about, it was PHP, although I started

using PHP and PHP 4, the book was PHP 5, and so it kind of covered a lot of the object-oriented

stuff, and it was, yeah, I mean, I could just go at my own pace and all of that kind of

thing. I would say it probably took me a lot longer to learn how to become a programmer.

I don't really feel like I became a strong engineer until probably the second half, maybe

even more than that, of my career, you know, because I saw like what other people were

able to accomplish and just felt like they were going a lot faster than me, and yeah,

that they were just able to come up with these like really elegant solutions to problems,

and I was just sort of bashing the keyboard to make things happen, you know, but all the

way through it, I feel like I was learning stuff, you know, and that's kind of, I think

probably even more important than how quickly I was able to do it. I learned like patience,

you know, how to solve problems and kind of how to Google things as well, because yeah,

the only thing that you could do at the time to kind of solve things, I mean, there was

no Stack Overflow and things at that time, there was no AI obviously, you just had to

like Google search, try and type the best search phrase that's going to bring the result

that you wanted to the top, and lots and lots and lots of reading, which it just took a

lot of time, but yeah, I'd say now people are really lucky, like you can learn with

the aid of AI, you know, which is summarizing lots of content very quickly, you can learn

through video, there's loads and loads of really good video stuff available for free.

So I think I think I would have been better faster if I'd started now, but there's a lot

of things that learning that way has taught me that I'm kind of really grateful for.

Makes sense, that's great, because also like I am considering myself like a self-taught

and you mentioned a lot of things and I can't imagine how hard it will be, because for me

I learned from Udemy and the online video, like from YouTube video and the media article,

so it was like I would say much easier than what you mentioned, so because you have to

like I don't have like a lot of resources to be able to look up to, and also you need

to like look for physical books and need to be delivered and you need to read all of the

things, so it will be, there's like a control F in the book, so it will be hard to be able

to search for things, so that's the thing. And also thank you mentioned like some great

things, because back then there's not like a stack overflow, you just need how you need

to like master your Googling skills, because there's less resources than what is currently

available, and also with like the help with AI right now, there's a lot of things that

is like much easier for anyone to be able to learn how to code, I think it's just a matter

of discipline and just need to, like I would say spend some time to be able to learn it,

just like or sacrifice some time to be able to learn it, because when you are self-taught

you already have like other, maybe you are already studying, you're already working and

you are doing it on your free time, so it's take a lot of discipline to be able to do

that, it's not like some easy path, it does take some self-discipline to be able to make

it, because there is no teacher that is on top of your head, or like an exam at the end

that you need to pass to be able to get something, it's just a matter of like getting and building

projects to be able to showcase, and also when you are going to the market, there is

no proof that you are good at what you are doing, so there's no degree, no certification,

nothing, it does matter of how you can convince the client with your work, with your project

that you already built in the free time to be able to show them that you are capable of

what you are talking about, which is really hard compared to like getting a degree, because

degree is like a, here is a degree, so I can, this is a proof that I can do this thing,

but like as a self-taught there is no like such thing.

Yeah, that's an interesting take, and I think what I have found in my career, I have worked

with people who have come from like doing a formal CS degree, a computer science degree,

and even with that it doesn't make you a good programmer, it helps you to think about how

the machine is working, and how the systems can be set up to be performant, and learning

algorithms and a lot of theory about how all of this stuff works, but that doesn't naturally

translate into being a good programmer, and I think this, that's kind of the thing that

I, I still don't feel that I am a good programmer, I think that's fundamentally what it is,

I think you know if you look at it just purely on the basis of like can you write an elegant

solution to a given problem, my answer is no from the angle of a systems thing, but

when it comes to does it solve the business problem, the answer is yes, you know and then

from that perspective I think I am a good programmer, because I think I can see things

from like the, the business owner or the, the stakeholders perspective, and, and help

translate things back from a more technical angle to the, you know, the terminology that

they will understand if they are less technical, and then it becomes less about like how, how

good you are at some, some objective scale of, you know, measuring things to the standard

of grades and certifications and things, and it's more about not even how quickly you

can get things done, but how, how you can achieve an end result that meets all of the

requirements within a given time, you know, time frame, and, and budget, you know, at

the end of the day is like customers have got a certain amount of money that they can

afford to pay for things, and if you can do it within their budget, then that's kind

of job, you know, the job's done, and it, they care very little really about what programming

language you use, or what framework you use, or how you deliver the thing to the, you know,

like what algorithms you've used to do it, and they, they just want the, the thing to

work and for it to work kind of reliably. So yeah, it's kind of, I feel like I learned

a lot of those lessons very early on, which was good.

Yeah, it makes sense. Yeah, I got the point because it's at the end of the day, it's not

for the sake of the code, but for the impact, or like at the business side of the code,

but the code should like meet the requirement that the clients want in terms of the technical

requirement, and also the business requirement, that's a good take for what we mentioned.

And also I would love, currently you have two products that I would love to dip into,

but I would love to get some backstory before we dive into this part, which is the Lara

Veldip and the native PHP, which is currently like a new way for building native desktop

application and mobile application using PHP. And I would love to go before this product

has been born, what you have been making.

So many things. For the longest time in my career, I was working for web design agencies,

you know, software agencies, small teams that were building things for clients, you know,

a variety of clients. And in fact, my first, just to like counter everything that I've

said already, my first proper web development job, I was working for a company, a small

company that was doing ASP.net. So Microsoft suite of tools. But I learned that, you know,

like the dynamics of working as part of an agency with a small team working for clients,

how the business has to like bill for their time, and that it's very tied to the budgets of

the client and what they're prepared to spend. And we can't go for weeks and months kind of

building the perfect solution, we just have to get the thing done and move on to the next thing.

But then, you know, after 10 years or more of doing things that way, I, you know, I moved from

that back to PHP very quickly, actually, after about two years. But the kind of doing things,

even with PHP, and I was using WordPress and all sorts of other things to try and build websites,

basically, very quickly, build e-commerce things, managing existing projects and kind of helping

people fix the stuff that they've put out that they've not maintained for a very long time.

And I got fed up of doing all of that, honestly. It didn't appeal to me as much as it used to,

because I got frustrated with the fact that, you know, these businesses basically just,

they want you to come in with a quick fix, and it's not elegant, and it doesn't feel right,

because you know that the long-term solution is there's something better, there's some better way

of doing this. And there was a part of my brain that was going, if only I could just work on,

like, one thing and just focus my attention on making that really good, then, you know,

I could really excel. I could show people what I'm capable of and this kind of thinking. And I

moved to working for a product company, but it wasn't a software product, it was actually a

hardware product company, and I was building the software to support what they were doing. That

was quite interesting, because it was so very different in some respects, because I was thinking

about things in a different way, you know, in terms of, I'm not just building this software

product that people are using, I'm thinking about how it works alongside this physical products

that this company are making. And I learned so much about myself and about how to do programming

well in that environment, that it's actually helped me get back to it. So right now, I'm like

freelance, basically, I don't work for any company. And for the last couple of years, after coming out

of that job, working for that hardware company, I feel like I've had this sort of renewed

vigor for doing things for clients, where I kind of have a much clearer view of like how it should

be done, you know, like the whole software development lifecycle should be done. And it's not

just about the kind of code that you write or how elegant those solutions are, as I've said before,

it's helping them to see, like, what the best process is for them. And most of the time, it

comes down to, it's not anything to do with code, you know, it's all about deciding what the actual

requirements should be for the thing that you're that, you know, the problems they're trying to

solve. And a lot of the time now, I spend just talking with my clients and saying, you know,

do you really need to do it this way? Isn't there like a way that you can do this without, you

know, code, or a system or whatever. And then very carefully getting down to like a minimal set of

things that you actually have to build. And then those things are the things that add real value

to what people are doing. And I think, yeah, it's kind of, I've built lots of systems, you know,

I've created loads of tools and things for internal use and external use. And I've made

subscription tools and e commerce things. And it's all been very fun and exciting. But when it

comes down to it, the thing that I've really enjoyed the most and the thing that I think gives the

most value to people is that I can go to the individuals within an organization and say, you

should be doing it this way. And like, from my experience, this is the way that really works

well, kind of iterative software development, and just focusing on the immediate sort of requirements

and not trying to think too much about all these eventualities and, you know, edge cases and all

of that kind of thing. And that's the bit that I kind of feel that I enjoy way more than even the

writing of the code, you know, it's like, when I write code now, I know that it's code that must be

written. And it's of real value. It's not just like, you know, chucking some component into some

page, because somebody says that that's going to be a good thing for the business. So yeah, that's

kind of where I would like to stay in in what I'm doing now. But as you've mentioned, I've got these

other projects that are going on. So yeah, that's great. That's great. I think it's like a give us

like a good ground for what we will be talking next, which is the two products, because I just

would love to get for audience like at the backstory of everything, because like all the

products will have like been accumulation for accumulation from previous experience. So I would

love to get like the people just a backstory of where everything was like on the making before

it's getting like a launch. And the first product I would love to deep into before getting into

native PHP is Laravel Dev, which in like according to LinkedIn experience, you acquire them in

November 2023. And since then you have been working on it. And it's currently the biggest

directory for Laravel Dev. Can you give us more like information or more story of that acquisition

and also what like what is currently in the roadmap for this part? Yeah. So Lara devs, it was

actually called Lara dir, which is kind of difficult to say and difficult to spell. But I

think Lara devs is a little bit easier. So I rebranded it to Lara devs. I think it's Lara devs.com.

It basically started life as a there's an agency in Spain that built this tool. And I wasn't aware

of it. And in 2023, and I kind of started up doing freelance work again. I was looking for other

Laravel developers. And, you know, I was looking for other freelancers so that I could collaborate

with them and maybe pass them some work or, you know, maybe even get some work from people as

they need to just kind of create a little community of freelance Laravel developers.

And somebody pointed me to what was, you know, Lara dir at the time. And I didn't

really give it too much thought. I signed up to the site and I thought, well, if this is a thing

and people is sort of growing, then maybe I'll get something from it. And I didn't hear anything

from the site. And I had a good look through to see if I could find any people. And so a lot of

the profiles weren't in great shape. And the site was quite basic. And I just thought, hmm, this

could be quite interesting because it dovetails nicely with some of the things that I'm trying to

do around building a little community for myself here. So I reached out to the team that produced

the site. And just with a kind of let's chat, you know, I'd kind of be interested to see what

you're doing, see if I can help out. Because I feel like the sites got some potential. And I

didn't hear from them for many, many months. And they finally got back to me and we had a little

call. And I just said to them, you know, I'd kind of be interested to run the site. And it turned

out that they were perhaps, let's say, not enjoying running the site very much anymore. I think they

sort of built it with the hopes that it was going to run away and be successful. And they hadn't

really put much thought into how to make that happen. And they put a little bit of money behind

it and, and some, you know, some marketing, but again, not really in a position from their side

to make that work very well. And I said to them, I proposed that I just take it off their hands,

basically, made them an offer which they accepted. And we transferred everything over within a few

days. And it was a very, like a very, very smooth, very easy acquisition. I mean, it was low stakes.

They didn't want, you know, a lot of money for it. And they say they accepted my kind of first offer,

which was fantastic. And they were very good to deal with in that way. They'd kind of built this

thing. And they just essentially they just flipped it to me, you know. And, and I thought, right,

well, I've got an opportunity to kind of turn this into something. So I'm gonna, I'm gonna go at it

for a while. And I spent probably, you know, a good few months re invigorating the site, trying

to market it and get more people signed up and, and get more businesses seeing it and everything.

And it's doing okay. I think from a, from a business point of view, it's not doing enough

for it to be like my main source of income or anything like that. It just sort of covers its

own costs right now, which is fine. And yeah, I mean, it's got over 5000 developers have signed up

there. And there's lots more coming through. And there's lots of teams that are visiting the site

now and kind of messaging people all of the time, which is really great. Yeah, it's, it's one of those

things like I thought this, this feels like it's a good thing to have and to do for the community.

And I'd hoped that it would be a stronger business idea. But I think there's a combination of

it, you know, the market is quite tough right now. It has been for a couple of years

in terms of hiring. And I think, yeah, but basically just, it's one of those things that if

you don't, I'm not in recruitment, you know, and it's kind of like a recruitment thing,

I don't understand that market very well. And I've kind of approached it from an overly simplistic

perspective without too much real deep understanding of what the expectations are of like customers,

you know, businesses that are hiring developers, and tried to approach it from a new angle as well,

where the, the businesses would have to reach out to individual developers. And, and I just think,

you know, I've learned something really important about the way that that works as

well. Some businesses are kind of interested to try out these things. The majority just want to

work in the traditional ways that they've always been working that's like convenient to them,

where they just put a job out and they wait for the applications to come in,

which I still think is backwards. But it's, it's a tough, like trying to push that rock up the

hill, you know, sort of going against the grain of the way that the people who are going to pay you

for whatever it is that you're trying to do for them, if it doesn't work the way that they're

sort of thinking, you're going to have a very difficult time kind of selling it to them. And

you're going to have to go around the, trying to convince them why they should do it this way

first. And you kind of just don't want those hurdles in your way when you're trying to sell

a product to people, you want it to be, they already know why they need it and why they should

do it this way. And that you just presented them with the solution and they're ready to just pay

you for that. So yeah, it kind of doesn't do that well enough yet. So in terms of like what the

future is for that, I don't know. I mean, I'm, I'm keeping the site, I'm keeping it alive. I'm

like keeping on like reviewing people's profiles, which I still do manually and it's just me. So

it's still growing. And I think I've got, you know, there's some things that I've been working on

a little bit here and there to try and improve things, which I'll keep on doing over the next

while. But I'm not spending a lot of time on it because I've got all these other things that I'm

doing still. Yeah, it makes sense. That's great. I think this gives me like a good insight about

the project. And also one of the things that you mentioned is educate the market for the way that

you are approaching recruiting, because it's like on the other way, the company will post

over LinkedIn or like a platform to be able to recruit people and the application application,

they review them. But this one, it's the other side. So the company are going to the site and

find the people. And the problem with that, like the person or developer doesn't give what the

client is expecting. It will hurt like the platform because it's like attaching the person that's

working with them, with the platform, which is I think what you mentioned, but correct me if I'm

wrong about that. And those I would love to get, like the problem of like guessing monetize is like

a commission based from like at the company side, because I think it's not like it's free for developer,

or maybe it's like a from sponsorship. But what is the business model that keeps this project alive?

Yeah, it's the typical sort of recruitment approach. I don't know if it's the same in Morocco, but

basically, you know, you have these these companies that are just recruitment agencies and they are

just a very basic and this is unfair to many of them, I'm sure they work very hard. But in the

simplest terms, they are a filter between the business and the potential candidates. And they

become the go to point for like, the candidates will supply their resumes, and the businesses will

just pay a fee once somebody has been found to fill the role. And the recruitment agency typically,

in that scenario, has to work very hard to ensure that their client, the business that they're

searching for candidates for, ultimately respects the contract that they've got in place and pays

them their fee. So it's a very risky business, really. And whilst it, you know, it does work for a

lot of people, a lot of recruitment agencies are very successful. They basically just have to

yeah, chase down their customers and kind of demand payment, which is not a situation that I

can afford to be, you know, like I can't have a customer owing me, say, 10s of 1000s of dollars,

which is what recruitment agencies will charge for, you know, an engineering hire.

And just have that being unpaid, you know, for months and months and months. So

yeah, it's trying to do something that's kind of right for your business, but also fits well within

the way that people, you know, your clients think about doing business is quite challenging,

especially if it's in a sector that you don't know very well. And I don't know recruitment very well.

So it's, it was a bit of a risk for me to take that on board and something I've tried and learned

from. But yeah, we'll see. I mean, I kind of still have hopes for it as a piece of, you know,

kind of a community project. And I think there's a lot of, there's still a lot of potential for it

in the future. I think it is the only place that I know of where Laravel developers specifically

are coming together to kind of share their profiles. And it is the biggest one of those

for Laravel developers. So yeah, we'll, we'll see how it goes, but

Makes sense. Okay. Got the point. And like, I would love one question for this project. I find,

like, like a footer that is it like only for Laravel developer, because I see like,

next year, next will be Orioles. It's like, I'm not only Laravel specific.

The focus is Laravel. So all those other skills can be like skills that Laravel developers also

have. And I think that's very useful, you know, like you, you don't think of just hiring a Laravel

developer in isolation, you probably also want them to have maybe some experience with React or

some other things. So I've tried to like, allow both the engineers who sign up and the businesses

who want to find people to kind of filter down based on the different skills that they have.

But yeah, no, the core thing is that everyone who signs up to the site must have some demonstrable

Laravel skill. And that's something that I look for when I review each profile. So if I don't see

that, then they don't make it onto the site, basically. Makes sense. Okay, that's great. I think

all the information that we mentioned for Laravel dev and the website will be Laravel dev.com. And

all the link will be in the description of this video if you are watching us from YouTube. If you

are listening from Apple podcast, Amazon music, or Spotify, you can check out in the show notes.

And the next product that I'm pretty excited about, which is native PHP, which you are the owner

and the maintainer for native PHP, which is a framework for Laravel and PHP for sure, to be able

to build native desktop and mobile application. Can you give us the backstory of this project?

And why did you decide to build this product? Well, the backstory is kind of as long as my

career. I mean, I, you know, going back to like what I was saying at the beginning when I was a

kid, and I'm looking at the computer is able to do this stuff when I type stuff in the keyboard

or click around with the mouse. And, you know, I want to, I want to make the machine do all of

these things that other people have been able to do, like opening applications that can do

really powerful things. I learned to do that over the web because I thought the web was really

exciting, you know, and it still is. Even 30 years later, you know, it's like this amazing

piece of technology that has enabled a huge shift in all sorts of things around the world.

But it's not the only way, right? You can still build applications that just run on somebody's

machine without the network. And now that we've all got these super smart phones in our pockets,

you, you know, they're basically computers. I mean, they're more powerful than the computer

that I had as a kid, you know, and it's condensed to the size of a phone that sits in your pocket,

which is incredible. And, and that's powerful, you know, like you should be able to run software

on that device, whether it's for you or for other people, regardless of like,

having the network or the ability to use the network. And I've always, I've always wanted to

be able to build software across any of those mediums. But PHP has kind of been the limiting

factor there for me because I, it was the first language that I learned is the one that I actually

enjoy working with the most. And unfortunately, it's not really been well built to, to do programming

in these other contexts, like you can't build desktop applications with PHP, you can't build

mobile applications with PHP, because it just doesn't provide that kind of tooling. And

it has intentionally stayed away from that. I mean, I think there have been over the years,

a few projects where people have tried to help PHP be capable of doing this. But I think the,

the core sort of always whoever's been in charge of looking after the core of PHP at that particular

point in time has decided this isn't a core thing for the language. So we're not going to,

we're not going to have any like first party support for this thing. If people want to build

their own projects, that's fine. But, you know, like you go and do that, we're going to continue

doing this, which is fine. Like they're quite within their rights to do that. But I think it's a bit

of a shame because I do feel like the language itself is just another language, you know, it's,

it's no different from Python or Ruby or go, you know, aside of the, the paradigm of the language

and the way, you know, it's sort of execution is, is different to some of those and its memory

model is different and all of that. But in principle, you know, you're just writing code

instructions. And those instructions should be capable of kind of doing anything. So it's always

like stuck in my mind that it should be possible for PHP to, you know, somebody who knows PHP

should be able to build any kind of software. And we started to see in recent years, you know,

people building like CLI tools with PHP, and they've got really slick and advanced, you know,

frameworks like Symphony and Laravel had strong CLI tools for many years. And, you know, just in

the last few years, people have been advancing on those and building really cool things stuff

like composer. Yeah, it's essentially built in PHP. And it's shipped to everybody's computer,

you know, you download composer and composer is shipped to you as what's called a far, you know,

a PHP archive. So it's a single file that runs all of this different code. So kind of packaged

up nicely inside. So it's, it feels like it's quite achievable for PHP to do these sort of I can

distribute my code to you and you can run it on your machine or your device. The thing that's been

lacking there is, you know, PHP developers know how to run PHP code, because they install PHP on

their machines, and they have it available to the system. So then when they've got a PHP script,

and they're running it from the command line, or they're opening via a web server, a page in their

web browser that runs PHP, then it's all like hooked up and working. But for an average user

who doesn't have PHP doesn't want to think about having PHP, there's no way for them to take a PHP

application and run it on their device. And so the first kind of challenge there was like,

how do you get PHP onto somebody's device, almost without them knowing about it, you know, it's like

you need to package this up in a way that's like nice and easy for them to not even worry about,

that they just download your application and it works. And that was one of the first problems

that I went kind of hunting to solve. And this is going back many years, probably 2018, 2019,

I was kind of thinking about this problem in more detail. And I stumbled across a tweet from

a Laravel community member, and like very high profile, a guy called Marcel Potziart, who

people in the Laravel community will almost certainly know, because the company that he

is the CTO for is called Beyond Code, it's a small company that builds software for Laravel

developers, essentially, and they built a tool called Tinkerwell and they built Laravel Herd,

which is kind of becoming a very good way, you know, kind of very popular way to build, sorry,

to run PHP on your computer. He had tweeted something about trying to get like CLI applications

running on any machine. And this was one of his like code experiments, he does a lot of these

sorts of things and he tweets about it and everybody gets excited and then maybe, you know,

he'll sort of pick it up and turn it into something, some later point. But the years went by and

I don't think I'd heard anything from him about it again. And I went digging out this old tweet

and went on a little voyage of discovery trying to find out exactly how he'd done that. I think

I'd message him asking him about it but didn't hear from him and then I found some tool that he'd

used and he'd posted some comments on in GitHub issues and things like that. And this tool was

there just kind of ready to use in this way, almost ready to use in this way, to build what we call

now static PHP binaries. So this is like a way to build PHP so that it works without having to do

any configuration or compilation or any of that kind of stuff. And it's just a single file, you

end up with a single file, which is the PHP executable for every platform. So you can have one for

Windows, one for Mac, one for Linux. And it's built with all of the dependencies that it needs,

all kind of like chunked together into this one thing. So you can just pass this executable

around to any system and PHP now will run on that system. And this is the baseline for things like

Laravel heard. I think Frank and PHP uses it. I'm saying all these names, I don't know if you know

these projects or not. But yeah, there's a bunch of tools within the community now that use this

stuff. And yeah, basically, at the beginning of 2023, I was trying to figure out how to make the

this library work in this way. And I was working with the person who was maintaining this static

PHP CLI it's called working with them to try and get it to a point where it would build a version

of PHP that would run Laravel, you know, a Laravel application just on my Mac, you know,

so I'm like, can can you compile it? It's like messaging them. They're Chinese and I'm messaging

them in English, like, can you can you compile this extension now? Can you compile that? And then

they're replying back in Chinese, you know, I'm sort of trans Google translating everything.

And between us over the course of a couple of weeks or so, we managed to get to a build of

the PHP executable from Mac that ran Laravel. And I was like, this is it. This is amazing. You

know, like this is the moment that I can now kind of share this with the world. And I started putting

some other things together. I thought it would be really cool to bundle it into Tori, which is a

kind of browser application framework so you can build desktop applications. It does mobile

applications as well, but using just web tools. And it's built on Rust, and it's all this sort of

performance. And it's, it's if you're familiar with electron, it's similar to electron, not quite

exactly the same. And I threw together a demo, kind of did a little video, and threw it up onto

Twitter and stuff like that and just kind of try and get people excited about it as well.

And to my surprise, a lot of people were excited about it. I got message from Taylor

Artwell, who's the guy who runs Laravel. I got message from Marcel because, you know,

I think he realized that this was very similar to some of the stuff that he was doing some years

before. And from that moment, things just sort of exploded, you know, like native PHP became a thing.

Marcel helped me work out how to put it into electron. And he did a load of work and he did a

talk about it in 2023 at LaraCon. And we announced native PHP to the world. And, you know, like,

basically, this project just appeared out of nowhere. Because of this one little piece of

very tricky work, I would say that I've done to like, help the thing get to a certain point.

But I think when we, there was one question, in fact, that Marcel got. So he's on stage in,

where were we? Nashville, in Tennessee, in the US. So he's on stage. I'm in the audience,

because, you know, I think it was the first LaraCon in person after COVID. So, you know,

there was like a few years in between where they weren't able to do the conference. And I'd been to

the one in New York in 2019. So it was just before COVID. And I was like, I'm definitely coming to

these again, you know, I'm going to make the effort to go to the US. Then COVID happened.

And then the next one was Nashville. So I'm there at Nashville, I was going to be there anyway.

But now Marcel is like, they're talking about the project that I've been working, you know,

like this thing. And I'm just like super excited. And one of the first questions I think he got after

his talk was, when is it going to work on mobile? You know, it's like, wow, okay, you know, we've

just shown you something incredible. It's working on desktops, PHP has never been able to do this

really, in this way. Give us a second, you know, like, let's just bask in that for a minute.

Go on. Yeah, makes sense. I think it's like the mobile was next to the thing that we'll be working

on for native PHP. So it's like a first desktop and let's launch will be mobile. So it's like the

reading your roadmap for. Yeah, well, what was really interesting about that whole thing for me

is, you know, there's a lot of attention around the initial kind of, oh, cool PHP desktop applications

and people feeding back, like, more than I think I've ever experienced the this kind of like response

to anything that I've put out, certainly on Twitter. And it was like the the market, I'll

say it this way, you know, like put it back to business terms for a second, the market was

reaching out and telling me what it wanted. And I think over the kind of couple of years since then,

what I've learned is that people know desktop apps are still cool, they're still great, that it's a

good thing to be able to build and it's nice to be able to do that with PHP and Laravel. But it's not

as exciting as building mobile applications. And I think there's some like really obvious

reasons for that. I think, you know, people know that everybody, almost everybody has got a phone

in their pocket. And so the potential is that they can be, they can be on their device any time of

the day, you know, wherever they are, and they can be connected to other people, you know, other

systems and services, just by whipping this screen out of their pocket or bag or whatever and

and doing something very, very quickly with it. And that's appealing, you know, that's appealing

for businesses, that's appealing to individuals. And, you know, even even people who are building

little side projects for themselves, you know, how many times have you thought, oh, it'd be so great

if I had a little app just to do this, you know, one thing just for me, like I don't care about

anybody else, I don't think anybody else needs it, but it would be great if I could just do this.

And, you know, up until now, in order to even achieve some of that stuff, you have to go and

learn some other new tooling. So if PHP was the language that you knew, and it was the one that

you're most comfortable with, and you knew Laravel, none of that would help you, basically. You, I

mean, you might be able to build some server-side element to your application, but the application

itself, you'd have to build in Swift or Kotlin or, you know, React Native, like you've got to go and

learn these other tools. And when people were sort of coming back, you know, they were tweeting at me

about mobile, and then we saw Marcel's talk, and people were asking about mobile, and after the

talk, people were asking us about mobile. And then for the whole time since then, people have been

asking about mobile. And I've just had this, like, it's kind of like a thorn in my side.

Mobile, mobile, mobile. Yeah, exactly, exactly. And I'm like, I've got to figure this out. And I

chatted with Marcel about it, because he's very, he's very intelligent. He's, he's very skilled.

And he's got some, he's got a very good way of kind of thinking through problems very quickly

and coming to conclusions about what's possible and what's not possible. And his first kind of reaction

was, it's not going to work. Like, it can't work because people, you know, companies like Apple

won't ever allow it. And I think, you know, that I can understand that perspective. But

what I perhaps didn't appreciate from that so much was how that informed, like intent, you know,

like, well, let's not try, because it's not going to work. And sometimes you still just have to try.

And I went, so I went down the path of trying, regardless, you know, I was like, oh, well,

let's just see. Because I realized that, you know, I did a bit of research, there were some apps on

the App Store that do run PHP. And I was like, well, how are they running PHP? This is like some

kind of fake version of PHP, just like emulate writing PHP code, and, and it's doing something

with some other language under the hood and whatever. And it turned out, actually, no, they

were just running PHP on a web server on the phone. And I was like, well, I mean, that's,

that's a bit gross, like all of that effort to just run PHP. And there were sort of very limited

tools, you know, like what they could do, I couldn't do, I was just like, so I feel like

it's possible to make PHP work in this way. And it will be accepted by Apple, because it's on the

stores. So they haven't really got anything against PHP being used. Now I just need to like figure

out how to actually make it work. And I went on this, you know, another one of those like go into

the cave for six months and sort of try and figure this problem out. It was probably a bit longer

than that, honestly. But, you know, in the meantime, I'm doing like client work, and I've got

Lara devs and all these other things going on. But I've got this side project of like, let's

figure out how to do native PHP on iOS as a baseline. And I come away from, I went to Texas

last year for LaraCon US was in wherever it was, Dallas. And, you know, I came away from there,

I was like, really enthused, I'm going to put a talk proposal together, I'm going to talk about

building mobile apps, which I haven't figured out yet, but I'm going to talk about building

mobile apps with PHP. And I put this proposal into a few conferences and just like, let's see

what happens, maybe something will come out of it. And I sort of left the project at that stage,

you know, I'd kind of done enough work to determine that it was sort of plausible,

and how I would do it if I finally did knuckle down to it. And then months went by, I hadn't done

anything. And the organizer of LaraCon EU, which happens in Amsterdam, came back to me in, like,

November, I think it was, of last year and said, is there any chance that you would come and speak

the February one? So in like, three months time. And I was like, Oh, I mean, yes,

obviously I'd love to. And my talk is all about building mobile apps with PHP. And I haven't

really figured out how to do that yet. So I then went into like, properly into the cave,

like the depths of the cave, and tried to smash out how to make this work. And surprisingly,

you know, to me, surprisingly, I managed to get a working model of this thing going enough to

kind of demo something during my talk, which was, you know, so the talk was like the driver to make

this happen. This is like the pushers, like you have like a headline, and you need to make it to

the exact like you have a demo call, and you need to figure out how you can make this project,

at least working in some way to be able to demonstrate to people so people can like a trust

or like, no, that is, it could be, it could be happening. At least this is like a theory,

because you mentioned that, like the, the, the person like a formal level told that this

can not be done. And you need just to show that it could be done. This is like a theory.

It's like a from it can be done to just, it could be, it's not should be like a fully working,

but it should be like currently working like for the demo purposes, at least.

Exactly. The proof of concepts and that's kind of all it needed to be. So I've managed to get,

you know, I sort of over the holiday period, let's say, of last year, I'd managed to get this,

this demo working. And I was like really surprised by how that had come together. It was very different

from the way that it works on the desktop. And, and it even from the other apps that are on the

app stores, you know, that run PHP. It works very differently to those. There's like no web

server involved. We basically compiled PHP directly into the application. So you have a Swift

application. And the PHP engine is just like compiled into a C library, which can be embedded

inside of that. So you just got all of this like C code, and it all just gets compiled together.

PHP is not running. It's not doing anything. But then with a bit of setup. So when I say,

like, I want to load a specific URL, let's say, you know, because that's how Laravel thinks about

the world is expecting a URL request, you know, with some headers and whatever. And it's going to

do its work and then it's going to spit out some HTML. If I can make it do that cycle of like

receiving a request and giving out a response, then that's it. You know, I've done, I've done the

hard part really. And I had already figured out that I can make PHP do that many months before.

What I needed to do was figure out how do I kind of boot that up inside of this Swift application.

And once I'd sort of cracked that, I remember, like, I cried a little bit because it was a

good moment, you know, and then I just started sharing it on, on Twitter and things again,

you know, it was like, this is cool, I can run PHP on an iPhone. And here it is, you know,

running on my phone and I'm showing people through the video what's going on. And it seemed to do

that same thing again that happened, you know, back in 2023, it was like people got really excited.

People were asking me all sorts of questions. There was lots of reactions to my tweets and

videos and things. And it just kicked off again. And I was like, wow, there's some, you know,

like I knew that people wanted mobile, you know, PHP to work on mobile, but I didn't

realize just how much. And I spent a little bit more time trying to refine my proof of concept.

And of course, at this, I'm also trying to write a talk, you know, because I've got this

conference talk to do at the beginning of February. So I'm like writing my talk and I'm

rewriting my talk and I'm refactoring this whole proof of concept. And just every bit that I do

makes it feel more and more stable. And like it's becoming a thing that could actually work

really well. And a few bits fall into place of like, how do I call native functionality? You

know, like, can I tap into the camera and vibration, you know, like these device features

and do stuff there. And it turns out that it was all very, very straightforward. Now, you know,

like now I can do all of this stuff. I can, this feels like something really valuable to people.

And everybody's like responding with all this positive energy around this thing. And I just

thought, I feel like I need to just turn this into a product, you know, if I can, if I can just in

the next couple of weeks that I've got, turn this into something that I can sell to people,

I think I've got a real like business opportunity here. And then I went and gave the talk in February

and it all, like my life changed.

That's interesting because like the, like I'm like following the story and it's like you mentioned

there is like a one, like a little break that was in the tunnel of getting you into mobile.

And as you hit that break or break that, that stuff, you open up a lot of door and it's much

easier for you to be able to have access to native feature and also for developer who are using

or already know PHP and a lot of it can build native mobile application.

And also one of the questions that I would love to ask, especially for this project,

what was the source of inspiration for this product? For example, we already have React

native for React developer. We already have like an Ionic for like a developer. We already have

Electron for JavaScript developer for building this application. What is the source of inspiration

or source of motivation for building something that is already been for other framework or other

like a programming language for PHP developer? So what is your take about that?

So I've looked at all of those other tools and I've gone, you know, like let's take Electron

just for a simple example, you know, like I would have to build all of my application in

JavaScript or TypeScript and not that that's bad in any way, but, you know, I've spent the better

part of 20 something years building applications with PHP. I've got a very stable ecosystem of

tools and experience that I'm very happy with and I can build things really rapidly with those tools.

I love using Laravel. For example, you know, I don't build anything now without using Laravel

because I'm so familiar with it. It's so good. It's so stable, etc. etc. There's a whole load of

reasons why for me personally, I should continue to build things in those tools. And so when I'm

like if I have the challenge or urge to build something that's kind of outside of the scope of

those tools, like a desktop app or a mobile app, the frustration starts when I'm like well I can

do it like this in Laravel, you know, I can do this really easily with PHP. And I'm having to learn all

of these new isms, you know, like the language, the problems with the different language or

the problems with this specific library or tool or trying to get into the ecosystem a little bit

in the community to kind of get some help from people who I don't know anybody in those communities

or certainly not many people very well. They're very big, they've been going for many years,

like it feels like I've got a lot of catching up to do just to even start getting close to

level zero. And yeah, that is just frustrating when you've got things that you want to do,

like you've got problems that you want to solve. And I think most PHP programmers are quite pragmatic,

you know, they just they come they use the language to get stuff done, and they move on and they get

on with their lives. And I want to do the same, you know, but I want to do that for mobile applications

and desktop applications as well. Excellent. So my overarching question was why can't I do this

with PHP? There's no reason really why. There's people who tell you you shouldn't do it with PHP,

but that's not like preventing you from doing it. That's just a suggestion. And so yeah, and then

there's this part of my brain that's going well, I just want to tinker with this stuff. I just want to

see what's possible if I start down this path, because it feels like it should be doable.

And, and lo and behold, it is, you know, and I can't say that there's really any inspiration

other than just because I wanted to it. Yeah, the fact of these are the tools existing in

JavaScript and other languages is kind of an aside, you know, it's like, yeah, of course they do,

like some of them were built to serve those specific purpose, you know, Swift exists entirely to

build Apple, you know, Mac and iPhone applications and that kind of thing. PHP is just another language.

So I'm just like, why can't it work this way? So yeah, just try to figure it out.

Yeah, makes sense. And also, the last question for the native PHP product is what is the business

model behind this product? Is it like a license commercial license? What is the

did take about the business model behind? Yep. So the desktop version is completely open source,

so it's free to use. And you can contribute to it and all of that kind of things like you can use

it however you want, you can tell stuff from it and whatever. There's no restrictions there.

But the mobile piece, I again, I was just saying it sort of felt very valuable and a lot of people

were asking for it. And that gave me the sense that this is something that they would find valuable

to, you know, it's like, if you can unlock a thing, a new skill for people without them having

to learn something new, you know, they're not going to have to invest their time in books or

videos or courses or other materials to, you know, and just spend maybe weeks of their time

practicing and learning. And suddenly they can build mobile applications, it feels like

quite valuable thing to have. And so I decided that for this particular piece,

this was going to be not closed source, but like what we call source available, but it's not open

source, right? So it's the source code can be read, but you're not licensed to kind of distribute

it basically. You have to purchase a license in order to use it. And that license grants you the

sort of the ability to deploy applications to the stores. And yeah, so I set it up so that you

just have to buy a license. And you renew the license to get the latest updates. So that's

basically the business model right now. That's great. I think we cover good ground for the

two products, Lara Beldev and native PHP, but let's move on to the last section of this podcast

episode. And it will be about the person behind this, like a two product. And I would love to get

you like a day to day life of running and running these two products on the side. And also the

stuff that you're already working on. So what is your day to day looks like? Yeah, it's a mixed

bag. So I still have some of my freelance clients, which I'm working with for now. Although I'm

hoping to go full time on native PHP in the coming weeks. So yeah, that's the plan. But

right now, I spend a lot of my time working for my clients. They pay the bills, which is

you know, kind of critical. So there's that. A few months ago, a buddy of mine, Shane,

he started working on the Android side of native PHP. And we joined forces and set up a business

behind it. So we're both working on that business, which is the one that sells licenses to native

PHP for mobile, but we're also working on some other products. So I spent a lot of time chatting

with him at the moment. He's in the US. So we have a few hours of overlap in the day. And

we spend we spend quite a bit of time talking to each other and kind of planning things working

together and sorting out like native PHP things. That's almost every day. And then

yeah, for Lara devs, I don't spend as much time as I should on that probably. It's maybe a couple

of hours a week. So not very much there. But yeah, as I say, the majority of my time at the moment

is taken up with my client work stuff makes sense. Okay, that's great. So the last section for this

podcast episode, it will be like for people that would love to connect with you and they learn

more about all this work that we mentioned, where they can find you. I'm most active on Twitter or

X. And yeah, my my username is Simon Hamp. So I try to keep things simple. My username is usually

Simon Hamp everywhere. I am also on blue sky and things, but it's slightly different in some places.

So it might be like Simon Hamp dot me, which is my website, you know, blue sky is like Simon

Hamp dot me. Yeah, I can't think of any other specific places. But you know, one of the things

that I try to do is be a bit of everywhere. Like it's really it's annoying, because I have to post

everywhere all of the time. But I found that to be like a really good way of just getting the message

out to as many people as possible. Because, you know, whatever it is that you're working on,

and you want people to see it, I think you have to kind of be everywhere. Yeah, makes sense. Yeah,

that's great. Thank you so much, Simon, for this opportunity to share the story about

the two products, Laravel Dev, and the native PHP. It was such a pleasure to host a new 40 day

episode. Thanks for having me. It's been really nice letting me talk and talk and talk. I appreciate it.

No worries.