Skip to content

Latest commit

 

History

History
749 lines (462 loc) · 39.6 KB

code.of.conduct.md

File metadata and controls

749 lines (462 loc) · 39.6 KB

saropa company logo

HONESTI: Saropa’s Code of Conduct

At Saropa there are key non-negotiable behaviors: Honesty. Respect. Empathy. Success.

As an organization, Saropa promotes behavior that reflects our values. This Code of Conduct outlines the minimum standards expected of our staff, contributors, and business partners. Compliance with the most restrictive applicable laws and regulations is required.

The H.O.N.E.S.T.I. acronym in Saropa’s Code of Conduct emphasizes the importance of being honest with oneself and others, serving as a guiding principle for ethical and efficient development practices.

Introduction

Welcome to the team. This guide provides essential insights and best practices to help developers maintain high standards of integrity, efficiency, and collaboration in their work.

  1. Harmony: Focus on writing clean, maintainable, and well-documented code.
  2. Openness: Emphasize honest progress reporting and clear communication.
  3. Networking: Highlight the importance of teamwork and effective documentation.
  4. Education: Encourage ongoing growth and staying updated with new technologies.
  5. Streamlining: Use tools to identify bottlenecks and optimize code performance effectively.
  6. Technology: Utilize AI tools wisely, ensuring thorough review and understanding their limitations.
  7. Integrity: Maintain ethical practices and manage stress to foster a healthy work environment.

Our Pledge

We pledge to create a harassment-free experience for everyone in our project and community, regardless of age, body size, disability, ethnicity, gender identity, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

Positive behavior includes:

  • Using inclusive language and respecting differing viewpoints and experiences
  • Accepting constructive criticism gracefully and focusing on the community’s best interests
  • Showing empathy towards others

Saropa is committed to diversity and equal opportunity. We do not discriminate based on race, creed, color, ethnicity, national origin, religion, sex, sexual orientation, gender identity, age, height, weight, disability (including HIV status), veteran status, military obligations, or marital status. This policy applies to all employees, volunteers, clients, and contractors.

Unacceptable behavior includes:

  • Use of sexualized language or imagery, trolling, or derogatory comments
  • Publishing others’ private information without permission
  • Any inappropriate conduct in a professional setting

This Code of Conduct applies within project spaces and public spaces when representing the project or community. This includes using official emails, social media accounts, or acting as an official representative.

Report unacceptable behavior to the project team at [email protected]. All complaints will be reviewed and investigated confidentially Failure to enforce the Code of Conduct may result in repercussions as determined by the project’s leadership.

We Start Now

If there is anything that follows that you do not understood clearly or agree with, then you must ask about it. You will be measured against each of these guidelines and held accountable. This is a contract code of conduct that we demand of ourselves.

Table Of Contents

1 Harmony

Bad coding is easy. The following rules make code simpler to read, review, maintain, and test. Maintain clean, maintainable, and well-documented code. Follow naming conventions, prevent fragile code, be future-proof, and practice defensive programming.

1.1 Maintainable Code

(a) 🌈 Use consistent and meaningful names for variables, functions, and classes. Avoid abbreviations and ensure names are descriptive of their purpose.

    /// Use clear and descriptive names
    void fetchDataFromServer() {}

    /// Use “db” for database operations
    void dbFetchUser() {}

    /// Use “api” prefix for web calls
    void apiFetchData() {}

    /// Combine nouns and verbs clearly
    List<String> getUserList() {}

    /// Use “is” prefix for boolean variables
    bool isLoading = true;

(b) 📐 Maintain a separation of concerns. Small files and functions streamline code reviews, migrations and merges.

  • Separate UI, models, services, and utilities into distinct folders, with patterns like MVVM or Clean Architecture.
  • Keep state management logic separate from UI code, to ensure state changes are predictable and testable.
  • Organize files by feature or module, named based on their functionality

(c) 🎯 Exit early to avoid nested ifs and separate logic into methods

BEFORE: Succinct but difficult to read

void checkAge(int age) {
   String result = '';

  if (age >= 18) {
    if (age < 65) {
      result = 'You are an adult.';
    } else {
      result = 'You are a senior citizen.';
    }
  } else {
    if (age < 2) {
      result = 'You are a baby.';
    } else if (age < 13) {
      result = 'You are a child.';
    } else {
      result = 'You are a teenager.';
    }
  }

  return result;
}

