DEV Community

Daniel Pertu profile picture

Daniel Pertu

404 bio not found

Location London Joined Joined on  Personal website https://cogniprep.app

Work

Founder of CogniPrep

Six predicates in this codebase are written twice, once in TypeScript and once in SQL

Six predicates in this codebase are written twice, once in TypeScript and once in SQL

Comments
7 min read

Want to connect with Daniel Pertu?

Create an account to connect with Daniel Pertu. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
Our admin panel can read the inbox and deliberately cannot answer it

Our admin panel can read the inbox and deliberately cannot answer it

Comments
5 min read
Ten rules for writing a page, measured against the 76 pages: six a test holds, four only I do

Ten rules for writing a page, measured against the 76 pages: six a test holds, four only I do

Comments
5 min read
A plan's day is one bar, and a slider can only grow into room that is free

A plan's day is one bar, and a slider can only grow into room that is free

Comments
6 min read
Every panel in our app is a Sheet, and the Dialog file the CLI wrote has zero importers

Every panel in our app is a Sheet, and the Dialog file the CLI wrote has zero importers

Comments
5 min read
Our campaign layout awaits one thing, the URL, and the header streams in behind it

Our campaign layout awaits one thing, the URL, and the header streams in behind it

Comments
6 min read
Three number fields on our free tools, three different places they are clamped, and a comment promising sixteen cards from a sheet of four

Three number fields on our free tools, three different places they are clamped, and a comment promising sixteen cards from a sheet of four

Comments
6 min read
Our stylesheet contains no hex codes, our social card contains five, and our one email contains seven the stylesheet has never heard of

Our stylesheet contains no hex codes, our social card contains five, and our one email contains seven the stylesheet has never heard of

Comments
6 min read
Our site hides every scrollbar, smooth-scrolls for exactly one link, and that link does not scroll

Our site hides every scrollbar, smooth-scrolls for exactly one link, and that link does not scroll

Comments
6 min read
189 exported symbols in our desktop app, 14 that nothing imports, and one of them is a feature with no button

189 exported symbols in our desktop app, 14 that nothing imports, and one of them is a feature with no button

Comments
7 min read
Our HTML names the same 32-character deployment id 6,052 times, and its job is to discard 456 KB of correctly cached JavaScript

Our HTML names the same 32-character deployment id 6,052 times, and its job is to discard 456 KB of correctly cached JavaScript

Comments
5 min read
We write four version numbers to disk and read none of them, and every migration we shipped is a shape check

We write four version numbers to disk and read none of them, and every migration we shipped is a shape check

Comments
6 min read
Our no-em-dash test walks five directories and passes. The repo has 454 of them, and exactly one is in a string.

Our no-em-dash test walks five directories and passes. The repo has 454 of them, and exactly one is in a string.

Comments
5 min read
581 inline icons, 21 shapes between them, and 164 KB of our HTML is the attributes around the drawings

581 inline icons, 21 shapes between them, and 164 KB of our HTML is the attributes around the drawings

Comments
6 min read
Our Electron UI has 37 buttons, 8 aria attributes and one Escape handler, and the modal is not a dialog

Our Electron UI has 37 buttons, 8 aria attributes and one Escape handler, and the modal is not a dialog

Comments
7 min read
I fetched every URL in our sitemap. The homepage still advertises seven conditions, and the app has eight.

I fetched every URL in our sitemap. The homepage still advertises seven conditions, and the app has eight.

Comments
5 min read
Two invisible characters in our Israeli price, a yen sign our font does not have, and 72 pages that all say lang=en

Two invisible characters in our Israeli price, a yen sign our font does not have, and 72 pages that all say lang=en

Comments
7 min read
Account deletion was clearing two cache keys the app had stopped writing, and the test that caught it reads source code

Account deletion was clearing two cache keys the app had stopped writing, and the test that caught it reads source code

Comments
5 min read
A text page on our site ships 1 MB of JavaScript, and 45 per cent of it is the error reporter

