interface AILover {
val pairProgrammer: String get() = "π€ AI"
fun build(project: String) = "π‘ $project β π§βπ» + π€ β π"
}
data class Engineer(
val name: String,
val roles: List<String>,
val languageSpoken: List<String>,
) : AILover {
fun introduce() = println("Hi, I'm $name β ${roles.joinToString(" Β· ")}. Thanks for visiting π")
}
fun main() {
val me = Engineer(
name = "μ΄κ·λ½",
roles = listOf("Software Engineer", "AX Engineer", "AI Lover"),
languageSpoken = listOf("ko_KR", "en_US"),
)
me.introduce()
listOf("pykorail", "mysql-gcm", "syncintosh").forEach { println(me.build(it)) }
}- π οΈ Software Engineer β building SDKs, database extensions, and developer tools
- π AX Engineer β bringing AI into how software gets designed, written, reviewed, and shipped
- π€ AI Lover β every project I'm currently working on is built together with AI
| Category | Stack |
|---|---|
| Languages | |
| Frameworks | |
| OS & Deploy | |
| Databases |
| Project | Description | Stack |
|---|---|---|
| π pykorail |
Unofficial Python SDK for the Korail Talk API β search, book, pay, refund, waitlist, and watch for cancelled KTX tickets in a few lines of code | |
| π mysql-gcm | AES-GCM for MySQL 8.0+ as a server component β keeps server-side LIKE on the encrypted plaintext, with a deterministic variant for joins and UNIQUE |
|
| π syncintosh | sync + Macintosh β CLI that keeps developer-environment settings in step across Macs through an end-to-end encrypted git repository, with format-aware 3-way merge β π§ early stage | |
| π€ hipchapedia | Hipchapedia β AI-powered hip-hop lyrics analysis |
- AIκ° μ곡ν λΉμ©μ 0μΌλ‘ λ§λ€ λ, λ©μΈν μ΄λκ° κ·Έμ΄μΌ ν μ
- λ΄ μλ²μ μ μ ν worker ν λΉνκΈ° (Feat. Nginx, Gunicorn, Uvicorn)
- μ΄μ¨λ μμ±νμΌλκΉ μ’μμ°! (μ’μμ°! λ³νκΈ° νλ‘μ νΈ νκ³ )
- λ€μ λ§λμ§ λ§μ, 2023λ
- λκ° μμ²λ¬λ 2022λ μ λλ΄λ©΄μ




