Misc
-
What distinguishes great software engineers? [๐ฌ๐ง] [Dec 2019]
-
Another summary from the other blogger.
A paper by Microsoft researchers to identify the most important attributes that distinguish great engineers:
Importance Attribute Must
Pays attention to coding details, such as error handling, memory, performance, style
Must
Mentally capable of handling complexity; can comprehend multiple interacting software components
Must
Continuously improving: improves themselves, their product, or their surroundings
Must
Honest: provide credible information and feedback that others can act on
Must
Open-minded: lets new information change their thinking
Must
Executes: knows when to stop thinking and to start doing
Must
Self-reliant: gets things done independently and does not get blocked easily
Must
Self-reflecting: recognizes when things are going wrong with a plan and pivots
Must
Persevering: not dissuaded by setbacks and failures
Must
Fits together with other pieces around it: code accounts for surrounding constraints and products.
Must
Knowledgeable about their technical domain, including product, platform, and competitors
Must
Makes informed trade-offs: code is responsive to time to market goals, critical needs of the business
Must
Updates their decision making knowledge: does not let their understanding stagnate
Must
Curious: desires to know why things happen and how things work
Must
Evolving: code is structured to be effectively built, delivered, and updated incrementally.
Should
Knowledgeable about tools and building materials: knows strengths and weaknesses of code
Should
Grows their ability to make good decisions: builds understanding of possible outcomes of decisions
Should
Sees the forest and the trees: reasons through situations at multiple levels of abstraction
Should
Craftsmanship: wants their output to be a reflection of their skills and abilities
Should
Does due diligence beforehand: examines available information before deciding
Should
Elegant: designs solutions that others can understand and appreciate
Should
Asks for help: knows the limits of their knowledge and supplements it with knowledge of others
Should
Desires to turn ideas into reality: takes pleasure in building software
Should
Long-termed: considers costs and benefits over time, not just short-term goals
Should
Willing to go into the unknown: can step outside of comfort zone to explore a new area
Should
Is a good listener: effectively obtains, comprehends, and understands othersโ knowledge
Should
Passionate: intrinsically interested in the area they are working in
Should
Manages expectations: clearly communicates what they are going to do and by when
Should
Focused: prioritizes time for the most impactful work
Should
Systematic: address problems in an organized, principled manner
Should
Adapts to new settings: continues to be valuable to the organization as environment changes
Should
Integrates understandings of others: can build a more complete understanding with others
Should
Does not make it personal: avoids deciding based on individual goals and feelings
Should
Creative: generates novel and innovative solutions based on the context and its limitations
Should
Walks-the-walk: acts as an exemplar for others to follow
Should
Knowledgeable about software engineering processes: knows the bests practices and techniques
Should
Anticipates needs: proactively determines potential problems and needs
Should
Uses the right processes during construction: uses best practices and techniques to construct software
Should
Resists external pressure for the good of the software product: stands firm against outside pressures
Should
Has a good reputation: has the belief, respect, trust, and confidence of others
Should
Productive: achieves the same results as others faster
Helps
Knowledgeable about customers and business: understands their productโs value proposition
Helps
Creates shared understanding with others: shapes othersโ knowledge via effective communication
Helps
Creates shared success for everyone: establishes long-term goals that everyone can buy into
Helps
Aligned with organizational goals: takes actions for the good of the product and the organization
Helps
Well-mannered: treats others with respect
Helps
Data-driven: lets data drive actions, not solely intuition
Helps
Creates a safe haven for others: frees others to make decisions based on what is right, not fear
Helps
Mentoring: teaches, guides, and supports other developers
Helps
Knowledgeable about people and the organization: aware of othersโ responsibilities and knowledge
Helps
Challenges others to improve: encourages expanding capabilities and goals
Helps
Personable: establishes trusting, positive social relationships
Helps
Hardworking: is willing to work more than 8 hour days to deliver
Helps
Trades favors: builds personal equity with others allowing them to call upon others later
-
-
A CLI that writes your git commit messages for you with AI. Beware: it sends your code to OpenAI!