Architecture – Abbreviations

SOLID

SRP – Single Responsibility Principle

A class should have only one reason to change, so in order to reduce reasons for modifications – one class should have one responsibility. It is a bad practise to create classes doing everything.

Why is it so important that class has only one reason to change? If class have more than one responsibility they become coupled and this might lead to surprising consequences like one change breaks another functionality.

You can avoid these problems by asking a simple question before you make any changes: What is the responsibility of your class / component / micro-service? If your answer includes the word “and”, you’re most likely breaking the single responsibility principle.

OCP – Open-Closed Principle

Classes, modules, functions, etc. should be open to extension but closed to modification.

Code should be extensible and adaptable to new requirements. In other words, we should be able to add new system functionality without having to modify the existing code. We should add functionality only by writing new code.

If we want to add a new thing to the application and we have to modify the “old”, existing code to achieve this, it is quite likely that it was not written in the best way. Ideally, new behaviors are simply added.

LSP – Liskov Substitution Principle

This rule deals with the correct use of inheritance and states that wherever we pass an object of a base class, we should be able to pass an object of a class inheriting from that class.

Example of violation:

class A:
    def foo() -> str:
        return "foo"


class B(A):
    def foo(bar: str) -> str:
        return f"foo {bar}"

B is not taking the same arguments, meaning A and B are not compatible. A can not be used instead of B, and B can not be used instead of A.

ISP – Interface Segregation Principle

Clients should not be forced to depend upon interfaces that they do not use. ISP splits interfaces that are very large into smaller and more specific ones so that clients will only have to know about the methods that are of interest to them.

Example of violation:

class Shape:
    def area() -> float:
        raise NotImplementedError

    def volume() -> float():
        raise NotImplementedError

2D triangle does not have volume, hence it would need to implement interface that is not needed. In order to solve this, there should be multiple interfaces: Shape and 3DShape.

DIP – Dependency Inversion Principle

High-level modules, which provide complex logic, should be easily reusable and unaffected by changes in low-level modules, which provide utility features. To achieve that, you need to introduce an abstraction that decouples the high-level and low-level modules from each other.

Entities must depend on abstractions, not on concretions. It states that the high-level module must not depend on the low-level module, but they should depend on abstractions.

For example password reminder should not have knowledge about database provider (low level information).

DRY – Don’t Repeat Yourself

“Every piece of knowledge must have a single, unambiguous, authoritative representation within a system”. When the DRY principle is applied successfully, a modification of any single element of a system does not require a change in other logically unrelated elements.

KISS – Keep It Simple, Stupid

The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore, simplicity should be a key goal in design, and unnecessary complexity should be avoided.

ACID

Atomicity

Each transaction is either properly carried out or the process halts and the database reverts back to the state before the transaction started. This ensures that all data in the database is valid.

Consistency

A processed transaction will never endanger the structural integrity of the database. Database is always in consistent state.

Isolation

Transactions cannot compromise the integrity of other transactions by interacting with them while they are still in progress.

Durability

The data related to the completed transaction will persist even in the cases of network or power outages. If a transaction fails, it will not impact the manipulated data.

BASE

Basically Available

Ensure availability of data by spreading and replicating it across the nodes of the database cluster – this is not done immediately.

Soft State

Due to the lack of immediate consistency, data values may change over time. The state of the system could change over time, so even during times without input there may be changes going on due to ‘eventual consistency’, thus the state of the system is always ‘soft’.

Eventually Consistent

The system will eventually become consistent once it stops receiving input. The data will propagate to everywhere it should sooner or later, but the system will continue to receive input and is not checking the consistency of every transaction before it moves onto the next one.

CAP

In theoretical computer science, the CAP theorem states that it is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees:

Consistency

Every read receives the most recent write or an error. Refers to whether a system operates fully or not. Does the system reliably follow the established rules within its programming according to those defined rules? Do all nodes within a cluster see all the data they are supposed to? This is the same idea presented in ACID.

Availability

Every request receives a (non-error) response, without the guarantee that it contains the most recent write. Is the given service or system available when requested? Does each request get a response outside of failure or success?

Partition Tolerance

Represents the fact that a given system continues to operate even under circumstances of data loss or system failure. A single node failure should not cause the entire system to collapse.

NF

Database normalisation is the process of structuring a database, usually a relational database, in accordance with a series of so-called normal forms in order to reduce data redundancy and improve data integrity.

1NF

To satisfy 1NF, the values in each column of a table must be atomic.

2NF

Must be in 1NF + single column primary key (no composite keys).

3NF

Must be in 2NF + no transitive functional dependencies.

Transitive Functional Dependencies – when changing a non-key column, might cause any of the other non-key columns to change. For example:

3nf-violation

Fonte: https://github.com/pkardas/notes/blob/master/patterns/abbreviations.md

