HNHacker News
TopNewBestAskShowJobs

minaguib

410 karma · joined December 9, 2011

Mina Naguib, firstname at lastname dot ca, https://www.linkedin.com/in/minaguib/
submissionscomments
minaguib··on GitHub Outage Tracker: Is GitHub Cooked?
Paying enterprise clients who can not push/pull code and collaborate on PRs (table-stakes) disagree with having a little more sympathy.
minaguib··on Kill The Cookie Banner
FWIW, Legislation IS what brought us here in the first place :)
minaguib··on Understanding Neural Network, Visually
Cool intro and visuals.

Where it ends "how do we calculate the weights ?" is fairly simple.

Start completely randomly and compare output to known truth. When it's incorrect, you beat the model up pretty badly and repeat again. Eventually you get the correct answer pretty consistently.

... and by "beat it up" I mean tweak the weights - totally randomly will work but will take a long time (brute force), so we add a bit of intelligence to see which direction to tweak via some algorithms (backpropagation, gradient descent).

minaguib··on IPv6 is not insecure because it lacks a NAT
Agreed with the main message.

... but

An incoming message to an IPv4 NAT router will not be forwarded to a LAN device unless it matches a known flow (typically continuation of a conversation, typically initiated by the LAN device, which is expected), or the user set up a DMZ forward to a particular destination. There is actually no reasonable way for non-DMZ LAN devices to be exposed to the noise.

For non-NAT IPv6, sure a firewall might be on by default, but it can be turned off - and therein lies the potential exposure to every LAN device to directed traffic.

In other words, the risky zone for IPv4 NAT tends to be setting up a DMZ exposing 1 device, while the risky zone for IPv6 non-firewalled tends to be exposing all of the devices behind the router.

minaguib··on Things that aren't doing the thing
Related: "Do the Real Thing" by Scott Young (2020): https://www.scotthyoung.com/blog/2020/05/04/do-the-real-thin...
minaguib··on The bloat of edge-case first libraries
Entirely unrelated to the topic, but my mind was blown when I recently learnt that clamp() can be implemented via .median(val, low, high), and the param order doesn't matter!
minaguib··on Ask HN: Who is hiring? (August 2025)
Perion | Advertising Technology | https://perion.com/ | Hybrid (Onsite+WFH)

Hiring software engineers across different locations and teams:

-

Tel Aviv:

Back End (Go) developer: High-performance edge ad auction systems

Data Scientist: Multiple ML and AI initiatives (internal systems as well as client-facing)

-

Montreal:

Data Engineer: Advertising (big data, for real!) data processing systems

Back End (Python) developer: Working on a (tastefully-designed) set of python transactional microservices serving the core business web application and APIs

-

If you see yourself as a good fit for the roles in the above locations, please browse the job descriptions on our web site ( https://perion.com/careers/ ) and reach out to me directly - my contact info is in my HN profile bio.

minaguib··on Vibe code is legacy code
Agreed with you. I've always told people all code "rusts" (not a language reference) - in multiple ways: the original author's mental model, the contributors, institutional knowledge, and the supporting ecosystem and dependencies. All code atrophies towards being legacy and debt. The more the worse. AI Vibe coding simply creates much more of it, much faster.
minaguib··on Show HN: CSS generator for a high-def glass effect
Looks good

Not a lot of web sites have made my Macbook M3 show signs of stress ;)

minaguib··on Event – Fast, In-Process Event Dispatcher
OP: the readme could really benefit from a section describing the underlying methodology, and comparing it to other approaches (Go channels, LMAX, etc...)
minaguib··on Show HN: MidWord – A Word-Guessing Game
I'll look into these. Thank you.
minaguib··on Show HN: MidWord – A Word-Guessing Game
No it's intentional. The highlight is what I call a "known prefix"

It's a hint to tell you the word starts with "s", but since you didn't narrow it down to "su..." or "sv..." it's not giving you more hints.

Once you narrow it down further, say, "sub..." and "sun..." it'll highlight the known prefix "su"

minaguib··on Show HN: MidWord – A Word-Guessing Game
Aah - not sure why it stopped responding, sorry about that.

I'll try to add some local state management so a refresh for a game doesn't lose progress.

minaguib··on Show HN: MidWord – A Word-Guessing Game
I've always been a backend/systems kind of guy.

For the frontend for this I used Vue.JS as a learning experience. Overall it was straightforward and quite pleasant.

The hardest part was the mental process of giving up on server-side business logic enforcement (such as anti-cheating). At the end of the day ... "it's just a game" :)

minaguib··on Show HN: MidWord – A Word-Guessing Game
Thanks - cleaned up the list a bit with the help of AI
minaguib··on Show HN: MidWord – A Word-Guessing Game
Thanks - I've removed the pattern validation for now
minaguib··on Show HN: MidWord – A Word-Guessing Game
I have a decade's worth of guess statistics per word.

Unfortunately, I just converted it to a frontend-only app to eliminate hosting costs, so I have no good location to keep tracking these stats.

Theoretically, "Oxford English Dictionary estimates that there are around 171,476 words currently in use in the English language", the log2() of which is around 17.38 - I have no historical data for 'volatile'

minaguib··on Show HN: MidWord – A Word-Guessing Game
It's a random word each game (but the URL is shareable with a friend to play the same word).

TBH I've had it up as-is for a decade as a classical web app, but just converted it to a frontend-only app to eliminate most hosting costs.