A text page on our site ships 1 MB of JavaScript, and 45 per cent of it is the error reporter

Comments
6 min read
A serving stepper that is not allowed to change the answer, and the 608 checks that say it does not

A serving stepper that is not allowed to change the answer, and the 608 checks that say it does not

Comments
5 min read
I measured the title and description of all 461 generated pages, and exactly one of them loses the brand name

I measured the title and description of all 461 generated pages, and exactly one of them loses the brand name

Comments
5 min read
We call notFound() four times and never wrote the page it lands on, and the default has zero links

We call notFound() four times and never wrote the page it lands on, and the default has zero links

Comments
7 min read
Our interviewer's voice is cached by a hash of the model, the voice, the instructions and the question

Our interviewer's voice is cached by a hash of the model, the voice, the instructions and the question

Comments
4 min read
Our privacy policy names the two fields our app sends us, and the alert request has nine

Our privacy policy names the two fields our app sends us, and the alert request has nine

Comments
8 min read
A whole second interview format cost us two columns, one CHECK constraint and a 312-byte migration

A whole second interview format cost us two columns, one CHECK constraint and a 312-byte migration

Comments
4 min read
Whisper transcribes silence as "Thanks for watching!", so we wrote a function that calls it silence

Whisper transcribes silence as "Thanks for watching!", so we wrote a function that calls it silence

Comments
4 min read
Our eighth condition was 63 changed files, and the number eight is typed in none of them

Our eighth condition was 63 changed files, and the number eight is typed in none of them

Comments
5 min read
Two MediaRecorders on one stream: the audio we upload and the video that never leaves the device

Two MediaRecorders on one stream: the audio we upload and the video that never leaves the device

Comments
4 min read
We deleted the part of our interview feedback that scored your face, and the privacy policy went to 1.9.0

We deleted the part of our interview feedback that scored your face, and the privacy policy went to 1.9.0

Comments
5 min read
Our interview guide cluster went from 5 pages to 14, and the new code is a three-value union

Our interview guide cluster went from 5 pages to 14, and the new code is a three-value union

Comments
4 min read
Our 266 tests have never run anywhere but this laptop, and I found out two of them are red by running them

Our 266 tests have never run anywhere but this laptop, and I found out two of them are red by running them

2
Comments
4 min read
Two of our pages answer DELETE with the whole page, the other 70 answer 405, and we never wrote a line about HTTP methods

Two of our pages answer DELETE with the whole page, the other 70 answer 405, and we never wrote a line about HTTP methods

1
Comments
5 min read
With JavaScript off our dark site renders white, and there is no noscript tag on any of its 72 pages

With JavaScript off our dark site renders white, and there is no noscript tag on any of its 72 pages

2
Comments
5 min read
94 page files, zero dynamic routes, and 67 pages that write their own URL twice with nothing checking the folder

94 page files, zero dynamic routes, and 67 pages that write their own URL twice with nothing checking the folder

1
Comments
4 min read
635 paragraphs on our site cannot contain a link, because the page body is data and not JSX

635 paragraphs on our site cannot contain a link, because the page body is data and not JSX

1
Comments 1
4 min read
13.3 per cent of our HTML is class attributes, 324 distinct strings doing it, and the proof tailwind-merge works is a class that is missing

13.3 per cent of our HTML is class attributes, 324 distinct strings doing it, and the proof tailwind-merge works is a class that is missing

1
Comments
5 min read
All 516 of our pages have exactly one h1, no skip link, and skip a heading level in exactly the same place

All 516 of our pages have exactly one h1, no skip link, and skip a heading level in exactly the same place

1
Comments
5 min read
Our updater is the download page, and the one string that stops a reinstall wiping your licence is productName

Our updater is the download page, and the one string that stops a reinstall wiping your licence is productName

Comments
7 min read
Eight entries in one content array, 1,041 to 2,034 words each, and the optional field that has exactly one user

Eight entries in one content array, 1,041 to 2,034 words each, and the optional field that has exactly one user

