소프트웨어 개발자 외에 될 수 있는 23가지 직업

이 글은 원문 23 Alternative Career Paths that Software Developers Can Grow Into by Karl Hughes을 저자의 동의하에 번역한 글입니다. 흔쾌히 번역에 동의해 주신 저자 Karl Hughes 님께 감사의 말씀을 드립니다.

“어떤 프로그래밍 언어를 공부해야 할까요?”, “기술 인터뷰는 어떻게 준비하죠?”, “현재 채용하나요?” 흔히 받는 수많은 질문 중 당황스러운 질문이 하나 있었다. “소프트웨어 개발자가 되고 싶지 않다면 어떡하죠?”

최근 이 질문을 가지고 한참 동안 생각해 보았다. 10년 동안 프로덕트와 엔지니어링 팀 리더였던 필자는 새로운 도전이 필요하다는 것을 깨닫고, 이번 여름부터 프리랜서 테크니컬 라이터(Technical Writer)로 활동하기 시작했다. 첫 클라이언트를 받을 때는 몰랐지만, 테크니컬 라이터가 전직 소프트웨어 엔지니어가 갈 수 있는 진로 중 하나라는 점을 금방 알아차렸다.

소프트웨어 개발자는 또 무슨 일을 할 수 있을까?

이를 계기로 “소프트웨어 개발자들은 개발 외에 무슨 일을 할 수 있을까?”에 대한 고민을 하게 되었다. 놀랍게도 할 수 있는 일이 굉장히 많다.

이 글을 통해 소프트웨어 개발자, 특히 최근 부트캠프 졸업생들에게 열려있는 다양한 직업에 대해 얘기해보려고 한다. 각 직업이 무슨 일을 하는지, 어떻게 그 일을 시작할 수 있는지, 그리고 장기적인 미래에 대한 얘기도 포함했다. 어떠한 이유로든 이직을 생각하는 사람이 있다면, 원하는 직업을 찾을 수 있도록 도울 것이다.

Source.

고객을 상대하는 직업 (Customer-Facing Roles)

내가 만나본 몇몇 부트캠프 졸업생들은 조용히 앉아서 종일 코딩하는 것보다는 그들의 소프트 스킬을 활용하는 것을 더 선호했다. 만약 사람들과 소통하고 교류하는 일을 하고 싶다면, 아래 직업을 고려하는 것을 추천한다.

1. Developer Relations, Advocacy, or Evangelism

회사의 고객이자, 유저이자, 옹호자인 개발자와의 관계 형성에 힘쓰는 기업이 늘어나면서 Developer Relations(DR) 분야도 빠르게 성장하고 있다.

DR 분야는 회사의 소프트웨어를 중심으로 하나의 커뮤니티를 구축하는 데 기여한다. Developer Advocates, Developer Evangelists, Community Managers, 또는 “DevRels”라고도 부른다.

종종 데모 에플리케이션을 만들고, 블로그 포스트 작성, 컨퍼런스 연설과 SNS 관리 등의 많은 일에 관여한다. 유명한 테크 회사들(페이스북, 구글, 아마존 등등)에서도 DR 전문가를 여럿 뽑는다고 한다.

이 분야에 관심 있다면 Mary ThengvallPJ Hagerty의 글을 읽어보는 것을 추천한다. 둘은 필자가 제일 좋아하는 인플루언서들로, Community Pulse podcast를 같이 운영한다.

2. 개발자 마케팅 (Developer Marketing)

개발자 마케팅(Developer Marketing)은 DR과 비슷하지만, 더 외부적인 일을 많이 한다.

개발자들은 “팔리는 것”을 싫어하기 때문에 개발자에게 마케팅하는 것은 특히 까다롭다. 따라서 통용되는 공격적인 마케팅 기술은 자제해야 한다. 우리는 기술적 배경 때문에 더 자연스럽게 개발자의 사고를 이해할 수 있고, 따라서 전통적인 마케터보다 더 큰 영향력을 가질 수 있다.