Algoritmos de NLP

Os **principais algoritmos de Processamento de Linguagem Natural (NLP)** incluem uma variedade de técnicas que permitem a compreensão e manipulação de texto e linguagem humana. Aqui estão alguns dos mais destacados:

### 1. **Modelos Baseados em Regras**
– **Análise Sintática**: Utiliza gramáticas para analisar a estrutura das frases.
– **Análise Semântica**: Interpreta o significado das palavras e frases.

### 2. **Modelos Estatísticos**
– **Naive Bayes**: Um classificador probabilístico que assume independência entre características.
– **Modelos de Markov Ocultos (HMM)**: Usados em reconhecimento de fala e etiquetagem de partes do discurso.

### 3. **Redes Neurais**
– **Word Embeddings**: Técnicas como Word2Vec e GloVe que transformam palavras em vetores de alta dimensão.
– **Redes Neurais Recorrentes (RNNs)**: Especialmente úteis para sequências de texto, como em tradução automática.
– **Long Short-Term Memory (LSTM)**: Um tipo de RNN que pode aprender dependências de longo prazo.

### 4. **Transformadores**
– **BERT (Bidirectional Encoder Representations from Transformers)**: Modelo que captura o contexto de uma palavra com base em todas as outras palavras na frase.
– **GPT (Generative Pre-trained Transformer)**: Modelo que gera texto de forma coerente e contextualizada.

### 5. **Técnicas de Aprendizado de Máquina**
– **Classificação de Texto**: Algoritmos como Support Vector Machines (SVM) e Árvores de Decisão.
– **Análise de Sentimento**: Usada para determinar a polaridade de um texto (positivo, negativo, neutro).

### 6. **Técnicas de Pré-processamento**
– **Tokenização**: Divisão de texto em palavras ou frases.
– **Remoção de Stop Words**: Eliminação de palavras comuns que não adicionam significado (como “e”, “a”, “de”).
– **Stemming e Lemmatization**: Redução de palavras às suas raízes.

Esses algoritmos e técnicas são fundamentais para o desenvolvimento de aplicações em NLP, como chatbots, tradutores automáticos, sistemas de recomendação e muito mais. Se precisar de mais detalhes sobre algum algoritmo específico, fique à vontade para perguntar!

Elasticsearch

Criando Índice

$ wget http://media.sundog-soft.com/es7/shakes-mapping.json

$ curl -H 'Content-Type: application/json' -XPUT 127.0.0.1:9200/shakespeare --data-binary @shakes-mapping.json


$ wget http://media.sundog-soft.com/es7/shakespeare_7.0.json

$ curl -H 'Content-Type: application/json' -XPOST '127.0.0.1:9200/shakespeare/_bulk?pretty' --data-binary @shakespeare_7.0.json


$ curl -H 'Content-Type: application/json' -XGET
'127.0.0.1:9200/shakespeare/_search?pretty' -d '
{
   "query" : {
      "match_phrase" : {
         "text_entry" : "to be or not to be"
      }
  }
}'

 

English Tenses

  1. Present Tenses:
    • Simple Present: Used for habitual actions or general truths. (e.g., “I eat breakfast every morning.”)
    • Present Continuous: Describes ongoing actions happening right now. (e.g., “I am eating breakfast now.”)
  2. Past Tenses:
    • Simple Past: Used for actions completed in the past. (e.g., “I ate breakfast an hour ago.”)
    • Past Continuous: Describes past actions that were in progress at a specific time. (e.g., “I was eating breakfast when you called.”)
  3. Future Tenses:
    • Simple Future: Refers to actions that will happen. (e.g., “I will eat breakfast tomorrow.”)
    • Future Continuous: Describes actions that will be in progress at a specific time in the future. (e.g., “I will be eating breakfast at 8 AM tomorrow.”)
  4. Perfect Tenses:
    • Present Perfect: For actions that occurred at an unspecified time or have relevance to the present. (e.g., “I have eaten breakfast already.”)
    • Past Perfect: Indicates an action that was completed before another past event. (e.g., “I had eaten breakfast before you arrived.”)
    • Future Perfect: Describes actions that will be completed before a certain future time. (e.g., “I will have eaten breakfast by the time you arrive.”)
  5. Perfect Continuous Tenses:
    • Present Perfect Continuous: Focuses on the duration of an action that started in the past and continues into the present. (e.g., “I have been eating breakfast for 30 minutes.”)
    • Past Perfect Continuous: Indicates ongoing action in the past that was completed before another action. (e.g., “I had been eating breakfast when the phone rang.”)
    • Future Perfect Continuous: Refers to long actions that will continue up to a point in the future. (e.g., “I will have been eating breakfast for 30 minutes by the time you arrive.”)

 

Motivation to join us – Aria

Question

Answer the following question, with best possibles answers. Question: What’s motivation to join us?

