Developer Profile &  Context

Vastly male European, with runners up from Asia and North America. Coming from Oceania, an area with a population far smaller than Europe or Asia, I'm not surprised we weighed in at only 3% this year.

I was quite surprised how few newcomers there were to development in general, nearly 60% of us account for 5-20 years experience; with only 1.3% of developers learning to code in the last year. Perhaps that shows an aging demographic? Will PHP drop off a cliff not because PHP is bad, but because the generation that love it stop working? That said, newcomers to Laravel came in at 7% (which confuses me, how can there be more people new to Laravel than new to programming in general?)

Over 40% of respondents contirbute to open source packages. I feel like an imposter here - I have a few that I manage, so I might have voted yes, but I've never contributed to a mainstream one. Something to go on the resolutions for this year perhaps.

I am not surprised to see MacOS featured as the majority O/S, but I'm very interested to see Windows declining in use over time, and MacOS being >50%. That said, it's always been easier for me to do powerful things on MacOS in an intuitive and clean way, so why wouldn't developers also see that. I hope that keeps growing and the desktop O/S getting more love from Apple as a result.

Like others, my coding is a mixture of hobbies and professional reasons - my little startup depends on it; but was born out of a love of development and solving real world problems.

Editor

A big surprise for me was that over half of respondents use PHPStorm. I thought the whole world would use VS Code (because it's free, and good enough). As a PHPStorm user I assumed I was in the minority at 20% or so, even though the tooling is incredible.

I've been entertaining Zedr recently, mainly for its performance and power. I used VS Code for a few years, and found it to be sluggish and battery-eating; and I don't like choosing electron over native apps. That said PHPStorm is what I use, and it's based on Java, which comes with similar overheads. But I use it because it's GREAT. VS Code, by contrast, could be almost great if you configured it just right, and there's some things that I thought it would never do, mostly provided in PHPStorm by Laravel Idea.

That said, the ideal world for me would be Panic's Nova with proper Laravel love, or Zed similarly. Zed has a snappy cleanliness to it that would get my full attention if it was a little more refined and came with better support for Laravel.

LSP could provide options to do this, or integration with e.g. Pint too. Perhaps it's time to start writing a plugin. But my overarching conclusion is that, since nobody would use it but me, I'll probably get off my little hill and venture to VS Code once Laravel release their official plugin for it.

Languages other than PHP

JavaScript and TypeScript don't surprise me as the top contenders - there's not many fully-backend developers out there, it's natural to know JS/TS if you're a web developer.

I recently coded up a little Express API which my Laravel app calls to get some work done that JS had the packages for that PHP didn't. At least not good ones.

I use JS all the time, I wish I didn't have to (personal preferences only, it's objectively powerful and flexible), and I don't want to learn TS, but it would be hard to avoid on the modern web. It's also great for knocking up prototypes and little apps and lambda functions.

I have learnt a bit of Swift, which I find really intuitive and fast to code in (now), and would love to use more if I had the excuse. But I can't help but feel I should learn Go or Rust instead, as they offer many of the same advantages and are likely to gain much more popularity for a wide variety of use cases (making my job easier).

The Database

For so many of my projects I've tried to use the right tool for the job up front. In retrospect, this has really got in the way of coding and deploying projects.

For example, I've had a lot of simplicity in the database layer through using Postgres, especially around JSON functions, and a few pg-specific features. But use of those has meant being able to seamlessly run, backup and transfer pg instances, and (for me) this has come with a lot of learning and operational friction.

When I look back at this, I realise I should have stayed with MySQL or MariaDB (why don't more people use MariaDB?). I know how to use it, and it's easy to use. So I think I'll take a closer look at that for future projects, and may even do a trade-off analysis for migrating operational projects to it.

For certain, I've embraced Laravel's approach of defaulting to SQLite for local development and testing, it's so fast, and has no overheads on the machine in terms of services to install, maintain and run in the background. Since CI can take care of testing in the real environment, I've no idea why I didn't do this before.

So much brew remove, so much happiness.

The Frontend

I am so pleased to see people using Blade and Livewire. I feel less like an imposter.

I'd love the opportunity to use Inertia, but nothing I'm doing at the moment needs the complexity of a front-end stack. And besides, I know it'll come with a set of challenges I wish I didn't have to deal with. So, for now, I'll stick to Livewire and embrace the haters.

Talking of haters, I'm pleased to keep using TailwindCSS, and am really looking forward to v4 being released later this year. It fixes any remaining gripes I had, and improves other things in ways I didn't even know I wanted - but are definite improvements.

Admin Panels

I don't really use admin panels, I get the idea, but often find if I've built the app, then I can build in the admin parts.

But when I do want to quickly knock one up, then Filament is the way for me.

I also often use the Filament components in other apps, because they're amazing and get the job done very quickly, intuitively, and in a way that is in keeping with my app both for the user and the developer. I am very impressed by the work Dan Harrin and the team have done, and grateful for it every time I type the word Filament.

Development Environment

No big lessons for me here. Local, using Herd now, all the way. Seamless, quick, zero overhead.

I can't understand people who boot Docker to code, outside of very specific environment needs or large teams. And people who develop using php artisan serve are like people who go cycling in sandals to me. I respect their choices, but it feels naked somehow.

Side note: I don't want to develop in the cloud. I love doing all this on my local machine, it's fast, I control it, and I can take it everwhere I want. All I need is a charged battery and an armchair.

Quality Assurance

Depends on the App of course, but coming from an engineering background I use ALL of it, and also only use it as a safety net - I still believe the developer is responsible for quality. The tools are there in the hope they catch the thing you missed.

Source Control & Hosting

Again no surprises I use Git and GitHub. I feel dirty doing it, but it's incredibly powerful, mostly free, and supported by all CI, DevOps and deployment tools that exist.

Recently I've started using Taska, a MacOS-native UI for GitHub issues. I write out the tasks against milestones, and then TDD my way through the tasks, committing with references to the task closed. It's quite a nice workflow I can see myself sticking with.

Still a few too many apps (Editor, Browser, Terminal, Taska, and sometimes Notes to jot down ideas/concepts), but with Stage Manager (also a new workflow for me) I have two main "stages" and it works nicely.

Production

I deploy to production as often as I close a task, pretty much. So daily really, as I keep tasks as atomic as I can; except refactors or rewrites.

I deploy to VPSs, usually one per app, or multiple per app. And I manage those using Laravel Forge.

I'm keen to see how Laravel Cloud works out, but have a couple of concerns with it: a) I can't use startup discounts etc with it, because all the invoicing is done by Laravel, and b) tinkering with the server goes away. We'll see how it fairs and maybe in a year or two I'll give it a try.

Monitoring, I use Sentry now because Forge integrated it.