SlashData에서 개발자 마케팅에 대한 좋은 컨텐츠를 많이 찾을 수 있다. 2018년에 나온 이 책도 그중 하나다. 개발자 마케팅 분야에서 일하고 싶다면, SEO, 소셜 미디어, 컨텐츠 마케팅, 인플루언서 마케팅 등등의 온라인 마케팅을 배우면 된다. 개인 블로그에 이런 기술을 적용해서 연습한다면, 취업할 때 해당 개념에 대한 이해도를 선보일 수 있다.

3. 세일즈 엔지니어 (Sales Engineer)

많은 엔지니어들은 “영업(Sales)”이라는 단어가 들어간 직업을 꺼리곤 하는데, 단순히 우리가 별로인 영업 판매원들을 만났기 때문이다.

실은 우리 모두가 세일즈 일을 한다. 인터뷰 과정에서 자신을 영업하거나, 엔지니어링 팀에서 새로운 프레임워크를 지지하는 등, 소비자의 니즈와 적합한 해결책을 맞추는 일이 바로 세일즈다.

세일즈 엔지니어는 약간의 개발 지식이 있다는 점에서 독특하다. 따라서 소프트웨어 엔지니어링 개념을 이해하지만 종일 코드를 짜고 싶지 않은 개발자들에게 완벽한 직업이다.

세일즈의 또 다른 장점은 특별한 자격증이 필요가 없다는 점이다. Hubspot에서 필요한 스킬과 자료를 보기 좋게 정리했으니 참고하면 된다. 더 많은 회사가 엔지니어들을 위해 소프트웨어 툴과 서비스를 만들면서, 세일즈 엔지니어의 수요도 점차 늘어날 것으로 보인다.

4. 테크 리쿠르터 (Technical Recruiter)

소프트웨어 엔지니어 사이에서 혹평을 받는 또 다른 직업은 테크 리쿠르팅이다.

솔직하고 성실한 테크 리쿠르터(Taylor Dorsett and Matt Hoffman)도 만나본 적 있지만, 오직 할당량을 채우기 위해 사람들을 만나는 무지한 채용자들도 여럿 봤다.

하지만 우리는 소프트웨어 개발 경험이 있기 때문에 다른 테크 리쿠르터보다 더 많은 공감과 신뢰를 얻는 게 가능하다. 세일즈와 마찬가지로 이 분야도 외향적이고 관계 중심적인 성격이 유리하지만, 전문 자격증이나 특별 과정이 필요하지는 않다.

아쉽게도 초급 테크 리쿠르터는 주로 퀄리티가 낮은 회사에서 뽑기 때문에 지원하기 전에 Glassdoor에서 회사의 평판을 꼭 확인해야 한다.

프로덕트 직업 (Product Roles)

소프트웨어 개발자가 아닌 다른 직업으로 프로덕트 팀에 남아있고 싶다면, 아래의 직업을 추천한다. 엔지니어들과 가깝게 일을 해야 하므로 코딩 지식이 도움이 되겠지만, 기타 전문적인 지식 또한 필요하다.

5. 품질 보증 (Quality Assurance) & 테스트 엔지니어 (Test Engineer)

품질 보증과 테스트 엔지니어는 미묘한 차이가 있지만, 둘 다 소프트웨어가 실행되기 전 테스트하고 확인하는 작업을 한다.

이 직업은 반복적인 업무의 자동화를 위해 창의적인 아이디어를 고안하는 것을 좋아하고 꼼꼼한 사람에게 추천한다. 코딩 업무와 수동 테스트 작업도 하게 될 것이다.

중소기업에서는 소프트웨어 엔지니어들이 주로 서로의 코드를 테스트한다. 때문에 테스트와 QA 직업은 대기업에서 가장 흔하게 찾을 수 있다. 회사마다 테스트하는 방법에 차이가 있기 때문에, 사용하는 도구, 테스트가 얼마나 자동화되었는지, 얼마만큼 자동화와 수동 테스트에 참여해야 하는지에 대해 반드시 물어봐야 한다.

6. 비즈니스 분석가 (Business Analyst)

제품 개발 라이프사이클의 끝에는 비즈니스 분석가가 있다. 모든 사람이 요구 사항, 제한 사항 및 일정을 이해할 수 있도록 비즈니스팀과 기술팀 사이의 다리 역할을 한다. 또한 팀의 구조에 따라 테스트와 QA 역할에 참여하여 도움을 주는 경우도 있기 때문에 폭넓은 개발 지식이 필요하다.