AFTER: exit early, separated concerns, validate params, give more options

String checkAge(int age) {
  final ageDisplayValue = getAgeDisplayValue(age);
  if (ageDisplayValue == null) {
    return 'Invalid age';
  }

  return 'You are a $ageDisplayValue.';
}

String? getAgeDisplayValue(int age) {
  if (age < 0) {
    return null;
  } else if (age < 2) {
    return 'baby';
  } else if (age < 13) {
    return 'child';
  } else if (age < 18) {
    return 'teenager';
  } else if (age < 65) {
    return 'adult';
  } else {
   return 'senior citizen';
  }
}

1.2 Respect Our Users and Their Data

Companies that mishandle sensitive user data face severe legal and reputation consequences. Never risk unauthorized access or data breaches.

(a) 🚨 Never log sensitive user information - even to the user’s device. This includes avoiding client-side logging of personal data, authentication tokens, or any information that could compromise user privacy or security. Implement secure hashing or encryption for all outputs that may contain sensitive data.

(b) 🔒 When logging is necessary for debugging or analytics, ensure that all logs are anonymized and do not contain any personally identifiable information (PII) or sensitive data. Use unique identifiers instead of user-specific information.

(c) 🥇 Apply consistent theming and respect accessibility across all UI components to enhance user experience and prevent confusion.

(d) 🏆 Always obtain explicit permission before collecting or sharing user data. Clearly communicate data practices to build trust and comply with privacy regulations. Ensure users understand what data is being collected, how it’s being used, and how they can control or delete their information.

(e) 📊 Practice data minimization by only collecting and storing information that is absolutely necessary for the application’s functionality. Regularly review and purge unnecessary data.

1.3 Future-Proof

(a) 💣 Do not write code that will cause issues in the future, such as hard-coded dates or temporary fixes. (b) 🏗️ Plan for the long-term maintainability and scalability of your code. (c) ⚙️ Use configuration files or environment variables instead of hard-coding values. (d) 💎 Zero warnings, hacks, or lints. And to-dos need to go in project management tools, never source.

1.4 Defensive Programming

(a) 🐛 Implement thorough error handling to gracefully manage edge cases, ensuring robust application behavior. (b) ⚠️ Validate and sanitize all inputs to prevent security vulnerabilities and ensure data integrity:

  • Empty and null string checks simplify operations and clarify debugging
  • Ensure indices don’t exceed minimum / maximum allowed value (bound errors)
  • Validate inputs to prevent malicious characters or invalid data.

SQL injection, XSS, CSRF, buffer overflow, command injection, DoS, man-in-the-middle attacks, session hijacking are common examples of malicious inputs that can compromise application security.

(c) 💾 Avoid optimistic casting and utilize null safety features to avoid null errors

  // Optimistic casting (avoid) will *error* if the provided data in missing or a different format
  final nameError = jsonData['name'] as String;

  // Safe casting with `!`:
  final name = jsonData['name'] as String?;
  if (name == null || name.isEmpty) {
    // log or ignore
  } else {
    // do something
  }

(d) 🧯 Avoid shortcuts that may lead to code breaking under unusual conditions, prioritizing long-term stability.

  • Handle exceptions within the method without throwing errors - unless the needed for parental logging.
  • Log errors somewhere they can be review, but be mindful or leaking sensitive data

1.5 Version Control

(a) 🌿 Use feature branches for new development, merging within 1-2 days and incorporating the main branch daily to minimize divergence and reduce merge conflicts.

(b) 📝 Use tags and write clear, descriptive commit messages that explain the purpose of the changes made. Include relevant issue or ticket numbers for easy tracking.

(c) 🧪 Ensure all tests pass before creating a pull request; if builds are lengthy, break them into smaller components.

(d) 👀 Conduct code reviews within a few hours of submission to maintain development momentum.

(e) 🔍 Keep pull requests small and focused on one feature or bug fix; merge approved requests immediately to avoid conflicts with ongoing work.

(f) 🚫 Never force push to shared branches, especially the main branch; it is only allowed by designated tech leads when absolutely necessary.

(g) 📊 Regularly clean up old merged branches by retaining them for at least one release cycle, keeping commented-out sections for context, and documenting significant removals in commit messages or changelogs.

