-
Notifications
You must be signed in to change notification settings - Fork 15
/
cv.tex
136 lines (110 loc) · 8.13 KB
/
cv.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
% !TEX TS-program = lualatex
\documentclass[a4paper,11pt]{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{libertine}
\usepackage{fontawesome}
\usepackage{longtable}
\usepackage[cm]{fullpage}
\usepackage{amssymb}
% headers and footers
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\fancyfoot[L]{Igal Tabachnik}
\fancyfoot[C]{Page \thepage\ of \pageref*{LastPage}}
\fancyfoot[R]{\today}
\renewcommand{\footrulewidth}{0.4pt}% default is 0pt
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
% StackOverflow-like tags
% https://tex.stackexchange.com/a/311949/142692
% https://tex.stackexchange.com/questions/387499/how-to-create-a-border-that-looks-like-a-tag
\usepackage{tikz}
\definecolor{tagbg}{RGB}{225,236,244}
\definecolor{tagtxt}{RGB}{88,115,159}
\newcommand{\sotag}[1]{\tikz[baseline]{\node[anchor=base, rounded corners=0.5ex, text height=1.5ex, text depth=.25ex, fill=tagbg, draw=tagbg, text=tagtxt] {#1};}}
% Helpers for adding job entries
\newcommand{\job}[2]{\large\sffamily \textbf{#1} at \textbf{#2}}
\newcommand{\sep}{\multicolumn{2}{c}{}\\}
% tweak the url colors
\usepackage{hyperref}
\definecolor{linkcolor}{rgb}{0,0.2,0.6}
\hypersetup{colorlinks,breaklinks,urlcolor=linkcolor, linkcolor=linkcolor}
% nicer-looking section titles
\usepackage{titlesec}
\titleformat{\section}{\Large\scshape\raggedright}{}{0em}{}[\titlerule]
\titlespacing{\section}{0pt}{1em}{3pt}
\begin{document}
% --------------------TITLE-------------
\par{\centering
{\Huge \textsc{Igal Tabachnik}
}\bigskip\par}
\hrule
\vspace{0.5em}
\begin{tabular}{rl}
\textsc{Phone:} & +972 54 4766343\\
\textsc{Email:} & \href{mailto:hmemcpy@gmail.com}{hmemcpy@gmail.com}\\
\textsc{Socials:} & \faHome{} \href{https://hmemcpy.com}{hmemcpy.com}
| $\mathbb{X}$ \href{https://twitter.com/hmemcpy}{@hmemcpy}
| \faGithub{} \href{https://github.com/hmemcpy}{github}
| \faLinkedin{} \href{https://www.linkedin.com/in/igaltabachnik/}{linkedin}
| \faStackOverflow{} \href{https://stackoverflow.com/users/8205/igal-tabachnik}{stackoverflow}
\end{tabular}
\section{Summary}
\begin{tabular}{p{0.9\textwidth}}
A seasoned software developer with 20 years of experience in various domains, I specialize in backend engineering, using functional programming with Scala. I am a strong proponent of typed functional programming as a means to developing robust and correct software that is highly resistant to bugs. By leveraging techniques such as Domain-Driven Design (DDD) and Scala's static typing to precisely model business domains, I ensure the software is correct-by-construction and does exactly what it states.\\\
I am an open-source contributor, speaker and meetup organizer. I also have a keen interest in Developer Experience (DX). I created tools such as compiler and IDE plugins for enhancing developer productivity. I love teaching and helping others to become ``unstuck''.
\end{tabular}
\section{Work Experience}
\begin{longtable}{r|p{0.72\textwidth}}
\textsc{Apr 2020--Mar 2024} & \job{Founding Engineer and Tech Lead}{Unit}, Israel \\(4 years)
&\sotag{scala} \sotag{zio} \sotag{infrastructure} \sotag{onboarding} \sotag{tooling} \sotag{devex} \\&\\
&As the first employee at Unit, I helped build the engineering team from the ground up, and over the years held various responsibilities and positions across multiple teams.\\&\\
&Designed and created most of the core backend infrastructure, such as the data access and serialization layers, RPC, domain models, testing infrastructure, service architectures and more.\\&\\
&Spearheaded the onboarding process for new engineers, introducing them to our purely functional Scala codebase built upon foundational frameworks, such as ZIO.\\&\\
&Served as the primary resource for supporting team members, troubleshooting issues, and developing educational materials and hands-on workshops, engineering guidelines and testing specifications.\\\sep
\hline
\multicolumn{2}{r}{\footnotesize\itshape (abbreviated work history below, see the LinkedIn profile for full details)}\\\sep
\textsc{Jun 2016--Aug 2019} & \job{Senior Software Engineer}{Wix.com}, Israel \\(3 years, 3 months)
&\sotag{scala} \sotag{functional-programming} \sotag{bazel} \sotag{intellij-plugins}\\&\\
&Worked in the build infrastructure team, supporting the migration to the \textit{Bazel} build system. Main responsibilities included adding Scala support and contributing fixes to the \textit{Bazel IntelliJ plugin} (maintained by Google), as well as creating internal tools for Wix-specific functionality.\\\sep
\textsc{Jul 2015--May 2016} & \job{Software Developer}{Particular Software}, Israel \\(11 months)
&\sotag{c\#} \sotag{nservicebus}\\&\\
&Building NServiceBus and the Particular Platform products.\\\sep
\textsc{Jul 2012--Jan 2015} & \job{Lead Developer}{OzCode} (a CodeValue company), Israel \\(2 years, 7 months)
&\sotag{c\#} \sotag{roslyn} \sotag{debugging-api} \sotag{visual-studio-extensions}\\&\\
&OzCode is a Visual Studio extension for debugging productivity. I was responsible for the entire stack, from core product development to prioritizing features and issues, research, as well as marketing and content creation, branding, and artwork direction.\\\sep
\textsc{Mar 2010--Nov 2011} & \job{Senior Software Developer}{Typemock}, Israel \\(1 year, 9 months)
&\sotag{c\#} \sotag{.net-internals} \sotag{il-weaving} \sotag{aop} \sotag{api-design} \sotag{code-generation}\\&\\
&Developed a unit testing suite of products for software developers. Mainly responsible for the isolation (mocking) framework, based on the unmanaged \emph{CLR Profiling API} to perform runtime inspection and IL weaving to allow runtime code modifications.\\\sep
\textsc{Oct 2008--Mar 2010} & \job{Software Developer}{Eternix}, Israel \\(1 year, 6 months)
&\sotag{c\#} \sotag{webdav} \sotag{winforms} \sotag{unit-testing} \sotag{tdd}\\&\\
&Lead developer of a WebDAV based file server, implementing and maintaining features such as file encryption, versioning, quota, and user management.\\\sep
\textsc{Oct 2007--Oct 2008} & \job{Software Developer}{InfoGin}, Israel \\(1 year, 1 month)
&\sotag{c\#} \sotag{asp.net} \sotag{mobile-web} \sotag{wap}\\&\\
&Developer in the professional services team, created web applications for mobile devices, based on the specifications provided by customers.\\\sep
\textsc{Jun 2005--Sep 2007} & \job{Software Developer}{PrizmaSoft}, Israel \\(2 years, 4 months)
&\sotag{c\#} \sotag{winforms} \sotag{continuous-integration}\\&\\
&Developed client applications for a business process management system, maintained build and deployment scripts.\\\sep
\end{longtable}
\section{Programming Proficiency}
\begin{tabular}{rl}
\textsc{Languages:}& Scala (expert), C\#, Java (proficient), Haskell (beginner), F\#, OCaml (familiar), Rust (learning)\\
\textsc{Patterns:}& ES/CQRS, DDD, OOP, TDD, Property-based testing\\
\textsc{Technologies:}& ZIO and Typelevel libraries, Postgres, Docker, Kubernetes, Kafka, TestContainers\\
\textsc{Tools:}& Scala macros, sbt, Pants/Bazel, IntelliJ plugins\\
\end{tabular}
\section{Skills and Accomplishments}
\begin{tabular}{rl}
\textsc{Languages:}& Hebrew, English, Russian\\
\textsc{Publications:}& Category Theory for Programmers by Bartosz Milewski (\href{https://github.com/hmemcpy/milewski-ctfp-pdf}{PDF}, \href{https://www.blurb.com/b/9621951-category-theory-for-programmers-new-edition-hardco}{hardcover book})\\
\textsc{Open-source:}&Active contributor to several projects, including ZIO, and plugins for IntelliJ IDEA.
\end{tabular}
\section{Speaking}
\begin{tabular}{rl}
\textsc{Video:}&\href{https://www.youtube.com/watch?v=g1EvM4CbUvM}{Journey to Functional Programming} (Wix Engineering, 2017)\\
&\href{https://www.youtube.com/watch?v=N6ZJwnvTjLA}{Zero to FP (Hebrew)} (Underscore Meetup, 2018)\\
&\href{https://www.youtube.com/watch?v=qBmZJwmd0CA}{Everything you (didn't) want to know about implicits (Hebrew)} (Unit Engineering, 2022)\\
&\href{https://www.youtube.com/watch?v=eILoMm9t4rI}{The Business of Scala} (Scala Matters Meetup @ HiBob, 2023)\\
\end{tabular}
\end{document}