You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

302 lines
11 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<html>
<head>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<section class="header">
<h2 class="lg bold">Brian Sakal</h2>
</section>
<section class="contact-info">
<section class="address">
<label class="bold">Address</label>
<div>
225 Van Houten Ave.<br />
Passaic, NJ 07055<br />
(305) 930-0248<br />
</div>
</section>
<section class="email">
<label class="bold">Email</label>
<div>brian@sakal.us</div>
</section>
</section>
<section class="sections">
<section class="employment">
<label>
<div class="fit-content">
<div class="bold">Employment</div>
<div class="sm italic right">(Most recent first)</div>
</div>
</label>
<div>
<ul class="no-bullet">
<li>
<div>
<span class="bold">Senior Full-Stack Developer,</span>
<span>TorahAnytime.com, Flushing, NY</span>
</div>
<div class="italic right">June 2022Present</div>
<div>
<ul>
<li>
Fixed/troubleshooted bugs and added features across multiple
legacy codebases
</li>
<li>Consolidated cloud resources by using Kubernetes.</li>
<li>
Successfully transitioned a top-level domain from a
self-hosted legacy site frontend by Cloudflare and nginx, to
one hosted by Vercel, while maintaining custom routes that
were handled by nginx and keeping the legacy site online
under a subdomain.
</li>
<li>
Setup CI/CD pipelines with DroneCI and Gitlab; in addition
to locally-runnable deploy scripts which reduced
time-to-deployment from 5 minutes to 15 seconds.
</li>
<li>
Setup Clickhouse for analytics and as a read-only copy of
MySQL data. Reduced query times from minutes to fractions of
a second.
</li>
<li>
Implemented a revamped phone system using a finite-state
machine. Content from the site is available and browsable by
phone, dynamically.
</li>
<li>
Setup supporting services in Kubernetes, such as Gitlab,
OpenTelemetry, a private Docker registry, a private NPM
registry, Grafana, and others. Transcoder pipeline
troubleshooting time was halved using OpenTelemetry tracing,
with spans stored in self-hosted Clickhouse, visualized in
Grafana.
</li>
<li>
Worked with (in no particular order): Node.js, Redis, MySQL,
PostgreSQL, RethinkDB, Elasticsearch, Clickhouse, Docker,
Nomad, Consul, Kubernetes, Helm, nginx, DigitalOcean
Droplets, Vercel, S3, Cloudflare, Express.js, React, React
Native, Next.js, Swagger
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="bold">Assistant Manager,</span>
<span
>Sureknit Inc. Property Management, East Flatbush, NY</span
>
</div>
<div class="italic right">February 2020June 2022</div>
<div>
<ul>
<li>Kept accurate records of tenant rent payments.</li>
<li>
Balanced and monitored bank accounts for all subsidiary
companies.
</li>
<li>
Furnished necessary documentation for various real estate
operations, such as new leases, property sales, etc.
</li>
</ul>
</div>
</li>
<!-- <li>
<div>
<span class="bold">Architect Intern,</span>
<span>Sandy Hacohen, Flushing, NY</span>
</div>
<div class="italic right">July 2018November 2018</div>
<div>
<ul>
<li>
Produced architectural drawings of various points-of-view
based on given floorplans.
</li>
<li>Adjusted existing floorplans to spec.</li>
</ul>
</div>
</li> -->
<li>
<div>
<span class="bold">Operations Manager,</span>
<span>Tax Opportunities America, Flushing, NY</span>
</div>
<div class="italic right">April 2014May 2015</div>
<div>
<ul>
<li>
Interfaced with clients, prepared necessary documentation
and submitted applications to government programs on behalf
of clients.
</li>
<li>
Monitored and accommodated deadlines, missing client data,
and when client promised to have the data available
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="bold">Representative,</span>
<span
>Computer-Aided Engineering Network (CAEN) Hotline, U. of
Michigan</span
>
</div>
<div class="italic right">20072009, 20102011</div>
<div>
<ul>
<li>
Provided first-response assistance to students and
collecting pertinent information to arrange for involvement
of specialized staff.
</li>
</ul>
</div>
</li>
</ul>
</div>
</section>
<section class="projects-hobbies">
<label>
<div class="fit-content">
<div class="bold">Projects/Hobbies</div>
</div>
</label>
<div>
<ul class="no-bullet">
<li>
<div>
<span class="bold"
>Self-host email for the sakal.us domain</span
>
<span
>Hosted on Vultr, uses Postfix for SMTP and Dovecot for
IMAP.</span
>
</div>
</li>
<li>
<div>
<span class="bold">Self-host a Kubernetes cluster</span>
<span
>Uses the k3s implementation. Various services are deployed
within, including a private Docker image registry. TLS
certificates for the Ingresses are handled by
<code>cert-manager</code>. Private coding projects are also
deployed within.</span
>
</div>
</li>
<li>
<div>
<span class="bold">Self-host a Gitea code repository</span>
<span
>Deployed within the above Kubernetes cluster. Available at
<a href="https://git.sakal.us/">https://git.sakal.us</a></span
>
</div>
</li>
<li>
<div>
<span class="bold">Calendar Optimizer project</span>
<span
>The beginnings of a stock options research platform. Frontend
uses Preact, backend application layer uses trpc, database is
Clickhouse. Available at
<a href="https://calendar-optimizer-frontend.sakal.us"
>https://calendar-optimizer-frontend.sakal.us</a
>.</span
>
</div>
</li>
<li>
<div>
<span class="bold">Custom Full-Stack eCommerce website</span>
<span
>Created custom e-commerce website, both front-end and
back-end, from scratch; was at piazzaoptical.com (code at
<a href="https://git.sakal.us/avraham/piazzaoptical.com"
>https://git.sakal.us/avraham/piazzaoptical.com</a
>). Frontend was implemented in
<a href="https://mithril.js.org/">mithril.js</a>. For the
backend, nginx was setup as reverse proxy and TLS termination;
but the application code was implemented with
<a href="https://luajit.org/">LuaJIT</a> using
<a href="https://daurnimator.github.io/lua-http/0.4/"
>lua-http</a
>. The database was an
<a href="http://www.lmdb.tech/doc/">LMDB</a> KV store library
running as part of the LuaJIT app server using
<a href="https://github.com/shmul/lightningmdb"
>lightningmdb</a
>
Lua bindings; rolled-my-own wrapper around this so as to store
JSON objects (in the form of compressed Lua tables using
<a href="https://github.com/gvx/bitser">bitser</a>).</span
>
</div>
</li>
</ul>
</div>
</section>
<section class="relevant-skills">
<label>
<div class="fit-content">
<div class="bold">Skills/Technologies</div>
</div>
</label>
<div>
<ul class="inline">
<li>Docker</li>
<li>DevOps (Logging, Monitoring, Grafana, CI/CD)</li>
<li>Kubernetes</li>
<li>Node JS</li>
<li>Javascript/Typescript</li>
<li>React</li>
<li>MySQL/PostgreSQL</li>
<li>Elasticsearch</li>
<li>Clickhouse</li>
<li>Linux</li>
<li>Cloudflare</li>
</ul>
</div>
</section>
<section class="education">
<label>
<span class="bold">Education</span>
</label>
<div>
<ul class="no-bullet">
<li>
<div>
<span class="bold">B.S. in Aerospace Engineering,</span>
<span>University of Michigan, Ann Arbor, MI</span>
</div>
<div class="italic right">
Sept. 2006April 2009, Sept. 2010April 2011
</div>
<div class="italic right">GPA 3.185</div>
</li>
<li>
<div>
<span class="bold">Ph.D. in Rabbinics,</span>
<span>Rabbinical Seminary of America, Flushing, NY</span>
</div>
<div class="italic right">
April 2009April 2010, April 2011January 2020
</div>
</li>
</ul>
</div>
</section>
</section>
</body>
</html>