(h) 📚 Maintain a changelog that includes major changes, new features, significant bug fixes, deprecated features, and breaking changes while excluding trivial updates unless they affect user-facing functionality.

2 Openness

Be transparent about your progress, skills, and contributions. Provide realistic estimates, update them regularly, and avoid false claims. Focus on maintaining productivity, clear communication, and a healthy work-life balance.

2.1 Honest Prototyping

(a) 📝 Don’t present prototypes as final, production-ready code. Clearly communicate the prototype’s limitations and development stage to stakeholders to prevent misunderstandings about feature readiness.

(b) 💡 Use prototypes for innovation — to explore ideas and test solutions, while minimizing time and resource investment.

(c) 🗣️ Seek feedback on prototypes to refine and improve.Involve team members and stakeholders early to gather diverse perspectives and iterate on the design based on constructive feedback.

2.2 Completion Transparency

(a) 📅 Do not claim task completion without full understanding. If you encounter difficulties, seek assistance, ask questions, and request guidance from experienced colleagues to ensure quality and enhance learning.

(b) 🎨 Report your progress and any issues encountered. Keep detailed records to track progress, identify recurring problems, and facilitate smoother handoffs.

2.3 Reliable Estimates

(a) ⏰ Provide realistic estimates for your tasks and projects.Break down tasks into small, manageable components and note potential obstacles when estimating.

(b) 🔄 Regularly update estimates as work progresses and new information becomes available. This helps manage expectations and enables more accurate planning and resource allocation.

(c) 📢 Promptly communicate any changes in timelines to keeping stakeholders informed. This builds trust and allows for adjustments in project planning.

2.4 Avoid False Claims

(a) ❌ Do not falsely claim credit for work you did not do or abilities you do not possess. Integrity is crucial for trust within your team and with stakeholders. Be clear about your contributions.

(b) 🔦 Recognize and celebrate your achievements, but also acknowledge the contributions of others. Transparency promotes trust and encourages collaboration within the team.

(c) 🌱 Seek opportunities to learn and grow. Regularly assess your skills and identify areas for improvement. Pursue training, attend workshops, and seek mentorship to develop expertise.

2.5 Production-Ready

(a) ⚙️ Production-ready code is stable, well-tested, and optimized. Ensure your code has passed all necessary tests and can handle the anticipated user traffic and data processing requirements.

(b) 🐞 Conduct thorough testing to identify and fix bugs before deployment. Provide comprehensive documentation for smooth deployment and maintenance.

2.6 Maintain Productivity

(a) 🏠 Create a dedicated workspace with clear boundaries to maintain focus, minimize distractions, and separate work from personal life.

(b) ⏲️ Define clear working hours with scheduled breaks to prevent burnout, maintain work-life balance, and stay productive.

(c) 📅 Use productivity applications to stay organized and manage tasks efficiently.

(d) 🛠️ Fully use of the provided project and communication tools to collaborate and keep track of your work.

(e) 📝 Break tasks into smaller work items, complete them, and report progress promptly.

2.7 Communication and Coordination

(a) 📡 Regularly communicate with your team using designated tools to maintain clear information flow and coordination.

(b) ✉️ Respond to messages and emails promptly to maintain workflow.

(c) 📆 Communicate your availability and any potential interruptions clearly to manage expectations.

(d) 🌍 Use shared calendars to schedule regular check-ins and meetings that accommodate all team members’ working hours across different time zones.

2.8 Work-Life Balance and Managing Irregular Hours

(a) 🏋️ Engage in activities that promote mental and physical well-being.

(b) ⏰ Be mindful of the impact of irregular hours on your work-life balance and health.

(c) 💤 Ensure adequate rest and maintain a consistent sleep schedule.

2.9 Addressing Challenges and Leveraging Opportunities

(a) 🤝 Stay connected with colleagues through virtual interactions to combat isolation.

(b) 📊 Use planning and scheduling techniques to manage both work tasks and personal responsibilities.

(c) 💡 Continuously improve your skills through online resources and training, focusing on both technical abilities and self-management to enhance project ownership.

2.10 Report Challenges and Progress

(a) 📈 Regularly share clear and detailed updates on your work progress, milestones, and achievements to avoid misunderstandings and ensure continuity.