비즈니스, 제품 개발, 혹은 디자인에 경험이 있고, 약간의 코딩 실력이 있다면 초급 비즈니스 분석가의 역할을 할 수 있다. 그렇지 않다면, 이 직업에 대한 전반적인 이해를 갖추기 위해 몇 가지 온라인 수업을 들어보는 것을 추천한다.

7. 프로젝트 매니저 (Project Manager)

비즈니스 분석가처럼 프로젝트 매니저도 제품의 비즈니스 요구사항과 기술적 제약을 이해해야 한다.

다만 비즈니스 분석가와 달리, 프로젝트 매니저는 한 프로젝트를 더 깊게 파고든다. 주로 특정 프로젝트를 위해 일하는 팀의 역할을 배분하고, 출시가 가까워지면서 진행 상황을 추적한다.

소규모 기업에서는 비즈니스 분석가, 프로젝트 매니저, 스크럼 마스터, 그리고 프로덕트 매니저의 역할이 하나로 합쳐질 수 있지만, 대기업에서는 역할마다 세부적으로 직업을 나눈다.

프로젝트 매니저로 성공하기 위해서는 뛰어난 조직 능력, 비즈니스 이해력, 그리고 대인관계 기술이 필수적이다. 모두의 기대치를 관리하고 선배이거나 경험이 많은 사람에게까지 동기부여 해야 하기 때문에 빨리 신뢰를 쌓아야 하는 직업이다. 더 이상 코드를 쓰고 싶지 않지만, 분석적이고 테크니컬한 일을 하고 싶은 사람들에게 이런 다면적인 직업을 추천한다.

8. 스크럼 마스터 (Scrum Master)

애자일 팀에서는 스크럼 마스터가 스크럼 이론, 베스트 프렉티스(Best Practice) 및 규칙을 모두가 숙지할 수 있도록 관리한다.

프로젝트 매니지먼트와 비슷해 보이지만, 제품 제작에 관련된 다른 팀에도 중점적으로 관여한다. 프로젝트 매니저와 마찬가지로 스크럼 마스터도 대기업에서 쉽게 찾을 수 있을 것이다.

스크럼 마스터로 성공하기 위해서는 기대와 한계를 관리하는 게 중요하다. 또한, 에자일 베스트 프렉티스도 알아야 하기 때문에, 적절한 수업이나 책을 찾아보는 것을 추천한다. 모든 규모의 기업에서 에자일을 사용하기 때문에, 이 진로는 점차 발전할 것으로 보인다.

9. 프로덕트 매니저 (Product Manager)

Source.

필자는 2019년에 Graide Network의 제품 배송 과정을 개선하기 위해서 제품 관리에 대해 배우는데 많은 시간을 투자했다.

프로덕트 매니저는 회사의 제품이 바람직하고(고객들이 원하는지), 실행할 수 있고(비즈니스적으로 가능한지), 실현 가능한지(만들 수 있는지)를 확인하기 위해 전체적으로 회사를 바라봐야 한다. 이렇게 전체적인 숲을 바라보고 사고하는 능력은 드물기 때문에, 그러한 사고와 기술적인 배경이 있다면 훌륭한 프로덕트 매니저가 될 수 있다.

초보 프로덕트 매니저는 상품의 작은 부분부터 맡거나, 회사의 프로젝트 매니저로 시작할 수 있다. 이를 통해 프로덕트 매니저가 어떤지 이해하고, 직접 상품을 관리할 때 만나야 하는 사람들을 미리 만날 수 있다.

10. 디자이너 (Designer)

만약 디자인이나 예술 경험이 있다면, UI나 UX 디자이너를 추천한다. 코딩 실력도 있기 때문에 해당 분야에서 두각을 나타낼 수 있을 것이다. 이러한 기술 덕분에 스태틱한 이미지 파일보다는 HTML/CSS로 목업을 만들어서 엔지니어들과 더 효과적으로 대화할 수 있다.