Comments
4 min read
56 pages that answer the same question, 12 to 21 percent shared text, and three of them collect every related link

56 pages that answer the same question, 12 to 21 percent shared text, and three of them collect every related link

1
Comments
5 min read
Two of our pages are 1,065 and 1,083 words long, and the reading times under their titles say 6 minutes and 8 minutes

Two of our pages are 1,065 and 1,083 words long, and the reading times under their titles say 6 minutes and 8 minutes

1
Comments
6 min read
Our only patched dependency spells its version in four places by hand, and the install checks three of them

Our only patched dependency spells its version in four places by hand, and the install checks three of them

1
Comments
4 min read
Half of our revalidatePath calls name a layout, and a streaming campaign header is the reason

Half of our revalidatePath calls name a layout, and a streaming campaign header is the reason

1
Comments
6 min read
47 of our 516 pages carry the same Organization node twice, and the fix is deleting one argument

47 of our 516 pages carry the same Organization node twice, and the fix is deleting one argument

Comments
5 min read
Our desktop app has to tell us which price it showed, and a build that cannot is charged £20 instead of €24.99

Our desktop app has to tell us which price it showed, and a build that cannot is charged £20 instead of €24.99

Comments
7 min read
Seventeen words for eight database values, and a dot that only pulses when work is actually running

Seventeen words for eight database values, and a dot that only pulses when work is actually running

Comments
6 min read
Our homepage serves 24 logo elements for 12 logo files, and four more files nobody has ever requested

Our homepage serves 24 logo elements for 12 logo files, and four more files nobody has ever requested

Comments
4 min read
Five things an operator can do to somebody else's account, and the audit row names the account rather than the operator

Five things an operator can do to somebody else's account, and the audit row names the account rather than the operator

Comments
6 min read
A 436-word static page on our site downloads 263 KB of JavaScript, and a quarter of it is a realtime client we never open

A 436-word static page on our site downloads 263 KB of JavaScript, and a quarter of it is a realtime client we never open

Comments
4 min read
We drop DMARC reports by looking for "dmarc" in the subject, and the spec's own subject line does not contain the word

We drop DMARC reports by looking for "dmarc" in the subject, and the spec's own subject line does not contain the word

Comments
6 min read
69 of our 99 articles point at the same one, and 28 of them are never pointed at by anything

69 of our 99 articles point at the same one, and 28 of them are never pointed at by anything

Comments
4 min read
The home screen of our app stores nothing about itself, and two of its panels can delete themselves

The home screen of our app stores nothing about itself, and two of its panels can delete themselves

Comments
5 min read
Every page on our site but one is styled by a class called legal, and three of them are legal pages

Every page on our site but one is styled by a class called legal, and three of them are legal pages

Comments
5 min read
Nine places in our app answer "you are here", and they do it with four different values of aria-current

Nine places in our app answer "you are here", and they do it with four different values of aria-current

Comments
5 min read
Our two self-hosted fonts hold 222 and 230 codepoints, and the arrow on our homepage is in neither

Our two self-hosted fonts hold 222 and 230 codepoints, and the arrow on our homepage is in neither

Comments
6 min read
Four ways to pick a date locale in one app, and only the newest one asks the data

Four ways to pick a date locale in one app, and only the newest one asks the data

Comments
5 min read
Nineteen route handlers, nine ways of proving who you are, and six answers for a stranger

Nineteen route handlers, nine ways of proving who you are, and six answers for a stranger

Comments
6 min read
Ten Server Actions, five form elements, and the hook argument two of them are handed by hand

Ten Server Actions, five form elements, and the hook argument two of them are handed by hand

Comments
4 min read
Two options on our desktop notification name three platforms between them, and not one of them is macOS

Two options on our desktop notification name three platforms between them, and not one of them is macOS

Comments
5 min read
We wrote force-dynamic 81 times, and the one route that forgot it behaves identically

We wrote force-dynamic 81 times, and the one route that forgot it behaves identically

Comments
5 min read
loading...