(b) 🆘 Communicate challenges or obstacles openly and seek assistance when needed.

(c) ✏️ Clearly explain the specific steps taken to address challenges, providing sufficient information for others to understand your approach and progress.

(d) 🌐 Use asynchronous communication tools to stay connected without needing to be online simultaneously.

3. Networking

Work well with your team, communicate clearly, encourage questions, and put yourself in users’ shoes. Maintain effective documentation.

3.1 Collaboration

(a) 🤝 Share knowledge and supporting everyone in your team. Foster an environment of mutual respect and cooperation where everyone feels valued and heard.

(b) 🗣️ Communicate clearly and effectively about your progress, challenges, and needs. Use regular updates and status meetings to keep everyone on the same page.

(c) 🗨️ Provide constructive feedback and be open to receiving feedback. Embrace feedback as a tool for growth, ensuring it is given respectfully and constructively.

3.2 Encouraging Questions

(a) 📱 Foster an environment where asking questions is encouraged and valued. Make it clear that there are no “stupid” questions and that curiosity drives improvement.

(b) 🗺️ Remember that seeking help is a sign of strength and a commitment to quality. Encourage team members to seek clarification to ensure tasks are completed accurately.

(c) 🤗 Provide mentorship and support to junior developers. Share your knowledge generously to help others grow, fostering a culture of continuous learning.

3.3 User Perspective

(a) 🕺 Consider the practicality and usability of features from the user’s perspective. Think about how users will interact with your product and prioritize their needs.

  • Similar elements should behave in similar ways and be located in familiar places to ensure predictability and intuitiveness.
  • Group information hierarchically, hide complexity under “more” options, and use filters and search functionalities to make it manageable.
  • Utilize labels, color, buttons, and diagrams, and incorporate accessibility features to enhance usability.
  • Always provide a warning before performing any irreversible actions.
  • Regularly ask users for their input to ensure the product meets their needs and expectations.

(b) 👂 Ask questions and seek clarification to ensure the final product meets the user’s needs. Engage with users through surveys and feedback sessions to gather insights.

(c) 📋 Gather feedback from users to understand their needs and preferences. Use this feedback to refine and enhance your product, ensuring it aligns with user expectations.

3.4 Effective Documentation

If you have to explain something about the system to another person (in a review, to client, or in any other way) then it needs better documentation. No exceptions.

(a) 🖋️ Use clear and concise language in all your documentation. Your audience includes both subject experts and those new to the project.

(b) 📑 Maintain a consistent style and structure throughout your documentation and code comments. Consistency helps everyone navigate and understand the documentation more effectively.

(c) 🌏 Provide examples to illustrate abstract concepts and usage expectations. This helps others apply the information correctly.

(d) 🆙 Why, Not How. Explain simply why we do something: stakeholder needs, things that went wrong, ideas, an evolved tech stack, legislation, or industry standards.

(e) 🎷 Integrate reviews into your project planning at milestones. Properly maintained documentation prevents confusion, reduces errors, and streamlines onboarding and training, ultimately saving time and resources.

(f) 🖨️ If the explanation of non-trivial logic or algorithms becomes too detailed, consider splitting the logic into separate methods or fields for better organization and reusability.

  • Explain the purpose in doc headers. If a doc header is too detailed, it’s a sign the method is too complex.
  • Important parameters need explaining in the header.
  • Use comments for complex logic (e.g., loops, nested functions)
  • If the explanation becomes too detailed, the logic should be split into separate methods or fields.

Documentation will help you write better code

4. Education

Stay updated with the latest technologies and best practices. Participate in code reviews, write comprehensive tests, and keep documentation up to date.

4.1 Continuous Learning and Improvement

(a) 📚 Stay updated with the latest technologies, tools, and best practices. Regularly read industry blogs, attend webinars, and participate in professional forums.

(b) 🛠️ Regularly review and refactor your code to improve its quality and performance. Set aside time for code refactoring sessions to keep your codebase clean and efficient.

(c) 🧪 Experiment with new techniques and approaches. Be open to trying new methods and tools that could enhance your work, and share successful experiments with your team.

4.2 Code Reviews

(a) 🔄 Participate actively in code reviews, both giving and receiving feedback. Code reviews are collaborative learning opportunities that improve code quality.