minaguib··on Show HN: MidWord – A Word-Guessing Game
I like it as well - especially the logical top-input-bottom layout
minaguib··on TIL: timeout in Bash scripts
In _this_ particular case, you could just tell curl to internally timeout the request (via `-m`) instead of trying to manage the timeout on the process level
minaguib··on Stupid Smart Pointers in C
As someone who has been designing, writing, and operating high-performance systems for decades, I can guarantee you that it does not boil down to "laziness".

Everyone starts with the best of intentions. malloc() and free() pairs. Then inevitable complexity comes in - the function gets split to multiple, then across modules, and maybe even across systems/services (for other shareable resources).

The mental overhead of ensuring the releases grows. It _is_ hard, and that's most definitely not a lie beyond any trivial implementation.

Surprisingly "just design systems that manage their memory correctly", as you said, is a very legitimate solution. It just so happens that those systems need good language support, to offload a good chunk of the complexity from the programmer's brain to the machine.

minaguib··on Show HN: Seen – Virtual list rendering with 1M+ notes
Good stuff, but if you wanna bring it up a few notches see https://everyuuid.com/
minaguib··on Great CPAN modules released last week
What a blast from the past - the CGI library is still receiving some love...
minaguib··on Ask HN: Who is hiring? (December 2024)
Hivestack by Perion | Montreal, QC (Hybrid Office/Remote) | Full Time Industry: AdTech, specializing in Digital Out Of Home

I'm hiring for two engineering lead positions (senior/staff level):

* Edge Discipline Lead (Ad Bidding & Delivery): This position leads the team responsible for the high-volume low-latency ad bidding and delivery systems - a particularly good fit for someone who enjoys systems performance engineering, architecture, while still being hands-on

* Application Discipline Lead (Backend APIs) - This position leads the team responsible for the key platform APIs our frontends as well as external clients interact with - a particularly good fit for a python afficionado who also enjoys architecture, microservices, databases, while still being hands-on

Full job descriptions: https://www.hivestack.com/careers/

If you're interested, get in touch :) (contact info in bio)

minaguib··on Gladiator Style Interviewing
That's a lot of rules.

Ask everyone to cement their thoughts in a computerized form ahead of the meeting. Bonus points if done immediately after the interview ends.

It can be freeform, or discrete items, or a mix of both. It also acts as a good paper trail for any future interactions between your company and the candidate.

minaguib··on Ask HN: Who is hiring? (July 2024)
Hivestack by Perion | Montreal, QC (Hybrid Office/Remote) | Full Time Industry: AdTech, specializing in Digital Out Of Home

I'm hiring for two engineering lead positions (senior/staff level):

* Data Discipline Lead - this includes driving the architecture and technical roadmap, and the implementation of various technologies to support adtech-scale ingestion, transport, processing, warehousing, and reporting.

* Edge Discipline Lead (Ad Bidding & Delivery): This position leads the team responsible for the high-volume low-latency ad bidding and delivery systems - a particularly good fit for someone who enjoys systems performance engineering, architecture, while still being hands-on

Full job descriptions: https://www.hivestack.com/careers/

If you're interested, get in touch :) (contact info in bio)

minaguib··on Ask HN: Who is hiring? (June 2024)
Hivestack by Perion | Montreal, QC (Hybrid Office/Remote) | Full Time

Industry: AdTech, specializing in Digital Out Of Home

We are hiring in multiple positions in R&D:

* Senior/staff-level data engineer to lead our data discipline - this includes driving the architecture and technical roadmap, and the implementation of various technologies to support adtech-scale ingestion, transport, processing, warehousing, and reporting.

* Back-end developers (python & Go) to work on both the application/transactional portion of the platform as well as the high-performance edge layer

Full job descriptions: https://www.hivestack.com/careers/

If you've got the chops, get in touch :) (contact info in bio)

minaguib··on Ask HN: Who is hiring? (April 2024)
Hivestack | Data Discipline Lead (Senior/Staff-Level Position) | Montreal, QC (Hybrid Office/Remote) | Full Time

Industry: Adtech, specializing in Digital Out Of Home

We are hiring a senior data engineer to lead our data discipline - this includes driving the architecture and technical roadmap, and the implementation of various technologies to support adtech-scale ingestion, transport, processing, warehousing, and reporting.

Full job description: https://boards.greenhouse.io/hivestack/jobs/4341464006

If you enjoy big (and small) data, get in touch :) (contact info in bio)

minaguib··on The browser's biggest TLS mistake
I agree with the author that the non-deterministic portion of it is mildly insane.

Imagine a junior admin who installs a new certificate (without the intermediate). Tests on their Chrome which happens to have cached the intermediate, validate LGTM and moves on.

Meanwhile it gets deployed and some portion of the site's users don't have the intermediate certificate cached = dungeon collapse.

minaguib··on Ask HN: How to admit that you don't want to be on the manager track anymore?
This is more common than you think. So long as you know what you want as an outcome, don't overthink it. Unless you're working with higher-than-average levels of sociopathy, you'll find that you can talk about it and transition to something you find more rewarding.

Also try not to frame it as something shameful/step-down. Individual Contributors and Management are entirely different jobs - clearest evidence of that is what your calendar and day-to-day look like. There's some overlap, but it's a pivot, and that's okay.

(P.S. Stick with the personal trainer and running group :)

Good luck.

Page 1 of 5Next →