Answer

Motivation to Join Us

Joining our team can be a transformative experience for individuals looking to grow both personally and professionally. Here are some compelling reasons to consider:

1. Professional Growth

  • Skill Development: Access to training programs and workshops that enhance your skills.
  • Career Advancement: Opportunities for promotions and career progression within the company.

2. Positive Work Environment

  • Collaborative Culture: Work with a team that values collaboration and open communication.
  • Supportive Leadership: Guidance from leaders who are committed to your success.

3. Impactful Work

  • Meaningful Projects: Engage in projects that make a difference in the community or industry.
  • Innovation: Be part of a team that values creativity and encourages new ideas.

4. Competitive Benefits

  • Comprehensive Packages: Attractive salary, health benefits, and retirement plans.
  • Work-Life Balance: Flexible working hours and remote work options to support your personal life.

5. Networking Opportunities

  • Build Connections: Collaborate with professionals from diverse backgrounds and industries.
  • Mentorship: Access to mentors who can provide guidance and support in your career journey.

6. Company Values

  • Shared Vision: Join a team that aligns with your values and mission.
  • Diversity and Inclusion: A commitment to fostering an inclusive workplace where everyone feels valued.

7. Personal Fulfillment

  • Passion Projects: Engage in work that you are passionate about, leading to greater job satisfaction.
  • Community Engagement: Participate in initiatives that give back to the community.

Joining us means becoming part of a dynamic team that’s focused on achieving excellence while fostering a culture of support and growth. We look forward to welcoming you!

Top 20 tricky Job Interview questions

Here are 20 tricky job interview questions along with suggested responses to help you navigate them effectively:

1. Tell me about yourself.

  • Best Answer: Start with a brief overview of your professional background, highlight your key achievements, and conclude with what you are looking for in your next opportunity.
  • Example: “I have over 5 years of experience in marketing, specializing in digital strategies. I successfully led a campaign that increased our online engagement by 40% last year. I am now looking for a role where I can further develop my skills and contribute to a dynamic team.”

2. What are your greatest weaknesses?

  • Best Answer: Choose a real weakness and describe what you’re doing to improve it.
  • Example: “I tend to be a perfectionist, which can slow me down. However, I’m learning to prioritize tasks and set realistic goals to maintain quality without compromising deadlines.”

3. Why should we hire you?

  • Best Answer: Highlight your unique skills, experiences, and how they align with the company’s needs.
  • Example: “I bring a unique combination of technical expertise and creative problem-solving skills that will help your team achieve its objectives. My experience in project management and my passion for innovation make me a strong fit.”

4. Tell me about a time you faced a challenge at work.

  • Best Answer: Use the STAR method (Situation, Task, Action, Result) to structure your response.
  • Example: “In my last job, we faced a tight deadline on a major project. I organized daily check-ins, delegated tasks based on team strengths, and we delivered on time while exceeding quality expectations.”

5. Where do you see yourself in five years?

  • Best Answer: Focus on your professional growth and how it aligns with the company’s future.
  • Example: “In five years, I see myself in a leadership position, having taken on more responsibilities and contributing to strategic decision-making within the company.”

6. Why are you leaving your current job?

  • Best Answer: Keep it positive, focusing on future opportunities rather than negative experiences.
  • Example: “I’ve enjoyed my time at my current job, but I’m looking for new challenges that align more closely with my career goals and allow for growth.”

7. What did you like least about your last job?

  • Best Answer: Mention something minor and how you learned from that experience.
  • Example: “While I appreciated my last role, I found the lack of collaborative projects limiting. I enjoy teamwork and believe it drives innovation.”

8. How do you handle stress and pressure?

  • Best Answer: Share techniques you use to manage stress effectively.
  • Example: “I handle stress by staying organized, breaking tasks into manageable parts, and taking short breaks to recharge. This helps me maintain focus and productivity.”

9. Describe your ideal work environment.

  • Best Answer: Align your preferences with the company’s culture.
  • Example: “I thrive in collaborative environments that encourage creativity and open communication, as I believe teamwork drives the best results.”

10. What are your salary expectations?

  • Best Answer: Provide a salary range based on market research and your experience.
  • Example: “Based on my research and the responsibilities of this role, I would expect a salary in the range of 60,000to70,000.”

11. What motivates you?

  • Best Answer: Mention intrinsic motivators that relate to the job.
  • Example: “I am motivated by the opportunity to solve complex problems and make a positive impact on my team and the company.”

12. How do you prioritize your work?

  • Best Answer: Explain your approach to time management and prioritization.
  • Example: “I use a combination of to-do lists and project management tools to prioritize tasks based on deadlines and importance, ensuring I stay on track.”

13. How do you handle criticism?

  • Best Answer: Show that you are open to feedback and willing to learn.
  • Example: “I view criticism as an opportunity for growth. I take feedback seriously and use it to improve my performance.”

