Frank de Jonge Profile
Frank de Jonge

@frankdejonge

13,283
Followers
436
Following
1,218
Media
33,811
Statuses

Building | Open-source has-been

Amsterdam, North Holland
Joined February 2009
Don't wanna be here? Send us removal request.
@frankdejonge
Frank de Jonge
7 years
Here are my top 3 tips for tech-bloggers: 1. Add a publication date near the title. 2. Add a publication date near the title. 3. Add a publication date near the title. Bonus tip: You should really add a publication date and put it near the title.
101
1K
4K
@frankdejonge
Frank de Jonge
11 months
That moment when somebody figures out how open source works: #opensource #php #flysystem #maintainersBeLike
Tweet media one
16
207
2K
@frankdejonge
Frank de Jonge
3 years
Tweet media one
7
131
743
@frankdejonge
Frank de Jonge
2 years
Never been more excited about a production deployment! Hello, World! World, meet Tim 🥰
Tweet media one
95
4
460
@frankdejonge
Frank de Jonge
3 years
Learning a language other than PHP will make you write better PHP.
40
34
437
@frankdejonge
Frank de Jonge
6 years
Don't remember if I shared this little nugget before, but I <3 my mkcd shortcut. function mkcd () { mkdir -p "$@" && eval cd "\"\$$#\""; } so: mkcd ~/Sites/company/project is the same as: mkdir -p ~/Sites/company/project cd ~/Sites/company/project
10
89
387
@frankdejonge
Frank de Jonge
2 years
I did a thing yesterday
Tweet media one
Tweet media two
65
1
378
@frankdejonge
Frank de Jonge
1 year
The irony of enabling PHP's strict types mode by using a number is not lost on me. <?php declare(strict_types=1);
9
26
335
@frankdejonge
Frank de Jonge
5 years
I've used a MacBook Pro with a touch bar for the last 3 months. As a developer, using my laptop for everyday use, I now have extensive experience using it. Because of this, I'm now in the position to give a detailed expert review: I fucking hate the touch bar.
36
19
329
@frankdejonge
Frank de Jonge
2 years
During my holiday I asked my girlfriend a question and she responded positively.
Tweet media one
51
1
313
@frankdejonge
Frank de Jonge
2 years
PSA: Don't make the code smart, make it obvious.
12
69
298
@frankdejonge
Frank de Jonge
3 years
Developers will create overcomplicated stuff and then explain it to other developers, who then are impressed because of the complexity and compliment the person who created this complex thing by calling them smart or whatever. We celebrate the wrong fucking things.
8
54
277
@frankdejonge
Frank de Jonge
3 years
Everybody is hiring Software Developers, nobody is hiring Software Maintainers. You know, just an observation.
23
48
253
@frankdejonge
Frank de Jonge
2 years
CRUD applications are just excel sheets with extra steps.
21
26
247
@frankdejonge
Frank de Jonge
2 years
Why is the #PHP developer making so much money? Because every time they code, they get arrays.
15
28
242
@frankdejonge
Frank de Jonge
7 years
Small #PHP tip: Want to before sure multiple keys of an array are set? Define them in one isset() call, it's so much clearer! if ( ! isset($a['q']) || ! isset($a['w']) || ! isset($a['e'])) { // PANIC } # Becomes if ( ! isset($a['q'], $a['w'], $a['e'])) { // OH NO! }
12
87
239
@frankdejonge
Frank de Jonge
5 years
Hey #laravelphp community. While Ignition is pretty sweet, let's not forget how much value Whoops brought when it arrived on the scene. Promoting something newer (or better even) is fine, just be mindful of the people who gave you the "old" things. Be kind.
10
33
235
@frankdejonge
Frank de Jonge
4 years
Harmless duplication: *exists* Developer: I SHALL TURN THIS INTO A COMPLEX ABSTRACTION
11
40
231
@frankdejonge
Frank de Jonge
5 years
Open source is easy. All you have to do is: 1. Find a solution to a universal or common problem. 2. Define goals for the project. 3. Create an MVP that is both appealing to a wide range of developers with varying subjective preferences in coding-styles and architecture.
10
63
230
@frankdejonge
Frank de Jonge
3 years
💡 A little thing I always like to do. Use only "1." for numbered lists in markdown. The list is rendered the same, but adding an item doesn't require you to renumber the other items 🤘
Tweet media one
17
28
224
@frankdejonge
Frank de Jonge
4 years
I can't help it but get angry when I see people criticizing OSS maintainers trying to get funding for their work. It's the most entitled thing ever. Maintainers don't owe you shit, get your head out of your ass.
9
50
208
@frankdejonge
Frank de Jonge
9 months
🥳 All of the #PHP packages I’ve authored have been downloaded a total of ONE BILLION times 😱
14
7
209
@frankdejonge
Frank de Jonge
4 years
Since you all forgot to get ME a present for my birthday, I'll give YOU one. I've put poured my all into this release and hope you'll love it as much as I love gifting it to you. The 2.0.0 release of league/flysystem was just tagged! 🥳
18
25
205
@frankdejonge
Frank de Jonge
5 years
Microsoft: here’s WSL2, also: a Linux Kernel. Apple: SHUT UP, DEVELOPERS! You DO need a touch bar! The future is weird.
6
39
203
@frankdejonge
Frank de Jonge
3 years
As a general rule, NEVER store class names in a database EVER.
44
14
197
@frankdejonge
Frank de Jonge
3 years
1) When something is not written down, people will complain it is not written down. 2) When something is written down, people will not read it.
13
22
200
@frankdejonge
Frank de Jonge
1 year
A friendly reminder that simple duplication is a lot better than early abstractions. You need to experience the re-use case to have the insights required to create the right abstraction. Unless abstractions simplify things, don't introduce them.
12
39
187
@frankdejonge
Frank de Jonge
7 years
A recruiter entered one of #php 's communities ( #phpnl ) and wanted people to sign up for his "developer focused platform" (yeah right). As a good community member I defend my own... and had some fun with recruiters for a change. Feel free to copy my technique:
Tweet media one
13
40
177
@frankdejonge
Frank de Jonge
5 years
The use of mocking frameworks can hurt the maintainability of your code. I wrote a blog post (2000+ words, with code samples) about testing without mocking frameworks: #php #testing
10
60
178
@frankdejonge
Frank de Jonge
3 years
Current status: Writing a blogpost about data consistency and concurrency (PHP)
Tweet media one
5
12
168
@frankdejonge
Frank de Jonge
3 years
A bug fix without a test is a bug waiting to re-appear.
5
30
167
@frankdejonge
Frank de Jonge
3 years
Yay, #flysystem has been downloaded 200 million times. The total package download count now exceeds 400 million, which means that 1 out of 121 packages ever downloaded from @packagist was released by ME 🥳 whooooooooooohoooooo
9
4
167
@frankdejonge
Frank de Jonge
3 years
Flysystem 3.0.0 has just been tagged! 🥳
4
16
167
@frankdejonge
Frank de Jonge
3 years
How I imagine interviewing goes at @laravelphp : Laravel: To kick things off, how would would you describe your ability to create hype? Candidate: It's great that you ask! I can't wait to share this and I'm absolutely sure you will ♥️ the answer 🤩 Laravel: welcome aboard 🤝
4
8
163
@frankdejonge
Frank de Jonge
5 years
#newJob 🚨: Super excited to be able to let you know I'll be joining @MolliePayments ! 💪 I'll start in a little over a week from now, and I'm really looking forward to it 🥳 Thanks again to everybody that shared my "looking for work" tweet 🙌 I really appreciate it!
22
3
156
@frankdejonge
Frank de Jonge
3 years
I want to give praise where praise is due to two people: First is @nikita_ppv who has had a massive and lasting impact on PHP, it's our loss to see him move his attention elsewhere and I wish it wasn't the case. He'll be sorely missed. Thank you so much 🙏
2
12
159
@frankdejonge
Frank de Jonge
6 years
There's currently a duo (a senior and an apprentice) installing a new boiler in our apartment. It's just a joy to hear them work. They're doing all the steps together. Sometimes the apprentice leads the way and sometimes the senior does. It's so inspiring to see! 🤩 here's why:
2
51
146
@frankdejonge
Frank de Jonge
3 years
“Maintainers who use final classes do that because they they think they know better than the consumer” Allow me to provide an alternative, perhaps not often discussed, perspective: opening up to class extension increases the support area for a maintainer. A 🧵
15
27
143
@frankdejonge
Frank de Jonge
3 years
Another day, another production error because mocking frameworks can not be trusted. Mocking framework lie and you lie back to them, then everybody high-fives while we run the car into a wall.
8
16
140
@frankdejonge
Frank de Jonge
6 months
Just don’t mention PHP to them 🙊
@asidorenko_
Alex Sidorenko
6 months
Server-side form validation in Next.js
20
95
773
7
4
137
@frankdejonge
Frank de Jonge
3 years
I'm happy to be able to say that @TobiasNyholm has joined me in maintaining #Flysystem . Tobias has a stellar open source record and I'm happy to have him help out with the project 🥳
2
7
140
@frankdejonge
Frank de Jonge
7 years
Achievement unlocked: Wrote a link in MarkDown without looking up which brackets go where. AMA.
15
8
132
@frankdejonge
Frank de Jonge
1 year
Exactl 10 years ago, the first commit of #flysystem was pushed to @github . I never would have imagined it becoming an essential package in the PHP ecosystem, but here we are. Hundreds of millions of downloads later. Happy birthday, Flysystem, happy birthday to you 🎉
Tweet media one
7
12
138
@frankdejonge
Frank de Jonge
7 years
I've been working on a new open source project. An dead-simple event sourcing library that focuses on developer experience and productivity called EventSauce ( @eventsaucephp ). The API is stabilizing very quickly. Keep an eye out on 🎉
11
44
135
@frankdejonge
Frank de Jonge
3 years
It's 1am, I've just published my first ever CVE. Confirmed, pathed, and published within 2 hours. Still, I feel like such a failure right now. My stress level is through the fucking roof. I'm glad I got it fixed but boy does this feel shit. Time for bed I guess, long day tomorrow
21
3
135
@frankdejonge
Frank de Jonge
4 years
@Ocramius When you “agile” with a deadline, you waterfall on a scrum board. This should be referred to as waterboarding.
3
41
130
@frankdejonge
Frank de Jonge
2 years
Today is my last working day at Mollie, which is a weird feeling. Tomorrow I'm handing in my things and I'll say my goodbyes. After 2 years and 8 months, this journey comes to an end. It's been a wild ride, I've learned a lot. Excited to start a new journey!
19
0
133
@frankdejonge
Frank de Jonge
5 years
People are hoarding food left and right, but even corona-hoarder have limits.
Tweet media one
9
16
131
@frankdejonge
Frank de Jonge
6 years
🎉 #flysystem crossed the 50.000.000 installs milestone! 🎉 #php
9
12
132
@frankdejonge
Frank de Jonge
3 years
The AWS PHP SDK uses 29MB 😱 for every installation. Many people only use a fraction of that source code. I wish @awscloud would use a sub-splitting tool to create smaller distributions; it is better for your deployments and the planet. Join in my request:
10
17
132
@frankdejonge
Frank de Jonge
5 years
It me.
Tweet media one
6
32
129
@frankdejonge
Frank de Jonge
1 year
AI is great because it can generate code for you that almost works. This allows you to remove all of the bad feelings of creating something new and exciting. Instead you can focus on the true joys of programming, debugging broken code somebody else (or thing) wrote.
6
27
127
@frankdejonge
Frank de Jonge
2 years
I see a lot of celebrations about the new Dutch remote-work law that has been put in place. Just so people have the right interpretation, it's good to explain the nuance of this new law. Contrary to what Twitter seems to believe, this does not make it a right to work from home 🧵
2
24
129
@frankdejonge
Frank de Jonge
2 years
Days since I fixed somebody's problem by reading the error message in their screenshot: 0
5
10
130
@frankdejonge
Frank de Jonge
5 years
If you're getting MySQL as a service from your cloud provider ... isn't it then TheirSQL 🤔
12
22
128
@frankdejonge
Frank de Jonge
2 years
Very excited to announce that today I’m starting my new Staff Engineer journey at @PersonioHR 🙌 the entire interviewing process left me very eager to start and today is the day!
19
0
128
@frankdejonge
Frank de Jonge
4 years
Personally, I think filtering and mapping over directory listings is so much nicer in Flysystem V2, can't wait to ship it! 🚀 What do you think of the new API (2nd picture)? #php #flysystem #v2
Tweet media one
Tweet media two
9
13
128
@frankdejonge
Frank de Jonge
4 years
After seeing @enunomaduro create a PR for the PHP core, I can help but getting an itch to do the same to try to see if I could get an Enum type into core (I love enums but hate them in user-land). I think I'll spend some time trying to come up with a logical proposal first.
7
6
123
@frankdejonge
Frank de Jonge
6 years
Deployments should be: - predictable - a commodity - boring - understandable - not special Always try to keep it so. It’s is easy to make something simple complicated, but to make something complicated simple is very very hard.
5
63
123
@frankdejonge
Frank de Jonge
3 years
The second is @taylorotwell , who (many times over) does his share in making PHP sustainable. He is a long time supporter of many open source maintainers and now also PHP as a language. He helps open source package maintainers through his exposure AND helps them financially. TY!🤘
0
5
125
@frankdejonge
Frank de Jonge
6 years
🎉 I'm excited to be able to say that in a couple of weeks I'll be starting as a software engineer at @Uber in Amsterdam! 🎉 I'll be joining a more diverse team than I've ever been part off, which also excites me!
26
1
122
@frankdejonge
Frank de Jonge
4 years
Tweet media one
1
18
122
@frankdejonge
Frank de Jonge
7 years
Working on updating the #flysystem website design. First up: a logo! 😬 Over the next month or so I'll be re-doing all of the documentation. A fresh look makes it so much more motivating to work on.
Tweet media one
12
17
118
@frankdejonge
Frank de Jonge
4 years
Don't be like the "all houses matter" person.
Tweet media one
1
52
115
@frankdejonge
Frank de Jonge
7 years
At times like these, when @packagist is down, realise how much Composer has improved our developer lives. This is a good reminder we should be thanking @naderman and @seldaek more often, not a time to complain about downtime.
2
42
120
@frankdejonge
Frank de Jonge
4 years
When people change your code, you should be proud. Almost always, the conditions that shape the requirements have changed. The fact that people were able to understand, adapt, and improve your code is a signal of quality. Be proud of the code that once was and served its purpose.
5
21
116
@frankdejonge
Frank de Jonge
6 years
Repeat after me: A unit is NOT restricted to a single class. A unit can be anything from a single function to a group of classes. What defines a unit is not based on what the code IS but what it DOES.
10
46
118
@frankdejonge
Frank de Jonge
4 years
Another piece of software design advice: Favor two single-purpose things over one dual-purpose thing. Duplication is a lot cheaper than a wrong abstraction. When too many responsibilities are put in one piece of code, maintainability goes down and accidental complexity goes up.
5
32
116
@frankdejonge
Frank de Jonge
5 years
🤯 The AWESOME people at @jetbrains ( @phpstorm , etc) are sponsoring me to work on #flysystem and @eventsaucephp ! Thank you, JetBrains! 🥳
@frankdejonge
Frank de Jonge
5 years
🚀 w00t, my "all frank's packages total download" counter has crossed the 1️⃣5️⃣0️⃣ million mark! 🚀 Want to help me on my journey to the 200 million? Support me: #php #opensource
1
5
19
6
4
117
@frankdejonge
Frank de Jonge
10 months
Want to use #flysystem , but your boss forces you to write your apps in #nodejs , or god forbid... #typescript ? You're in luck! Because I do not adequately value my free time, you can now use for all your file storage needs. Don't forget to like & subscribe
8
18
117
@frankdejonge
Frank de Jonge
2 years
The naming of your directories (namespaces or modules) should help the reader of your application code to understand what the application is for. ❌: /src/App/Domain/Repository /src/App/Domain/Exception ✅: /src/Hiring/ApplyingForPosition/ /src/Hiring/RespondingToApplications/
10
24
112
@frankdejonge
Frank de Jonge
6 months
RabbitMQ is more undervalued by the tech community than SQLite is.
11
8
116
@frankdejonge
Frank de Jonge
4 years
Some of the best engineering advice I've ever received: Put everything that produces something out of nothing (/dev/random, time) behind an interface and consume it exclusively from there. It works miracles for the testability of your code. It makes input deterministic.
5
30
114
@frankdejonge
Frank de Jonge
4 years
The first release candidate for @thephpleague 's #flysystem is out! I'm aiming to tag 2.0.0 some time next week if nothing weird pops up.
Tweet media one
2
16
112
@frankdejonge
Frank de Jonge
4 years
Nothing motivates open source maintainers like witty complaints in their DM’s. Please join me in thanking Chris for his dedication and relentless support of Flysystem. #php #opensource
Tweet media one
Tweet media two
10
6
111
@frankdejonge
Frank de Jonge
4 years
Actually, it's a vintage codebase.
Tweet media one
7
14
111
@frankdejonge
Frank de Jonge
2 years
🥳 I've been tracking the number of package downloads I've had across all of my packages. It is now over HALF A BILLION! 🤯📢 w00t
5
0
113
@frankdejonge
Frank de Jonge
3 years
🧪 I've been working on an experimental tool that converts structured data (like decoded JSON request bodies) into strict objects. It supports complex objects, custom mapping keys, and property casting. If this is something you'd like, check the WIP here:
12
6
110
@frankdejonge
Frank de Jonge
5 years
Just compare this: #php #rfc
Tweet media one
Tweet media two
@frankdejonge
Frank de Jonge
5 years
Omg, I want this so badly, would add that stuff to @eventsaucephp 's code generation the moment it lands:
3
4
24
7
21
112
@frankdejonge
Frank de Jonge
2 years
Not even born yet and already more handsome than his dad.
Tweet media one
31
0
112
@frankdejonge
Frank de Jonge
3 years
😱 first time on hackernews frontpage!
Tweet media one
6
4
109
@frankdejonge
Frank de Jonge
5 years
My new opensource-asshole response strategy:
Tweet media one
9
5
108
@frankdejonge
Frank de Jonge
9 years
Given enough time, every technical decision will turn out to be the wrong one. Code for change.
3
163
107
@frankdejonge
Frank de Jonge
4 years
Writing code is a thing you do to do the job. It is not the job.
7
24
110
@frankdejonge
Frank de Jonge
5 years
If you want a maintainer to respond to your issue, here's a list of things NOT to say: - Merge please - Please merge now - This needs to be fixed asap - Please fix now - Fix now please - Why is this not fixed? - How come this is not merged? - Is this project still maintained?
10
25
108
@frankdejonge
Frank de Jonge
4 years
@andrey_butov @ericlbarnes The wrong abstraction is far more expensive than duplication. You steer towards incorrect abstraction when you think DRY is about code instead of concepts.
3
21
106
@frankdejonge
Frank de Jonge
3 years
Some dude on Reddit named "Chad" was telling me I'm wrong. Of course, I couldn't let that slide. Chad claims having tests next to your code "pollutes" a consumer's autoloader. I created a repository to prove Chad he is wrong and I'm right.
19
4
111
@frankdejonge
Frank de Jonge
2 years
I've done a ton of #Flysystem work lately. Shipped 4 minor releases in the past month. Added checksums, public URLs, and other improvements. Got a couple more ideas in mind to ship before my personal life changes forever. If all goes well, I'll be a dad before the end of the year
10
0
107
@frankdejonge
Frank de Jonge
7 months
Flysystem on PHP 8.4 ✅
1
4
108
@frankdejonge
Frank de Jonge
4 years
Last month I released Flysystem 2.0, a branch new version. It brings the library up to date with current coding practices and ensures it continues to be relevant tool for modern PHP developers. I've written a little something about it here: #php #flysystem
4
22
104
@frankdejonge
Frank de Jonge
3 years
Before git was around, I used "FTP" and "overwriting what the other dev did in production".
@MarisaBrantley
Marisa Brantley
3 years
Experienced devs... before GitHub was around, what did you use? Microsoft Visual SourceSafe? It's crazy to think there was a time when GitHub didn't exist. 😅
899
109
2K
17
5
102
@frankdejonge
Frank de Jonge
3 years
Complexity in software is caused by trying to make one thing do two things rather than creating two things that each can do one distinct thing.
4
25
104
@frankdejonge
Frank de Jonge
1 year
Kubernetes is more complex than 97,3% of the applications that run on it.
17
15
102
@frankdejonge
Frank de Jonge
3 years
I haven't used ORMs in the last couple of years. I've even come to a place now where I prefer using regular SQL statements and database for things as a default. Highly relational cases I used to have, I don't have them anymore. I just realised I really like not using an ORM.
19
8
101
@frankdejonge
Frank de Jonge
4 years
Don't be the one they can't replace, be the one they don't want to lose.
1
25
99
@frankdejonge
Frank de Jonge
3 years
Another day, another case of harmless duplication turned into complexity because DRY.
7
7
98
@frankdejonge
Frank de Jonge
3 years
When you see developers try model business processes but everything is CRUD
5
21
99