JSFiddle - React, Tailwind, and code Playground

HTML

<div class="box">
  <div class="image-profile">
    <img class="image" src="https://placehold.jp/150x150.png" alt="" width="100px" height="100px">
    <div class="profile">男性</div>
  </div>
  <div class="text">ここにテキストを入れます。ここにテキストを入れます。ここにテキストを入れます。ここにテキストを入れます。ここにテキストを入れます。ここにテキストを入れます。ここにテキストを入れます。ここにテキストを入れます。ここにテキストを入れます。</div>
</div>

CSS

.box {
  display: flex;
  padding: 10px;
  background-color: aqua;
  border-radius: 20px;
  width: 100%;
  height: auto;
}

.image-profile {
  width: 150px; /* 画像と文字を入れるコンテイナーのサイズ指定 */
  height: 150px; /* 画像と文字を入れるコンテイナーのサイズ指定 */
  margin-right: 10px; /* コンテイナーと文章の間の余白 */
  position: relative; /* 子要素の移動の基点に設定する */
  background-color: white;
  border-radius: 50%;
  overflow: hidden; /* 子要素のはみ出た部分は非表示にする */
}

.image {
  width: 100%; /* コンテイナーの横幅いっぱい(150%) */
  height: 100%; /* コンテイナーの高さいっぱい(150%) */
  object-fit: cover; /* ↑の指定だけだと、長方形の画像の場合縦横比が崩れた形で変形されてしまうので、親要素の形状に切り抜かれるようにする */
  /* padding: 10px; */
  /* margin: 10px; */
}

.profile {
  position: absolute; /* 親要素の上に重ねる */
  left: 50%; /* 左から50%の位置に移動(つまり右に移動) */
  bottom: 10px; /* 下から10pxの位置に移動 */
  transform: translateX(-50%); /* 右に行き過ぎているので、文字の長さの半分だけ左に移動 */
  text-align: center;
}

.text {
  width: calc(100% - 150px); /* 文章エリアの横幅は、親要素全体の幅から画像の幅を引いたもの */
}