디자인에 경험이 없다면 수업을 듣고 포트폴리오를 만들어야 한다. 학위가 없더라도 지식과 기술을 선보인다면 채용하는 기업도 많다. 내가 흔히 본 포트폴리오 플랫폼은 Dribbble이지만, 개인 웹사이트를 만들어도 된다.

11. 노코드와 로우코드 개발자 (No or Low-Code Developer)

지난 몇 년간 노코드와 로우코드 개발 도구의 폭발적 증가로 인해, 개발팀을 고용하지 않고 소프트웨어를 신속하게 만들고 싶은 회사들에게 기회가 열렸다. 이런 툴은 몇 주가 아닌 몇 시간 안에 모바일이나 웹 앱을 만들 수 있게 해주며, 매년 툴이 발전하고 있기 때문에 더 많은 회사들이 노코드 앱을 사용하려고 한다.

MakerpadNo Code Jobs는 이런 일자리를 찾기 좋은 사이트다. 새로운 분야이기 때문에 필수 스킬과 급여가 광범위하겠지만, 코딩 경험은 플러스로 작용할 것이다.

서포트 직업 (Support Roles)

많은 신규 소프트웨어 엔지니어들은 서버나 웹사이트 운영을 원활하게 도와주는 “무대 뒤” 사람들의 존재를 알지 못하는 경우가 많다. 이런 역할은 자동화 스크립트를 작성하거나 서버 관리에 많은 지식을 갖추어야 한다. 만약 기존의 제품 개발에서 벗어나고 싶지만 기술적으로 일하고 싶다면, 아래 직업을 추천한다.

12. 시스템 관리자 (Sysadmin) & 데브옵스 엔지니어 (DevOps Engineer)

대형 소프트웨어 회사들은 패치(patch)하고, 업그레이드하고, 발전시켜야 하는 수백, 수천 대의 서버를 보유하고 있다. 클라우드 컴퓨팅 때문에 더는 물리적으로 서버에 연결하지 않고 Terraform이나 Kubernetes같은 소프트웨어를 사용하지만, 일자리가 여전히 넘쳐나는 분야다.

원래 시스템 관리자가 엔지니어링 팀이 필요로 하는 서버를 유지하고 관리한다. 회사가 성장하고 클라우드 호스팅으로 전환하며, 많은 기업이 자동화를 보여주기 위해 데브옵스 엔지니어라는 명칭을 사용하기 시작했다. 실제로는 두 직업의 역할이 매우 비슷하다.

시스템 관리자와 데브옵스 엔지니어 모두 운영 체제, 호스팅 플랫폼, 자동화 툴, basch 스크립팅 및 시스템 아키텍처에 대한 전반적인 이해가 필요하다. 폭넓은 기술 지식을 요구하기 때문에 입문용 일자리를 찾는 게 어려울 수 있다. 하지만 UI/UX 부분을 제외한 엔지니어링의 문제해결 측면을 좋아한다면 추천하는 직업이다.

13. 데이터베이스 관리자 (Database Administrator)

데이터베이스 관리자를 시스템 관리자와 묶어 부르는 회사도 있지만, 사실 데이터베이스 관리자와 시스템 관리자는 뚜렷한 차이가 있다.

데이터베이스 관리자는 로우 레벨(low-level) 데이터 스토리지 시스템의 보안, 권한 설정, 확장 및 최적화를 관리한다. SQL과 NoSQL 데이터베이스, 보안의 베스트 프랙티스, 그리고 기본적인 스크립팅(scripting) 기술이 필요하지만, 하루종일 코딩하는 직업은 아니다. 인덱스나 캐시 수정처럼 미세한 최적화 문제도 다루게 될 것이다.

소프트웨어 개발이 처음이라면, 우선 데이터베이스에 대해 최대한 많이 배우는 것을 추천한다. 어떤 애플리케이션에 어떤 데이터베이스가 적합한지, 그리고 각 규모에 맞게 데이터베이스를 최적화하는 방법도 알아야 하기 때문에 혼자서 학습하기엔 어려울 수 있다. 큰 데이터셋으로 연습해보고 싶다면, Kaggle에서 여러 데이터셋을 제공한다.

