In parallel
Soft Skills
Software is built by teams, so communicating well, giving and receiving feedback and collaborating matter as much as writing good code. These are the skills I value most in someone who works with me.
Topics
Teaching
Public Speaking, Talks, Presentations, Writing, Mentoring
Teamwork
Collaborating and helping create a psychologically safe environment. Being approachable and having interpersonal communication skills. Being friendly. Being helpful. Being patient with people. Being respectful to others. Being empathic: putting yourself in the other person's shoes to understand the problems they face. Not being a lone hero. Being humble and admitting your own mistakes. Discussing the problems that arise with coworkers, articulating the project needs, listening and accepting criticism. Welcoming healthy conflict. Having productive debates before designing solutions or making decisions. Attacking problems, not people. Negotiating and finding solutions that satisfy all parties. Managing your emotions.
Positive Attitude
Seeing the problems but focusing on solutions. Always giving constructive criticism. Offering suggestions instead of mere criticism, being more aware of opportunities and complaining less.
Effective Communication
Giving and receiving feedback. Confidence, friendliness, adapting to different communication styles, asking relevant questions to gain more information, active listening, empathy to make sure the tone is right and the message is clear and respectful. Speaking clearly and with conviction. Listening without interrupting. Always using language that can be understood, with analogies when appropriate. Articulating ideas clearly. Minding the tone in writing. Talking instead of writing when appropriate. Being honest. Focusing on clarity. Using positive body language (engaged in the conversation and not on the phone). Being brief: prioritizing quality over quantity, saying fewer things without losing the impact of the message. Sharing information. Attacking the problem, not the person. Choosing the appropriate communication channel.
Problem Solving
Getting the job done and picking the right tool for the job. Patience, creativity, determination, pragmatism. Finding the source of the problem and developing an effective and efficient solution. Being persistent, not giving up easily. Thinking originally and going beyond traditional approaches.
Autonomy
Self-management, time management, proactivity. Taking initiative and working independently, without needing to be told what to do. Focusing on unblocking yourself. Saying "no" when it makes sense. Stepping up and taking action without being asked.
Influence
Influencing and inspiring people. Motivating others. Being a culture ambassador: taking care of the office, the environment and the tools. Being an example of how to behave.
Self Improvement
Introspection: reflecting periodically to learn and improve your current practices, tools and methodologies in order to be more efficient. Learning with enthusiasm and passion. Learning continuously from books, articles and videos. Bringing new ideas. Seeking learning opportunities.
Adaptability
Flexibility, open-mindedness. There are always things to change and to learn. Being open to learning new skills and taking on new responsibilities. Reacting positively to change and to comments, criticism, bad news and other uncomfortable situations. Accepting new ideas and criticism. Adapting to new or difficult situations and finding ways to overcome obstacles.
Quality Focus
Seeking quality, attention to detail, innovation, creativity. Writing great code: readable, tested, well designed and easy to change. Being disciplined. Choosing the right tool for each job. Achieving precision and anticipating possible outcomes. Being thorough and accurate when handling complex code, documents and projects.
Business Orientation
Focusing on maximizing the delivery of business value to users. Learning the domain and contributing to it. Not putting your own interests ahead of the business needs.
Trustworthiness
Being consistent and accountable, taking responsibility. Being punctual. Meeting deadlines. Owning your own mistakes.
Efficiency
Being productive, agile and pragmatic: maximizing high-quality features per unit of time.
Analytical Thinking
Big-picture thinking, abstract thinking, critical thinking. Using different mental models and reasoning from first principles. Examining and understanding complex problems or domains effectively. Assessing facts before reaching a conclusion. Making reasoned, logical and well-thought-out judgments.
English Language Knowledge
Reading, watching videos, speaking, writing, vocabulary.
Resources
- Mental Models: The Best Way to Make Intelligent Decisions
Article · 18 pages
- The Difference Between Amateurs and Professionals
Article · 2 pages
- The Work Required to Have an Opinion
Article · 2 pages
- Second-Order Thinking: What Smart People Use to Outperform
Article · 3 pages
- The Most Respectful Interpretation
Article · 4 pages
- The Difference Between Open-Minded and Closed-Minded People
Article · 5 pages
- Ten Techniques for Quickly Building Trust With Anyone
Article · 4 pages
- The Best Summary of How to Win Friends and Influence People
Article · 2 pages
- 11 Simple Rules For Getting Along With Others
Article · 1 pages
- Elements of Effective Thinking
Article · 2 pages
- Steve Jobs on Creativity
Article · 1 pages
- Active Listening: The Master Key to Effective Communication
Article · 8 pages
- Improving Communication: Developing Effective Communication Skills
Article · 4 pages
- Positive Thinking
Article · 3 pages
- The Importance of Mindset
Article · 3 pages
- Dealing with Criticism
Article · 2 pages
- Offering Constructive Criticism
Article · 3 pages
- Principles of Interpersonal Communication
Article · 2 pages
- Tact and Diplomacy
Article · 3 pages
- What is Empathy?
Article · 4 pages
- Assertiveness - Tips & Techniques
Article · 4 pages
- Building Rapport
Article · 4 pages
- What is Negotiation?
Article · 4 pages
- Giving and Receiving Feedback
Article · 3 pages
- Developing Persuasion Skills
Article · 3 pages
- Critical Thinking
Article · 3 pages
- Energized Work
Article · 8 pages
- How to Make Smart Decisions Without Getting Lucky
Article · 8 pages
- Taking Ownership Is The Most Effective Way to Get What You Want
Article · 3 pages
Video · 54 min
- Clean Coders 45 - The Programmer's Oath
Video · 56 min
- Soft Skills - The software developer's life manual
Book · John Sonmez, Manning, 2014 · Chapters: 4, 10, 33, 40, 42, 66, 67, 70 · 45 pages
- Software Craftsmanship - Professionalism, Pragmatism, Pride
Book · Sandro Mancuso, Leanpub, 2014 · Chapters: 5, 7, 12, 15 · 68 pages
- Clean Coders 38 - The Clean Coder
Video · 46 min
- Clean Coders 39 - Defects
Video · 48 min
- The Product-Minded Software Engineer
Article · 7 pages
- The Ten Commandments of Egoless Programming
Article · 1 pages