264 private links
An other another personal blog about programming :)
Mostly about Cypress and testing stuff, also related to web development.
Great tips indeed
Code itself won't tell you about the decisions and rationale behind it, nor about about higher-level structures and abstractions. All this needs elaboration in documentation.
👍
Séparer les dépendances au maximum
You have already a lot of features, so don't loose your time.
That's what I think.
And I also totally agree with this blog post
Your productivity is now less important than the productivity of the whole team.
If one universal talent separates successful leaders from the pack, it’s communication skills. It doesn’t matter whether you choose to dive deep into technology, or become a manager — if you can’t communicate and listen to what other people are saying, your career growth from this point on will suffer.
On s’adresse à tous ceux qui veulent progresser au delà du stade de développeur senior à 5 – 10 ans d’expérience.
Les katas "sont pensés pour permettre d’introduire une idée ou une pratique bien précise, mais je ne pense pas qu’ils permettent de progresser très loin"
Et les problèmes spécifiques aux entretiens d'embauches: "sont un autre cas : certains couvrent des sujets fondamentaux d’algorithmique (écrire un arbre binaire…), d’autres sont plutôt des puzzles où la connaissance nécessaire pour les résoudre n’est utile qu’à la résolution de ce type de problème."
La répétition est aussi peu utile.
Une manière de s’entraîner, mais j’ai l’impression souvent peu structurée, est de faire des mini-projets, par exemple en réimplémentant des versions simplifiées outils qu’on a l’habitude d’utiliser.
Cependant, l'apprentissage n'est pas le même pendant ce mini-projet.
Ma suggestion, pour les personnes qui développent des mini-projets et qui veulent en parler, serait donc de documenter ces éléments (durée du projet, domaines couverts, moments où on apprend le plus de choses) pour que d’autres puissent en profiter.
This role requires you to have a good sense of the overall architecture of your systems and a solid understanding of how to design complex software. It probably also requires you to be able to understand business requirements and translate them into software. »
Un facteur souvent oublié est le prise en compte des besoins de l*entreprise.
Les facteurs sens commercial, stratégie de développement, partenariat, vélocité, coûts représentent des finalités par rapport au simple outils que sont la dette technique ou nos qualités techniques.
Le senior s’arrêtera à « il faut faire comme ça » alors que j’attends des rôles de lead et de staff la reflexion de « oui mais ce dont nous avons besoin aujourd’hui c’est … ».
Comme enseigné et illustré en cours d'agilité:
Communiquer au plus tôt de la façon la plus transparente possible. Non seulement ça permettra de répondre au problème plus tôt, mais ça diminuera le stress de tout le monde.
La règle : On ne blâmera jamais quelqu’un pour lever de façon constructive une alerte, y compris très tôt. On pourra par contre reprocher de ne pas l’avoir fait.
L’important n’est pas de pointer l’expertise, de savoir que vous découpez mieux le code ou que vous faites moins d’erreur d’architecture. L’important est de savoir quel est l’impact que vous avez dans l’équipe.
Vous pouvez avoir un fort impact par votre seule expertise technique. C’est possible mais difficile, parce qu’il faudra une sacré expertise technique pour justifier qu’elle vous fasse passer au niveau suivant. Il est probable que, même avec une expertise de pointe, les compétences humaines comme la communication avec les autres, votre volonté à prendre des responsabilités ou la façon dont vous les gérez, ou encore votre propension à faire grandir les personnes autour de vous, vous retienne d’avoir l’impact auquel vous prétendez. Ce sont ces compétences là qui vont jouer le plus.
Ultimately, the value of planning isn’t that you execute the plan perfectly, that you catch every detail beforehand, or that you predict the future; it’s that you enforce the self-discipline to think about the project in some depth before diving in and seeing what happens. […] The plan itself, however accurate it turns out, is less important than spending time on the act of planning. »
I totally agree. It is god damn hard to make accurate estimations about software development, because it is hard to know what will work or breaks and because the specifications are never complete until the full development
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.
Donner les attendus, à la fois en comportement et en objectifs, c’est donner les moyens à la personne de faire le nécessaire pour y arriver… et éventuellement demander de l’aide s’il leur manque quelque chose ou si elle ne sait pas comment faire.
Même ensuite, les grilles de compétences sont un très bon outil pour expliciter les attendus de chaque rôle. Pas de « ce n’est pas mon boulot » ou de « est-ce que c’est dans mon rôle ? », ni en amont ni au moment du retour annuel. Ce n’est pas un cadre fait pour brider, mais au moins on explicite à l’avance ce qui est attendu de chacun.
Going from framework consumer to framework creator
Starting from language proficiency to data structures and algorithms to Design Patterns
A cool definition for design patterns: a solid architecture that are reusable and extensible and that are industry standards
Useful resources. I will check it out.
In fact, a good way of pricing your work is by asking yourself what salary would make you enthusiastic enough to be heavily invested in the product and deliver your best work.
People usually stay in the same company for 12-18 months (in the U.S.).
If you feel valued and appreciated, the team is great and salary is fine, consider staying in the same company for around 2–3 years.
-
Keep record of your achievements
-
Pay attention to your estimates
6 productive hours per day
-
Test the company during the probation period
8 Think about passive income early
there was too much at stake to not write the documentation first.
Maybe for my masterthesis ? :D
Pourquoi l’équipe tech applaudit une mise en prod réussie ?
Parce que c’est le cloud du spectacle !
Junior dev → programming all day with 4 screens in a terminal
Senior dev → in a farm
Resume signals value from human to corporations.
Blog singals value from human to human.
People used to be defined by where they work, and now they’re defined by their knowledge, capabilities, and opinions.
And because of that, the resume is no longer the main artifact of your public worth. The replacement is [...] having a domain name where you put all your stuff. A digital avatar of yourself.
Le planning poker, ou "l'opposition est moins directe que des ouvrier·ère·s qui demandent de travailler moins ou de simplement maîtriser leur rythme de travail, mais c’est tout de même la même chose qui se joue."
Un pro doit avoir des demandes centré pour le bien commun.