(b) 👏 Be respectful and constructive in your feedback. Focus on the code, not the coder, and aim to help improve the overall project.

(c) ⏰ Use code reviews as a learning opportunity. Learn from others’ code, understand different approaches, and incorporate best practices into your own work.

4.3 Testing

(a) ✅ Write comprehensive tests for your code, including unit tests, integration tests, and end-to-end tests. A thorough test suite helps catch issues early and ensures the robustness of your code.

(b) 🛡️ Ensure your tests cover edge cases and potential failure points. Anticipate potential issues and write tests to handle those scenarios, improving code reliability.

(c) ♻️ Regularly run tests to catch issues early and maintain code quality. Integrate automated testing into your development workflow to ensure continuous quality checks.

4.4 Documentation Updates

(a) 🛸 Regularly review and improve documentation to keep it relevant and useful. Schedule periodic documentation reviews to ensure accuracy and completeness.

(b) 🧭 Solicit feedback from team members and users to identify areas for improvement. Encourage feedback on documentation to make it more user-friendly and informative.

5. Streamlining

Utilize tools to measure and identify areas for improvement. Avoid premature optimization: Focus on writing clear and correct code before optimizing. Strive for a zero-problem project: no warnings, no hacks, and no linting issues. Use AI with caution, and always review AI-generated content thoroughly.

Ai can help significantly with doing plumbing, but it has no problems with connecting the pipes wrong - thih9

5.1 Measure and Optimize

(a) 🏆 Base optimization efforts on actual profiler data rather than assumptions.

(b) 🎯 Focus on optimizing areas with significant performance impact.

(c) 📏 Avoid premature optimization; write clear and correct code first.

(d) 🧮 Minimize expensive operations and optimize data storage and retrieval.

(e) 📊 Cache results of expensive or frequent computations.

5.2 Efficient Structures and Algorithms

(a) 🛵 Choose data structures and algorithms best suited to your needs.

(b) ⚖️ Prefer simplicity and clarity over complexity unless performance requires otherwise.

(c) ⚙️ Optimize data access patterns to reduce latency and improve throughput.

(d) 📏 Delay or avoid performing calculations that aren’t directly necessary.

5.3 Asynchronous Operations and Memory Management

(a) 💻 Use asynchronous techniques to keep your application responsive.

(b) 🔄 Ensure proper handling of async/await to maintain responsiveness.

(c) 🚫 Catch and handle errors in async code to prevent silent failures.

(d) 🎭 Store data late and dispose early, being mindful of explicit disposal needs.

(e) 🧹 Properly manage memory to avoid leaks and use memory-efficient data structures.

(f) 💤 Use lazy loading and pagination to handle large datasets efficiently.

5.4 Caching Strategies

(a) 🦄 Implement caching mechanisms to reduce frequent data retrieval and calculations.

(b) 🧠 Balance cache size and invalidation strategies for optimal performance.

(c) ♻️ Ensure cached data is correctly invalidated or updated to avoid stale data issues.

5.5 Leveraging AI for Development

(a) 📌 Use AI tools to speed up coding tasks and generate boilerplate code.

(b) 📚 Always review and test AI-generated code thoroughly for fitness, reliability, and security.

(c) ⚠️ Work in small increments when using AI for code generation.

(d) ✅ Use AI to generate comprehensive test cases, especially for edge scenarios.

(e) ☕ Begin with unit tests when using AI for boilerplate coding.

5.6 AI for Documentation and Comments

(a) 🍄 Avoid AI-generated comments that merely describe code functionality.

(b) 📋 Use AI to articulate design rationale, trade-offs, and purpose in comments.

(c) 🖱️ Actively use spelling and grammar checkers for all code and documentation.

5.7 Understanding AI Limitations

(a) 🕵️ Always perform thorough reviews of AI-generated content to ensure compliance with project requirements and standards.

(b) 📚 Recognize that AI tools may overlook critical details or make incorrect assumptions.

(c) 🔍 Double and triple-check AI-updated code to catch and fix potential errors.

6. Impossible Problems

Focus on identifying and understanding the problem, seeking assistance, maintaining persistence, and achieving incremental progress.

6.1 Identify and Understand the Challenge

(a) 🕵️ Clearly define and understand the problem you are facing.

