Chiyuang Tseng.contentarea html {
-webkit-print-color-adjust: exact;
}
.contentarea * {
box-sizing: border-box; -webkit-print-color-adjust: exact;
}
.contentarea html {
margin: 0; padding: 0;
}
.contentarea body {
margin: 0; padding: 0;
}
.contentarea body {
line-height: 1.5; white-space: pre-wrap;
}
.contentarea a {
color: inherit; text-decoration: underline;
}
.contentarea a.visited {
color: inherit; text-decoration: underline;
}
.contentarea .pdf-relative-link-path {
font-size: 80%; color: #444;
}
.contentarea h1 {
letter-spacing: -0.01em; line-height: 1.2; font-weight: 600; margin-bottom: 0;
}
.contentarea h2 {
letter-spacing: -0.01em; line-height: 1.2; font-weight: 600; margin-bottom: 0;
}
.contentarea h3 {
letter-spacing: -0.01em; line-height: 1.2; font-weight: 600; margin-bottom: 0;
}
.contentarea .page-title {
font-size: 2.5rem; font-weight: 700; margin-top: 0; margin-bottom: 0.75em;
}
.contentarea h1 {
font-size: 1.875rem; margin-top: 1.875rem;
}
.contentarea h2 {
font-size: 1.5rem; margin-top: 1.5rem;
}
.contentarea h3 {
font-size: 1.25rem; margin-top: 1.25rem;
}
.contentarea .source {
border: 1px solid #ddd; border-radius: 3px; padding: 1.5em; word-break: break-all;
}
.contentarea .callout {
border-radius: 3px; padding: 1rem;
}
.contentarea figure {
margin: 1.25em 0; page-break-inside: avoid;
}
.contentarea figcaption {
opacity: 0.5; font-size: 85%; margin-top: 0.5em;
}
.contentarea mark {
background-color: transparent;
}
.contentarea .indented {
padding-left: 1.5em;
}
.contentarea hr {
background: transparent; display: block; width: 100%; height: 1px; visibility: visible; border: none; border-bottom: 1px solid rgba(55, 53, 47, 0.09);
}
.contentarea img {
max-width: 100%;
}
.contentarea @page {
margin: 1in;
}
.contentarea .collection-content {
font-size: 0.875rem;
}
.contentarea .column-list {
display: flex; justify-content: space-between;
}
.contentarea .column {
padding: 0 1em;
}
.contentarea .column:first-child {
padding-left: 0;
}
.contentarea .column:last-child {
padding-right: 0;
}
.contentarea .table_of_contents-item {
display: block; font-size: 0.875rem; line-height: 1.3; padding: 0.125rem;
}
.contentarea .table_of_contents-indent-1 {
margin-left: 1.5rem;
}
.contentarea .table_of_contents-indent-2 {
margin-left: 3rem;
}
.contentarea .table_of_contents-indent-3 {
margin-left: 4.5rem;
}
.contentarea .table_of_contents-link {
text-decoration: none; opacity: 0.7; border-bottom: 1px solid rgba(55, 53, 47, 0.18);
}
.contentarea table {
border: 1px solid rgba(55, 53, 47, 0.09); border-collapse: collapse;
}
.contentarea th {
border: 1px solid rgba(55, 53, 47, 0.09); border-collapse: collapse;
}
.contentarea td {
border: 1px solid rgba(55, 53, 47, 0.09); border-collapse: collapse;
}
.contentarea table {
border-left: none; border-right: none;
}
.contentarea th {
font-weight: normal; padding: 0.25em 0.5em; line-height: 1.5; min-height: 1.5em; text-align: left;
}
.contentarea td {
font-weight: normal; padding: 0.25em 0.5em; line-height: 1.5; min-height: 1.5em; text-align: left;
}
.contentarea th {
color: rgba(55, 53, 47, 0.6);
}
.contentarea ol {
margin: 0; margin-block-start: 0.6em; margin-block-end: 0.6em;
}
.contentarea ul {
margin: 0; margin-block-start: 0.6em; margin-block-end: 0.6em;
}
.contentarea li > ol:first-child {
margin-block-start: 0.6em;
}
.contentarea li > ul:first-child {
margin-block-start: 0.6em;
}
.contentarea ul > li {
list-style: disc;
}
.contentarea ul.to-do-list {
padding-inline-start: 0;
}
.contentarea ul.to-do-list > li {
list-style: none;
}
.contentarea .to-do-children-checked {
text-decoration: line-through; opacity: 0.375;
}
.contentarea ul.toggle > li {
list-style: none;
}
.contentarea ul {
padding-inline-start: 1.7em;
}
.contentarea ul > li {
padding-left: 0.1em;
}
.contentarea ol {
padding-inline-start: 1.6em;
}
.contentarea ol > li {
padding-left: 0.2em;
}
.contentarea .mono ol {
padding-inline-start: 2em;
}
.contentarea .mono ol > li {
text-indent: -0.4em;
}
.contentarea .toggle {
padding-inline-start: 0em; list-style-type: none;
}
.contentarea .toggle > li > details {
padding-left: 1.7em;
}
.contentarea .toggle > li > details > summary {
margin-left: -1.1em;
}
.contentarea .selected-value {
display: inline-block; padding: 0 0.5em; background: rgba(206, 205, 202, 0.5); border-radius: 3px; margin-right: 0.5em; margin-top: 0.3em; margin-bottom: 0.3em; white-space: nowrap;
}
.contentarea .collection-title {
display: inline-block; margin-right: 1em;
}
.contentarea .page-description {
margin-bottom: 2em;
}
.contentarea .simple-table {
margin-top: 1em; font-size: 0.875rem; empty-cells: show;
}
.contentarea .simple-table td {
height: 29px; min-width: 120px;
}
.contentarea .simple-table th {
height: 29px; min-width: 120px;
}
.contentarea .simple-table-header-color {
background: rgb(247, 246, 243); color: black;
}
.contentarea .simple-table-header {
font-weight: 500;
}
.contentarea time {
opacity: 0.5;
}
.contentarea .icon {
display: inline-block; max-width: 1.2em; max-height: 1.2em; text-decoration: none; vertical-align: text-bottom; margin-right: 0.5em;
}
.contentarea img.icon {
border-radius: 3px;
}
.contentarea .user-icon {
width: 1.5em; height: 1.5em; border-radius: 100%; margin-right: 0.5rem;
}
.contentarea .user-icon-inner {
font-size: 0.8em;
}
.contentarea .text-icon {
border: 1px solid #000; text-align: center;
}
.contentarea .page-cover-image {
display: block; object-fit: cover; width: 100%; max-height: 30vh;
}
.contentarea .page-header-icon {
font-size: 3rem; margin-bottom: 1rem;
}
.contentarea .page-header-icon-with-cover {
margin-top: -0.72em; margin-left: 0.07em;
}
.contentarea .page-header-icon img {
border-radius: 3px;
}
.contentarea .link-to-page {
margin: 1em 0; padding: 0; border: none; font-weight: 500;
}
.contentarea p > .user {
opacity: 0.5;
}
.contentarea td > .user {
white-space: nowrap;
}
.contentarea td > time {
white-space: nowrap;
}
.contentarea input[type="checkbox"] {
transform: scale(1.5); margin-right: 0.6em; vertical-align: middle;
}
.contentarea p {
margin-top: 0.5em; margin-bottom: 0.5em;
}
.contentarea .image {
border: none; margin: 1.5em 0; padding: 0; border-radius: 0; text-align: center;
}
.contentarea .code {
background: rgba(135, 131, 120, 0.15); border-radius: 3px; padding: 0.2em 0.4em; font-size: 85%; tab-size: 2;
}
.contentarea code {
background: rgba(135, 131, 120, 0.15); border-radius: 3px; padding: 0.2em 0.4em; font-size: 85%; tab-size: 2;
}
.contentarea code {
color: #eb5757;
}
.contentarea .code {
padding: 1.5em 1em;
}
.contentarea .code-wrap {
white-space: pre-wrap; word-break: break-all;
}
.contentarea .code > code {
background: none; padding: 0; font-size: 100%; color: inherit;
}
.contentarea blockquote {
font-size: 1.25em; margin: 1em 0; padding-left: 1em; border-left: 3px solid rgb(55, 53, 47);
}
.contentarea .bookmark {
text-decoration: none; max-height: 8em; padding: 0; display: flex; width: 100%; align-items: stretch;
}
.contentarea .bookmark-title {
font-size: 0.85em; overflow: hidden; text-overflow: ellipsis; height: 1.75em; white-space: nowrap;
}
.contentarea .bookmark-text {
display: flex; flex-direction: column;
}
.contentarea .bookmark-info {
flex: 4 1 180px; padding: 12px 14px 14px; display: flex; flex-direction: column; justify-content: space-between;
}
.contentarea .bookmark-image {
width: 33%; flex: 1 1 180px; display: block; position: relative; object-fit: cover; border-radius: 1px;
}
.contentarea .bookmark-description {
color: rgba(55, 53, 47, 0.6); font-size: 0.75em; overflow: hidden; max-height: 4.5em; word-break: break-word;
}
.contentarea .bookmark-href {
font-size: 0.75em; margin-top: 0.25em;
}
.contentarea .sans {
font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, "Apple Color Emoji", Arial, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
}
.contentarea .code {
font-family: "SFMono-Regular", Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace;
}
.contentarea .serif {
font-family: Lyon-Text, Georgia, ui-serif, serif;
}
.contentarea .mono {
font-family: iawriter-mono, Nitti, Menlo, Courier, monospace;
}
.contentarea .pdf .sans {
font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, "Apple Color Emoji", Arial, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol", 'Twemoji', 'Noto Color Emoji', 'Noto Sans CJK JP';
}
.contentarea .pdf:lang(zh-CN) .sans {
font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, "Apple Color Emoji", Arial, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol", 'Twemoji', 'Noto Color Emoji', 'Noto Sans CJK SC';
}
.contentarea .pdf:lang(zh-TW) .sans {
font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, "Apple Color Emoji", Arial, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol", 'Twemoji', 'Noto Color Emoji', 'Noto Sans CJK TC';
}
.contentarea .pdf:lang(ko-KR) .sans {
font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, "Apple Color Emoji", Arial, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol", 'Twemoji', 'Noto Color Emoji', 'Noto Sans CJK KR';
}
.contentarea .pdf .code {
font-family: Source Code Pro, "SFMono-Regular", Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace, 'Twemoji', 'Noto Color Emoji', 'Noto Sans Mono CJK JP';
}
.contentarea .pdf:lang(zh-CN) .code {
font-family: Source Code Pro, "SFMono-Regular", Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace, 'Twemoji', 'Noto Color Emoji', 'Noto Sans Mono CJK SC';
}
.contentarea .pdf:lang(zh-TW) .code {
font-family: Source Code Pro, "SFMono-Regular", Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace, 'Twemoji', 'Noto Color Emoji', 'Noto Sans Mono CJK TC';
}
.contentarea .pdf:lang(ko-KR) .code {
font-family: Source Code Pro, "SFMono-Regular", Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace, 'Twemoji', 'Noto Color Emoji', 'Noto Sans Mono CJK KR';
}
.contentarea .pdf .serif {
font-family: PT Serif, Lyon-Text, Georgia, ui-serif, serif, 'Twemoji', 'Noto Color Emoji', 'Noto Serif CJK JP';
}
.contentarea .pdf:lang(zh-CN) .serif {
font-family: PT Serif, Lyon-Text, Georgia, ui-serif, serif, 'Twemoji', 'Noto Color Emoji', 'Noto Serif CJK SC';
}
.contentarea .pdf:lang(zh-TW) .serif {
font-family: PT Serif, Lyon-Text, Georgia, ui-serif, serif, 'Twemoji', 'Noto Color Emoji', 'Noto Serif CJK TC';
}
.contentarea .pdf:lang(ko-KR) .serif {
font-family: PT Serif, Lyon-Text, Georgia, ui-serif, serif, 'Twemoji', 'Noto Color Emoji', 'Noto Serif CJK KR';
}
.contentarea .pdf .mono {
font-family: PT Mono, iawriter-mono, Nitti, Menlo, Courier, monospace, 'Twemoji', 'Noto Color Emoji', 'Noto Sans Mono CJK JP';
}
.contentarea .pdf:lang(zh-CN) .mono {
font-family: PT Mono, iawriter-mono, Nitti, Menlo, Courier, monospace, 'Twemoji', 'Noto Color Emoji', 'Noto Sans Mono CJK SC';
}
.contentarea .pdf:lang(zh-TW) .mono {
font-family: PT Mono, iawriter-mono, Nitti, Menlo, Courier, monospace, 'Twemoji', 'Noto Color Emoji', 'Noto Sans Mono CJK TC';
}
.contentarea .pdf:lang(ko-KR) .mono {
font-family: PT Mono, iawriter-mono, Nitti, Menlo, Courier, monospace, 'Twemoji', 'Noto Color Emoji', 'Noto Sans Mono CJK KR';
}
.contentarea .highlight-default {
color: rgba(55, 53, 47, 1);
}
.contentarea .highlight-gray {
color: rgba(120, 119, 116, 1); fill: rgba(120, 119, 116, 1);
}
.contentarea .highlight-brown {
color: rgba(159, 107, 83, 1); fill: rgba(159, 107, 83, 1);
}
.contentarea .highlight-orange {
color: rgba(217, 115, 13, 1); fill: rgba(217, 115, 13, 1);
}
.contentarea .highlight-yellow {
color: rgba(203, 145, 47, 1); fill: rgba(203, 145, 47, 1);
}
.contentarea .highlight-teal {
color: rgba(68, 131, 97, 1); fill: rgba(68, 131, 97, 1);
}
.contentarea .highlight-blue {
color: rgba(51, 126, 169, 1); fill: rgba(51, 126, 169, 1);
}
.contentarea .highlight-purple {
color: rgba(144, 101, 176, 1); fill: rgba(144, 101, 176, 1);
}
.contentarea .highlight-pink {
color: rgba(193, 76, 138, 1); fill: rgba(193, 76, 138, 1);
}
.contentarea .highlight-red {
color: rgba(212, 76, 71, 1); fill: rgba(212, 76, 71, 1);
}
.contentarea .highlight-gray_background {
background: rgba(241, 241, 239, 1);
}
.contentarea .highlight-brown_background {
background: rgba(244, 238, 238, 1);
}
.contentarea .highlight-orange_background {
background: rgba(251, 236, 221, 1);
}
.contentarea .highlight-yellow_background {
background: rgba(251, 243, 219, 1);
}
.contentarea .highlight-teal_background {
background: rgba(237, 243, 236, 1);
}
.contentarea .highlight-blue_background {
background: rgba(231, 243, 248, 1);
}
.contentarea .highlight-purple_background {
background: rgba(244, 240, 247, 0.8);
}
.contentarea .highlight-pink_background {
background: rgba(249, 238, 243, 0.8);
}
.contentarea .highlight-red_background {
background: rgba(253, 235, 236, 1);
}
.contentarea .block-color-default {
color: inherit; fill: inherit;
}
.contentarea .block-color-gray {
color: rgba(120, 119, 116, 1); fill: rgba(120, 119, 116, 1);
}
.contentarea .block-color-brown {
color: rgba(159, 107, 83, 1); fill: rgba(159, 107, 83, 1);
}
.contentarea .block-color-orange {
color: rgba(217, 115, 13, 1); fill: rgba(217, 115, 13, 1);
}
.contentarea .block-color-yellow {
color: rgba(203, 145, 47, 1); fill: rgba(203, 145, 47, 1);
}
.contentarea .block-color-teal {
color: rgba(68, 131, 97, 1); fill: rgba(68, 131, 97, 1);
}
.contentarea .block-color-blue {
color: rgba(51, 126, 169, 1); fill: rgba(51, 126, 169, 1);
}
.contentarea .block-color-purple {
color: rgba(144, 101, 176, 1); fill: rgba(144, 101, 176, 1);
}
.contentarea .block-color-pink {
color: rgba(193, 76, 138, 1); fill: rgba(193, 76, 138, 1);
}
.contentarea .block-color-red {
color: rgba(212, 76, 71, 1); fill: rgba(212, 76, 71, 1);
}
.contentarea .block-color-gray_background {
background: rgba(241, 241, 239, 1);
}
.contentarea .block-color-brown_background {
background: rgba(244, 238, 238, 1);
}
.contentarea .block-color-orange_background {
background: rgba(251, 236, 221, 1);
}
.contentarea .block-color-yellow_background {
background: rgba(251, 243, 219, 1);
}
.contentarea .block-color-teal_background {
background: rgba(237, 243, 236, 1);
}
.contentarea .block-color-blue_background {
background: rgba(231, 243, 248, 1);
}
.contentarea .block-color-purple_background {
background: rgba(244, 240, 247, 0.8);
}
.contentarea .block-color-pink_background {
background: rgba(249, 238, 243, 0.8);
}
.contentarea .block-color-red_background {
background: rgba(253, 235, 236, 1);
}
.contentarea .select-value-color-uiBlue {
background-color: rgba(35, 131, 226, .07);
}
.contentarea .select-value-color-pink {
background-color: rgba(245, 224, 233, 1);
}
.contentarea .select-value-color-purple {
background-color: rgba(232, 222, 238, 1);
}
.contentarea .select-value-color-green {
background-color: rgba(219, 237, 219, 1);
}
.contentarea .select-value-color-gray {
background-color: rgba(227, 226, 224, 1);
}
.contentarea .select-value-color-translucentGray {
background-color: rgba(255, 255, 255, 0.0375);
}
.contentarea .select-value-color-orange {
background-color: rgba(250, 222, 201, 1);
}
.contentarea .select-value-color-brown {
background-color: rgba(238, 224, 218, 1);
}
.contentarea .select-value-color-red {
background-color: rgba(255, 226, 221, 1);
}
.contentarea .select-value-color-yellow {
background-color: rgba(253, 236, 200, 1);
}
.contentarea .select-value-color-blue {
background-color: rgba(211, 229, 239, 1);
}
.contentarea .select-value-color-pageGlass {
background-color: undefined;
}
.contentarea .select-value-color-washGlass {
background-color: undefined;
}
.contentarea .checkbox {
display: inline-flex; vertical-align: text-bottom; width: 16; height: 16; background-size: 16px; margin-left: 2px; margin-right: 5px;
}
.contentarea .checkbox-on {
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%2358A9D7%22%2F%3E%0A%3Cpath%20d%3D%22M6.71429%2012.2852L14%204.9995L12.7143%203.71436L6.71429%209.71378L3.28571%206.2831L2%207.57092L6.71429%2012.2852Z%22%20fill%3D%22white%22%2F%3E%0A%3C%2Fsvg%3E");
}
.contentarea .checkbox-off {
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%220.75%22%20y%3D%220.75%22%20width%3D%2214.5%22%20height%3D%2214.5%22%20fill%3D%22white%22%20stroke%3D%22%2336352F%22%20stroke-width%3D%221.5%22%2F%3E%0A%3C%2Fsvg%3E");
}
@media only screen {
.contentarea body {
margin: 2em auto; max-width: 900px; color: rgb(55, 53, 47);
}
}
@media only print {
.contentarea img {
max-height: 100vh; object-fit: contain;
}
}
Chiyuang Tseng
+886 972153572
asymptotion@gmail.com
Skills
Programming language: Go, Python, C++
Developing tool: Linux, Git, Docker, Kubernetes, Postman
Databases: MySQL, Redis, MongoDB, Firestore, BigQuery
Cloud: GCP(Kubernetes Engine, BigQuery, CloudSQL, Cloud Storage, Pub/Sub), AWS(SES, SNS)
Others: Nginx, ELK stack, RESTful API, Swagger
Experience
- Feb 2023 - Dec 2023 Senior Software Engineer, iKala(CDP)
-
Oct 2020 - Jan 2023 Software Engineer, iKala(CDP)
- Designed and implemented an URL shortener for event tracking
- Designed and implemented IAM module of CDP
- Responsible for 3rd party API integrations, includes Google Ads, AWS SES&SNS,
Newsleopard(email), MAAC(LINE messaging provider), and EVERY8D(SMS provider)
-
Sep 2017 - Dec 2018 Junior Backend Developer, 17Media
- Real-time interactive quiz game in video streaming
- Implemented game mechanism and management interface
- Conducted stress test for up to 100K users playing game at the same time
- Scheduled notification module
- Dealt with max about 10M of message transmission in 15 minutes
- Streaming simulator
- Simulates users’ actions in video streaming
- Triggered by slack commands to simplify testing flow
Educations
- Sep 2014 - Jan 2018 Attended Graduate Institute of Electrical Engineering, National Taiwan University
- Sep 2007 - Jan 2011 Attended Department of Bioenvironmental Systems Engineering, National Taiwan University