14. 사이트 신뢰성 엔지니어(Site Reliability Engineer, SRE)

사이트 신뢰성 엔지니어는 생산 과정에서 발생하는 중요한 문제에 대응하고 해결하는 역할을 한다. “on-call” 리스트를 바탕으로 차례대로 일하기 때문에, 평소와는 다른 시간에 일하게 될 수도 있다. 이 직업을 통해 다양하고 예상치 못한 문제들을 풀고, 자동화된 경고를 만들고, 서버 로그를 읽는 일을 매우 잘하게 될 것이다.

SRE 업무는 주로 reactive 하기 때문에, 숙련된 소프트웨어 엔지니어들은 SRE로 오랫동안 일하는 게 어렵다. 하지만 만약 첫 소프트웨어 개발 업무를 찾는 데 어려움이 있다면, 첫 시작으로 좋을 것이다. 필자도 SRE로 시작해서 소프트웨어 개발로 전환한 두 명의 부트캠프 졸업생을 알고 있다. 이 경험을 통해 문제 해결의 도전과 자극을 즐긴다는 점을 깨닫게 될 수도 있다.

15. 고객 지원 역할 (Technical or Customer Support)

일부 엔지니어들은 고객과 소통하는 것을 두려워하지만, 다른 엔지니어들은 사람들의 문제를 해결하며 활력을 얻는다. 소프트웨어 회사에서는 질문에 답하고 해결할 수 있는 기술 경력이 있는 사람을 고객 지원 역할로 원하기 때문에 코딩 경험이 있는 우리가 이상적인 후보자다.

고객 지원 역할의 단점은 최악의 사람들도 만날 수 있다는 점이다. 불만족하거나 실망한 사용자들은 기술 지원팀과 얘기하는 상황 자체를 좋아하지 않기 때문에, 이 직업으로 오래 일하려면 인내심과 철판이 필요하다.

가르치거나 글 쓰는 직업 (Teaching and Writing Roles)

필자는 항상 가르치는 것을 좋아했고, 자연스럽게 교육과 관련된 엔지니어링 일을 자주 했다. 복잡한 주제를 세분화해서 다른 엔지니어들에게 설명해주는 것을 즐긴다면, 아래 진로를 추천한다.

16. 테크니컬 라이터 (Technical Writer)

필자는 대기업에서 테크니컬 라이터 인턴을 한 경험이 있다. 꽤 건조한 글이었지만, 매일 새로운 것을 배우는 걸 즐겼다.

인턴쉽을 하면서 테크니컬 라이팅은 문서화만이 전부가 아니라는 것을 알았다. 기술 블로그나 카피라이팅을 해도 된다. 내부나 외부 문서를 작성하거나, 데모 앱이나 튜토리얼을 만들어도 된다. 글 쓰는 분야에서는 페이가 높기 때문에 한번 생각해볼 만한 직업이다.

테크니컬 라이터가 되기 위해서는 (당연히) 글을 잘 써야 한다. 복잡한 생각을 정리하고 새로운 것을 배우는 것 또한 잘해야 한다. 혼자 첨삭하는 실력이 늘어날수록 글이 더 가치 있을 것이므로, 효율성과 실력에 도움 줄 수 있는 도구에 투자하면 좋다. 돈을 받을 수 있는 글쓰기 프로그램 커뮤니티에서 시작해서, 그 경험을 바탕으로 네트워킹하고 포트폴리오를 작업하여 일자리를 찾으면 된다.

17. 교사 (Teacher)

소프트웨어 개발자에서 교사가 되는 방법은 다양하다. 코딩 부트캠프에서 교육을 받거나, 대학이나 고등학교에서 가르쳐도 된다. 또는 egghead.io 같은 플랫폼에 가입하거나, Teachable이나 Educative로 직접 코스를 만들어도 된다. 당신의 배경과 모험정신에 따라 방법을 선택하게 될 것이다.

어떤 방법이든, 교사는 새로운 정보를 빨리 습득하고 학생들이 이해할 만한 형식으로 알려줄 수 있어야 한다. 학생들의 눈높이에 맞춰 신뢰를 쌓아야 성공할 수 있다. 소프트웨어 개발자보다는 돈을 덜 벌 수 있지만, 매우 만족스럽고 뿌듯한 진로이다.