(b) 🧩 Break the challenge into smaller, manageable parts.

6.2 Seek Assistance and Perspectives

(a) 🌐 Involve team members and seek diverse perspectives to gain new insights and potential solutions.

(b) 📖 Use all available resources, including tools, documentation, and expertise from colleagues or external sources.

6.3 Maintain Persistence and Adaptability

(a) 💪 Stay persistent and adaptable, adjusting your approach as needed to overcome obstacles.

(b) 🏃‍♂️ Avoid procrastination and find ways to unlock the problem.

(c) 🔄 Complete minor, unrelated safe tasks to unblock your progress and maintain momentum.

6.4 Reevaluate and Incremental Progress

(a) 🔍 Regularly reevaluate the requirements and get stakeholder approval to ensure alignment.

(b) 📊 Focus on making incremental, small progress to achieve manageable milestones.

(c) 🎉 Recognize and celebrate small victories along the way to maintain motivation and build momentum.

7. Integrity

Focus on ethical practices, managing stress, identifying and handling risks, fostering joy in programming, and promoting diversity and inclusion.

7.1 Recognize and Manage Stress

(a) 🌸 Acknowledge when you’re overwhelmed and talk to your team or manager. Use techniques like mindfulness, exercise, or regular breaks to maintain well-being.

(b) 🪜 Break large tasks into smaller, manageable pieces. Use tools like task lists or project management software to track progress.

(c) 🧘 Identify signs of burnout, such as chronic fatigue or lack of motivation. Encourage a culture of mental health openness and support taking time off to recharge.

7.2 Identifying and Managing Risks

(a) 🧩 Identify potential challenges early in the development process. Regularly assess your project for risks and discuss them with your team.

(b) 🗂️ Develop action plans for identified risks and regularly review them. This might include contingency plans or additional testing.

(c) 📢 Keep stakeholders updated about risks and their potential impact. Use regular status updates and meetings to keep them informed and engaged.

7.3 Managing Panic

(a) 🛑 Identify common panic triggers like tight deadlines, unexpected issues, or high-stakes presentations.

(b) 🧘‍♂️ Create a predefined action plan for managing panic, including pausing to breathe, assessing the situation, and using stress-reduction techniques like mindfulness and deep breathing.

(c) 📣 Communicate transparently with your team during panic situations, clearly articulating the issue and next steps.

(d) 🏡 Acknowledge that WFH presents specific challenges for training and communication, making it harder to manage and support.

(e) ❓ Experienced people ask questions. “I got this” is good, but “I don’t know” is crucial for growth.

(f) 🔨 Slow progress is only bad when not communicated. Refusing to feedback bad news is neither a successful or rewarded strategy, instead ask stakeholders for creative solutions.

7.4 Respect Flow State

(a) ⚡ Flow state is a mental state of deep focus and immersion where productivity peaks and complex problems are solved more effectively.

(b) 🌊 Achieve flow state by choosing challenging yet manageable tasks, eliminating distractions, and focusing on one task at a time.

(c) 🧘 Respect your colleagues’ flow state by avoiding unnecessary interruptions and using signals or tools to indicate when someone is in deep work mode.

7.5 Celebrate Diversity and Stamp Out Bullying

(a) 🌍 Ensure a supportive environment where everyone feels safe and respected. Recognize and address different types of bullying, including verbal, physical, social, cyberbullying, and constructive dismissal.

(b) 🤝 Embrace and celebrate diversity in all its forms, including religion, sexual orientation, age, disabilities, medical needs, and family responsibilities. Acknowledge and celebrate cultural events and holidays to foster team unity.

(c) 🎉 Be aware of cultural differences and public holidays in different regions. Acknowledge and celebrate cultural events and holidays to foster team unity.

(d) 🔍 Promote an inclusive culture where diversity is viewed as a strength, fostering innovation and creativity, while promptly addressing and taking action against any form of bullying. Show respect and understanding for cultural variations in working styles and communication.

7.6 Honesty with Stakeholders

(a) 💬 Be transparent and honest with stakeholders, users, and clients. Avoid engaging in harmful business practices such as planned obsolescence or binding practices that trap individuals in an organization.

(b) 🤝 Promote open communication and trust with all parties involved, ensuring that ethical standards are maintained in all business dealings.

