Mobile Client 개발, 특히 iOS 개발을 주로 하고 있습니다. UI/UX 를 개선해서 사용자들의 반응을 보는 것을 좋아하고, 개발 생산성을 높이는 것을 좋아합니다. 개발 생산성이란 동일한 작업을 빠르게 만드는 것일 수도 있지만, 추후 변화를 빠르게 반영할 수 있는 구조로 만드는 것도 같은 의미라고 생각하기 때문에 효율적인 설계를 위해 항상 고민하고 있습니다. iOS 개발은 Swift 와 같은 High-Level 프로그래밍 언어를 사용합니다. High-Level 프로그래밍 언어를 사용하는 개발에서는 유지보수와 확장성이 곧 성능이라는 어느 개발자분의 발표를 감명 깊게 들은 적이 있었는데, 그 후 Architecture, Design Pattern 에 대해서도 많이 고민하고 있습니다. 그리고 요즘 Client 쪽에서 많은 장점이 있어서 이제는 거의 기본사양이 되어버린 Rx 를 현업에서 오랜 기간동안 사용하고 있습니다.
  한번 개발할 때 접근제한자와 같이 컴파일러가 잡아주지 않는 부분을 컴팩트하게 사용하며 개발하려고 노력합니다. 다양한 객체 간 커뮤니케이션 패턴을 숙지하고 있고, retain cycle 로 인한 memory leak 을 항상 조심하며 개발하고 있습니다. UI 구현은 Storyboard 를 이용하는 방식보다는 코드로 작성하는 방식을 더 선호합니다. 최근에는 Texture 를 주로 이용하고 있습니다. 뷰단에선 재사용 가능과 변화에 빠르게 대응할 수 있도록 생각하면서 설계하고, 로직단에선 SOLID 원칙을 참고해서 설계하려고 노력하고 있습니다. 객체 간 의존성은 한곳에서 관리하는 것을 좋아하고, 효율적인 의존성 관리를 위해 IoC Container 와 Pure 를 같이 사용하는 것을 좋아합니다. 다양한 케이스의 Unit Test 들을 작성해봤고, TDD 로 개발하려고 노력합니다. 2019년 WWDC 에서 소개된 SwiftUI & Combine 에도 관심이 많습니다. 저와 팀에 도움되는 기술적 지식이라면 러닝 커브가 높아도 챌린지 해보려는 자세를 가지고 있습니다.
  Zeplin, Figma 를 이용해서 디자이너와 협업해본 경험이 있습니다. 디자이너의 의도를 최대한 기술로 담아낼 수 있도록 최선을 다합니다. Git 의 다양한 기능을 활용해서 동료 개발자들과 책임감 있게 협업해본 경험이 있습니다. 작업의 흐름대로 커밋 히스토리를 쌓기보단 리뷰어가 리뷰하기 편하도록 커밋 히스토리를 쌓는 것이 협업면에선 더 좋은 방향이라고 생각합니다. 코드리뷰와 회고를 매우 중요하게 생각하는 조직에서 일한 경험이 있습니다.
  그 외엔 개인 프로젝트 하면서 Python, Nodejs 와 MongoDB, MySQL 로 백엔드를 구현해봤고, Deep-learning 오픈소스 모델을 제가 만든 API 서버에 적용시켜본 경험도 있습니다.
저와 팀에 도움되는 것이라면 러닝 커브가 높은 상황에서도 쉽게 포기하지 않는 자세를 가지고 있습니다.
또한 다년간 유학생활로 영어권 외국인들과 자유롭게 소통할 수 있고, 덕분에 영문 문서를 읽는 데 거부감이 별로 없습니다.
사교적이고 유연한 성격이며, 겸손과 존중을 가장 큰 미덕이라고 생각합니다.
마지막으로 특유의 유머를 보유하고 있습니다.