18. 트레이너 (Trainer)

기업 교육(Corporate Training)은 고려할만한 가치가 있는 또 다른 형태의 교육이다. 트레이너는 독립 컨설턴트나 대기업의 직원으로 일할 수 있다. 보통 전문 소프트웨어에 대한 교육을 직접 하기 위해서 고객의 사무실로 이동하는 업무를 한다.

트레이너는 깊은 기술 지식을 가지고 있어도 되지만, 보통 기계를 잘 다루는(tech-savvy) 커뮤니케이터에 불과하다. 트레이너는 보통 교사보다는 돈을 많이 벌겠지만, 더 영업 중심적일 수 있다. 보통 컨퍼런스에서 연설하거나, 커뮤니티 워크숍 진행, 또는 트레이닝 중간에 사람들을 만나러 다니는 일을 하게 된다.

무대에 서서 테크니컬 개념을 설명하는 일을 좋아한다면 굉장히 이상적인 진로다.

분석적인 직업 (Analytical Roles)

테크 회사의 많은 직업은 분석 기술을 요구한다. 전문화된 교육이 필요한 분야지만, 소프트웨어 엔지니어링에서 벗어난 진로를 찾고 있다면 고려해 볼 가치가 있다. 대부분의 제품 중심 엔지니어들과는 다른 속도로 일할 것이고, 위에서 나왔던 서포트 직업과 비슷하게 회사의 다른 부서와도 협업 기회가 있는 직업이다.

19. 데이터 사이언티스트 (Data Scientist) & 데이터 엔지니어 (Data Engineer)

데이터 사이언티스트와 엔지니어 모두 비즈니스나 고객의 의사 결정을 돕기 위해 대용량 데이터 셋을 사용하고 분석하는 일을 한다.

데이터 엔지니어는 주로 data ingestion과 organization pipeline 작업을 하는 반면, 데이터 사이언티스트는 데이터에서 유용한 결과를 얻을 수 있도록 실험과 알고리즘을 설계한다. 데이터 사이언스(AI, 머신러닝 등등)은 수학, 소프트웨어 엔지니어링, 그리고 통계학에 뿌리를 둔 광범위한 분야이다.

데이터 사이언스와 엔지니어링에 관련된 수업, 부트캠프, 혹은 대학 학위도 많지만, 수학 배경이 탄탄하다면 기초 몇 가지는 스스로 배울 수 있다. 그렇지 않다면 수치 분석, 행렬 대수 및 통계에 대해 먼저 공부하는 것을 추천한다.

이러한 기술을 배우는 데 오랜 시간이 걸리고 데이터 사이언티스트의 수요도 높기 때문에, 데이터 사이언티스트는 연봉도 높고 곧 사라질 것 같지도 않다.

20. 보안 분석가 (Security Analyst)

정보 보안 관련 직업은 보통 문제가 생기면 일이 생기는 직업이다. 모든 개발자가 보안 취약점과 위험에 대해 알고 있어야 하지만, 보안 분석가는 보안 문제를 찾고, 분류하고, 해결하는 일을 집중적으로 하기 위해 고용된다.

몇몇 보안 분석가는 독립적인 컨설턴트로 일하지만, 큰 회사에서는 사내에 보안 분석가 팀이 있을 수 있다. 기술, compliance, 비즈니스, 그리고 리스크 평가 스킬이 모두 필요하기 때문에 굉장히 흥미로운 직업이다.

보안 관련 직종도 사람을 찾기 어려운 분야이기 때문에 고용이 보장된다. 정보 보안은 매우 넓은 분야이기 때문에, 관심 있다면 갈 수 있는 여러 길을 확인해봐라.

21. 연구개발 (R&D)

소프트웨어 엔지니어링 기술을 가진 사람이 연구 및 개발을 한다면 독특한 경험이 될 수 있다. 구글이나 아마존 같은 대기업들은 수익의 일부를 연구 개발팀의 위험하지만 잠재적인 실험에 투자한다. 이런 연구팀에는 소프트웨어 개발자, 데이터 사이언티스트, 비즈니스 분석가 및 프로젝트 매니저가 포함될 수 있다.

