333 private links
1.As a software engineer, you are not there to take requirements blindly. You are there to partner with your business and product partners. That means you have to earn an equal seat at the table on product decisions.
- Being smart or good at what you do does not give you the right to be a jerk. Empathy as an engineer is a superpower. Caring about those you work with will do more for your career than writing beautiful defect-free code.
- As someone in the code, every day, you will see things that others will never see. You will know what's possible; they'll guess what's possible. Some of the best product features are born because engineers found clever ways to solve something. Look out for those things.
- You are there to add value first. All the code you wrote will end up in the recycling bin of some computer if it does not add value directly or indirectly to the business. It doesn't matter how pretty your code is or how much you love it if it doesn't add value.
- Your code should follow this pattern: Make it work → Make it fast → Make it beautiful [make it right is included in the make it work IMHO]. Reminder: You won't have a chance to make it fast or beautiful if it doesn't add value.
- Build relationships with engineers in other teams and other companies. Learn about the problems they are solving. Learn different architecture and designs than the ones your team uses. You never know when their solutions will save you days of work.
- You don't need permission to add value. If you see something and know you can fix or improve it, do it. Nobody will ever say to you, "why did you add all that value? WTF is wrong with you!?" Every time I've done that unexpectedly, I've earned outsized rewards.
- 10x engineers do exist and so do .1x engineers too. If you think they don’t exist, that’s just because you haven’t worked with any of them yet.
- Just because you think someone shouldn’t be hired, that does not mean they aren’t a good engineer. It also does not mean they don’t have a strong work ethic. A strong work ethic is the most important thing, and it's nearly impossible to tease out in an interview.
- Advocate for junior engineers. Without junior engineers on the team, no one will grow. Help others grow; you'll grow too.
- Have empathy for the people you interview. You could be in that situation. The set of things to know is large, even if you only ask basics. Plus, on a whiteboard, the other person is being judged. They have a lot to lose, maybe hundreds of thousands in income.
- Even though you work with computers, your career and future depend on people. Until AI runs things, people still run the world, and relationships matter a lot. Build relationships with people outside of engineering, listen to their problems. It will change your trajectory.
Le message que je transmets aux nouveaux c’est « Pose toutes les questions maintenant, même celles qui te paraissent honteuses, parce que plus tu tardes plus tu auras honte de ne toujours pas savoir. L’intégration dans l’équipe t’offre l’opportunité de le faire. »
A more subtle unspoken rule dictates approximately how long you are expected to struggle with something by yourself before asking someone else to help you.
J'ai passé plusieurs décennies à écrire du C et du C++, voire même un peu d'ASM. Et franchement, je suis admiratif des quelques codeurs "safe".
C'est comme jongler avec des tronçonneuses: ce n'est pas parce-que certain y arrivent qu'il faut en faire une recommandation.
Mentoring for the win. But how frequent?The author thinks about once a week
Pas que d’eux, évidemment, mais aussi d’eux. Parce que les maux ne s’annulent pas, ils s’additionnent, mais aussi parce que si on s’autorise à ne pas respecter les droits du voisin en jugeant qu’il ne le mérite pas, je m’expose à ce qu’on ne respecte pas les miens le jour où quelqu’un jugera que je ne le mérite pas.
Ne pas dire « oui mais de toutes façons c’est un salaud » est ce qui différencie l’État de droit de la vengeance arbitraire et du lynchage public.
Parce qu'on mutualise les coûts pour les entreprises, et qu'il est préférable de payer pour se faire aider dans l'exploitation de ces logiciels. On ne paie qu'avec la valeur recue plutôt que les licences :)
Ahaha the catchphrase
In short, the information age needs an information super-highway and not just a big pipe for interactive documents.
About academia and industry:
Academia is structured in a way that there is very little incentive for anyone to build usable software. Instead you are elevated for rapidly throwing together an idea, a tiny proof of concept, and to iterate on microscopic variations of this thing to produce as many papers as possible.
In engineering the devil is in the detail. You really need to get into the weeds before you can know what the right thing to do is. This is simultaneously a devastating situation for industry and academia. Nobody is going to wait around for a team of engineers to finish building a system to write about it in Academia. You'll be passed immediately by legions of paper pushers. And in industry, you can't just be mucking about with a system that you might have to throw away.
And Semantic Web seems to be something to learn about: https://en.wikipedia.org/wiki/Semantic_Web
J’ai souvent eu cet échange avec les leads et les staffs. Oui, tu l’as dit. Oui ça n’a pas fonctionné. Ce n’est pas que tu es impuissant ou que les personnes sont de mauvaises volonté. Ce n’est même pas un échec. C’est qu’il va falloir le répéter, le répéter, et le répéter encore.
Si un avortement m’expose à des poursuites pour meurtre, alors autant que je tue mon violeur.
Provocative, but I agree too.
Une écologie à deux vitesses
Effectivement, tant qu'on tape sur les méchants qui prennent la voiture alors que les transports publics ne sont pas autant pratique dans les régions de France, ce comportement n'est pas productif.
Things weren't simpler when you were younger.
You were just too young to know about a lot of the world's problems.
👍
Dès notre plus jeune âge, on a un idéal de performance. On aime notre sportif préféré quand il gagne et on le délaisse quand il perd. On est félicité quand on gagne et on disparait quand on perd.
Le problème ? C’est que garder cette croyance à l’âge adulte explique notre stagnation.
Pourquoi ? Parce qu’elle nous interdit la moindre erreur. On s’impose toujours plus de performance, sans accepter les baisses de régime liés aux cycles naturels de la vie.
Ai on a la croyance que notre performance doit toujours augmenter, on est programmé pour l’échec.
Au contraire, nous vivons des cycles. Donc si nous n'acceptons pas de descendre de temps en temps, nous ne pouvons tout simplement pas monter.
→ la vie est faite de cycles et c’est ce qui nous permet de grandir.
Car force est de constater que la production du confort n’a pas été mise au service de l’intérêt général : après avoir comblé les besoins essentiels de la population, l’industrie aurait pu ralentir sa croissance, chercher à augmenter la durée de vie de ses produits et réduire ses effets sur l’environnement
Pourquoi continues-t-on dans cette direction
Un exemple : lorsqu’il achète de la viande de lapin tranchée sous cellophane, débarrassée, donc, de tout viscère et autre signe de vie particulier (poils, pupilles), il s’épargne certes la confrontation avec la mort, mais devient un « nihiliste passif », complice inavoué de la violence industrielle, en l’occurrence celle exercée contre les animaux
Effectivement et c'est face à cette confrontation que je suis devenu végétarien.
Les objets que nous manipulos sont fortables, mais dépourvus de tout arrière-plan sensible
Effectivement, la pensée, morale ou sensibilité est absente des objets du quotidien.
Formalizing REST APIs
My API is up to level 2 on the Richardson Maturity Model. So my API is more an HTTP+JSON RPC than Rest.
The short answer to this question is that HATEOAS isn’t a good fit for most modern use cases for APIs. That is why after almost 20 years, HATEOAS still hasn’t gained wide adoption among developers. GraphQL on the other hand is spreading like wildfire because it solves real-world problems. ‒ GraphQL and REST Level 3 (HATEOAS)
I feel this feeling too that something is wrong
Vous connaissez la différence entre : "Nous accélérons notre préparation" et "Nous rattrapons notre retard" ? Tout est dans l'anticipation. ‒ Thinkerview
C'est l'été le plus chaud de ma vie 😱
C'est l'été le plus froid du reste de ta vie 😌
But nuclear is the problem 🤦♂️
The internet is full of fights about Go vs. Rust. But I think the fascinating thing is how similar their developer tooling experience is.
You don’t need to wonder what the best tool to use for testing, fuzzing, packaging or linting is.
Tooling innovation happens, new languages adopt and standardize on it, and end up incrementally better than existing languages.
Package manager state of the art: cargo and rustup
Documentation state of the art: docs.rs
Formatting state of the art: gofmt, rustfmt, zigfmt