14. Tell me about a time you disagreed with a team member.

  • Best Answer: Focus on how you resolved the disagreement constructively.
  • Example: “When I disagreed with a team member about a project direction, I suggested we present both viewpoints to our manager and collaborate on a solution. This led to a better outcome.”

15. What would your coworkers say about you?

  • Best Answer: Highlight positive traits that reflect your work ethic.
  • Example: “My coworkers would describe me as reliable, hardworking, and always willing to lend a hand when needed.”

16. How do you stay current in your field?

  • Best Answer: Mention specific resources or methods you use to keep your skills updated.
  • Example: “I regularly attend industry conferences, participate in webinars, and follow key thought leaders on social media to stay informed about trends and best practices.”

17. If I were to ask your last boss about you, what would they say?

  • Best Answer: Reflect on the positive aspects of your performance.
  • Example: “My last boss would likely say I am a dedicated team player who consistently meets deadlines and contributes innovative ideas to our projects.”

18. What do you consider your biggest professional achievement?

  • Best Answer: Choose a significant accomplishment that showcases your skills.
  • Example: “My biggest achievement was leading a cross-functional team to launch a product that generated $1 million in revenue within the first year.”

19. What is your management style?

  • Best Answer: Describe a style that aligns with the company’s culture.
  • Example: “I believe in a participative management style, encouraging team input and fostering a collaborative environment where everyone feels valued.”

20. Do you have any questions for us?

  • Best Answer: Always prepare insightful questions to show your interest.
  • Example: “Can you tell me more about the team I would be working with and the key challenges you foresee in this role?”

By preparing thoughtful answers to these tricky interview questions, you can present yourself confidently and effectively to potential employers.

Top 20 Job Interview Questions

Remote Job – 30 websites

Here are 30 websites to find remote jobs that pay in USD:

1. Remote Woman.

-Women have the opportunity to work from home, enhancing their productivity and flexibility

🔗 Link: remotewoman.com

2. Wellfound

– Unique jobs
– Top Companies
– Over 130,000 jobs

🔗 Link: https://wellfound.com/jobs

3. RemoteOK

– Over 600,000 jobs
– Work from anywhere
– The no. 1 remote job board

🔗 Link: https://remoteok.com

4. Remotive

– Over 30,000 jobs
– Vetted tech companies
– Full remote job opportunities

🔗 Link: https://remotive.com

5. Remote.co

– Hand curated
– Grow remotely
– 146 remote companies

🔗 Link: https://lnkd.in/eYgwD4bB

6. FlexJobs – Vetted Remote & Flexible Jobs

– 50+ categories
– Over 42,000 jobs
– 5,509 companies

🔗Link: https://www.flexjobs.com

7. JustRemote

– Jobs that fit your life
– Fully and partially remote
– Top remote working companies

🔗Link: https://lnkd.in/d5ZqAXm

8. PowerToFly

-2987 Remote jobs
– Jobs tailored to your skillset
– Land a job at a company committed to diversity & inclusion

🔗Link: https://powertofly.com/

9. Al Jobs

– Top Al job board
– Full-time remote jobs
– Top 1% of Al companies

🔗Link: https://theaijobboard.com

10. Toptal

– Top Companies
– Exclusive network
– Community of experts

🔗Link: https://www.toptal.com

11. Working Nomads Nomads

-100% remote jobs
-Work from anywhere
-For digital working nomads

🔗 Link: https://lnkd.in/efQwAr7V

12. Simply Hired (simply hired.com)

13. Angel List (angel.co/Jobs)

14. Virtual Vocations (virtaalvocations.com)

15. Stack Overflow Jobs (Stack Overflow.com/Jobs)

16. Remote co (Remote.co)

17. Dice (dice.com)

18. Jobspresso (Jobspresso.co)

19. Upwork (upwork.com)

20. Outsourcely (Outsourcely.com)

21. Europe Remotely (europeremiely.com)

22. We work Remotely (weworkremotely.com)

23. Remote ok Europe (remoteok.io/Europe)

24. Flex Jobs (flexjobs.com)

25. Remole of Asia (remoteok.io/asia)

26. Outsourcely: Connect with remote job opportunities and freelance gigs.

🔗 Link (https://lnkd.in/gD32kSAV)

27.remote4me : Customize your remote job search based on location, salary, and more.

🔗 Link (https://remote4me.com/)

28. AutoApply.Jobs

With one click, auto-apply to jobs without any human effort.

https://autoapply.jobs/

29. FinalScout

Transform your LinkedIn connections into email lists with this ChatGPT-Powered Email Finding Extension.

https://finalscout.com

30. Yoodli Al:

Enhance your online meeting job interviews with private, real-time speech coaching.

https://app.yoodli.ai/