7.7 Joy in Building

(a) 🎉 Focus on the enjoyable aspects of your work and celebrate small victories. Cultivate a positive work environment by supporting colleagues and promoting appreciation.

(b) 🧠 Encourage a culture of safety and empathy. Create an environment where team members feel comfortable taking risks and making mistakes.

(c) ✈️ Delivering high-quality work to clients as the ultimate reward.

(d) 🌟 The real magic is working within a small team, achieving high standards, and succeeding together.

The Survey

Choose 1 only...

  1. 🛠️ When you aim to maintain clean, maintainable code, how do you approach it?
    ☐ Refactor regularly to improve code quality and maintainability
    ☐ Utilize automated tools to highlight and fix code issues
    ☐ Collaborate with peers to ensure high standards are maintained

  2. 📊 How do you ensure your progress reports are comprehensive and effective?
    ☐ Use project management tools and write comprehensive email updates
    ☐ Hold regular check-ins with the team and provide context with proposed solutions
    ☐ Ensure timely communication and factual transparency to avoid surprises

  3. 📚 How do you contribute to the quality and accuracy of documentation?
    ☐ Update documentation promptly after changes are made
    ☐ Regularly review and provide feedback on existing documentation
    ☐ Actively participate in documentation review sessions

  4. 🌱 How do you stay updated with new technologies and integrate them into your work?
    ☐ Attend industry workshops and conferences to learn
    ☐ Follow relevant blogs and publications for the latest trends
    ☐ Experiment with new technologies in side projects

  5. 🔋 What steps do you take to optimize code performance in your projects?
    ☐ Regularly profile and refactor code to enhance performance
    ☐ Implement performance best practices from the start
    ☐ Use feedback from performance testing to make improvements

  6. 🧘‍♂️ How do you manage stress during high-pressure situations at work?
    ☐ Practice mindfulness and take regular breaks to stay balanced
    ☐ Prioritize tasks and break them down into manageable steps
    ☐ Seek support from colleagues and mentors when needed

  7. 🔥 A critical bug in the software is unresolved causing significant financial loss. What approach do you take?
    ☐ Claim it was a misunderstanding of the requirements if questioned
    ☐ Hide the problem with hard coding and plan to fix it later
    ☐ Request a reassignment to another project before the issue is noticed

  8. 🌈 What actions do you take to promote a positive and inclusive workplace?
    ☐ Encourage inclusive behavior and language among colleagues
    ☐ Promptly report any incidents of harassment or discrimination
    ☐ Actively support peers who may need assistance or encouragement

  9. ⚖️ How do you handle risks and unexpected challenges in projects?
    ☐ Create contingency plans to prepare for potential issues
    ☐ Regularly reassess and adjust project plans as needed
    ☐ Discuss potential risks and challenges with the team

  10. 🌟 In a team setting, how do you ensure effective progress and contribution?
    ☐ Regular team meetings for updates and problem-solving
    ☐ Challenge team members while ensuring accountability
    ☐ Assign tasks based on each member’s strengths and expertise

The Exercise

Imagine you are part of a development team tasked with improving an existing task management system. Your goal is to propose new features that enhance the system’s usability, performance, and overall effectiveness.

We’re looking for people who can think outside the box, deliver quality work quickly, and inspire innovation.

  1. 🛠️ How would we identify a high-quality feature that is missing?

  2. 📊 What is an interesting idea to report task progress to users?

  3. 📚 How can the system detect if its information is correct and current?

  4. 🌱 What new technologies can we integrate?

  5. ⏲️ How can we better support users who are spread out globally?

  6. ⚙️ What techniques can we use to optimize the system’s performance?

  7. 🌍 Part of a screen is appearing blank in production and we can’t reproduce it, how to proceed?

  8. 🤖 How can AI be used to improve its capabilities?

  9. 💬 How should the system utilize feedback from its users?

Video Library

Welcome to these TED Talks. Dive into a curated collection of insightful talks that inspire courage, honesty, tranquility, high performance, encouragement, inclusivity, and accountability.

Be Brave

Be Honest

Be Calm

Be High Performing

Be Encouraging

Be Welcoming

Be Accountable

END

When a person can’t find a deep sense of meaning, they distract themselves with pleasure. -Vicktor Frankl