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.