좋은 R&D 팀에 들어가는 것은 어렵다. 이러한 역할들은 경쟁적이고, 코딩 부트캠프에서 배우지 못할 전문 지식을 요구하는 경향이 있다. 그렇긴 하지만 일부 회사들은 팀을 재정비하고 창의적인 아이디어를 얻기 위해 선의의 해커(Ethical Hacker), 설립자 혹은 여러 언어를 구사하는 사람(Polyglot)들을 고용한다.

Independence and Flexibility

소프트웨어 엔지니어는 종종 재택근무나 휴가도 가능한 직업이지만, 훨씬 더 여유로운 삶을 원할 수 있다. 사업을 직접 시작할 자신이 있다면, 일주일에 4시간 일하고, 6개월 여행하거나, 하루의 절반을 오픈 소스 프로젝트에 참여할 수 있다. 쉽지는 않지만, 소프트웨어 개발자로서 다른 사람들에게 큰 영향력을 가지고 있다.

22. 프리랜서 (Freelancer) & 컨설턴트 (Consultant)

더 많은 자유를 원한다면 9–6 일하는 대신 프리랜서가 되면 된다. 프리랜서로서 한 명 이상의 고객에게 코드를 써주면 돈을 받는다. 기업에서도 단기 프로젝트를 진행하거나, 기술 부채를 정리하거나, 직원이 쉴 때 일을 채우기 위해 프리랜서를 고용하는 경우도 있다.

컨설턴트는 고객의 구체적인 문제를 해결해 주는 고급 프리랜서다. 코드를 쓸 수도 있지만, 그들의 전문성이나 독특한 배경 때문에 같이 일하기도 한다. 프리랜서와 컨설턴트의 경계는 분명하지 않기 때문에 단어에 너무 얽매이지 않아도 된다.

사실 시작하는 게 프리랜서나 컨설턴트로 일하는 데에 제일 어려운 부분이다. 인맥이 넓지 않다면, UpworkToptal 같은 플랫폼에서 의존해서 클라이언트를 찾아야 한다. 이러한 플랫폼은 상당히 높은 수익을 가져가며 전 세계의 다른 프리랜서들과 경쟁 관계를 만든다.

평판을 쌓고 클라이언트 리스트가 만들어지면서, 추천을 통해 더 많은 일을 할 수 있다. 추천으로 오는 클라이언트는 인터넷의 익명성이 아닌 신뢰된 관계를 바탕으로 컨설턴트를 찾는다. 프리랜서나 컨설턴트로의 일이 익숙해진다면 계약 사이에 어느 정도 여유 시간을 낼 수 있을 만큼 요금을 높일 수 있다.

23. Startup Founder

인터넷에는 사업을 시작한 소프트웨어 엔지니어들의 이야기(1, 2, 3)로 가득 차 있어서, 쉽고 좋은 아이디어라는 인상을 받을 수 있다.

실은, 상황에 따라 다르다. 스타트업은 대개 수익을 내는 데 오랜 시간이 걸리기 때문에 몇 달 혹은 몇 년 동안 급여 없이 살아야 한다.

일을 하며 근무 시간 외에 회사를 운영하는 방법도 있다. 하지만 어렵고 법적인 문제가 있을 수도 있기 때문에 드문 일이 아니다. 같이 창업할 사람을 한두 명 더 찾을 수 있다면, 일의 양도 줄고 성공 가능성도 높일 수 있다.

Final Thoughts

소프트웨어 엔지니어링은 재밌는 분야지만, 모두가 그렇게 느끼지는 않을 수 있다. 다만 다른 직업을 찾더라도 이미 배운 지식과 스킬은 사라지지 않을 것이다.

많은 부트캠프 졸업생들은 소프트웨어 개발 외에 다른 직업을 찾는 것을 두려워한다. 하지만 꼭 자신만의 길을 찾아 떠나길 추천한다. 실용성(돈 벌기)과 관심사의 균형을 유지하며, 일이 “일”처럼 느껴지지 않는 커리어를 꼭 찾길 바란다.

--

--