init
This commit is contained in:
+44
@@ -0,0 +1,44 @@
|
|||||||
|
@import url("https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&display=swap");
|
||||||
|
|
||||||
|
/* @font-face {
|
||||||
|
font-family: Lato;
|
||||||
|
src: url("Lato2OFL/Lato-Regular.ttf");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Lato;
|
||||||
|
src: url("Lato2OFL/Lato-Bold.ttf");
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Lato;
|
||||||
|
src: url("Lato2OFL/Lato-Italic.ttf");
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Lato;
|
||||||
|
src: url("Lato2OFL/Lato-BoldItalic.ttf");
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
} */
|
||||||
|
|
||||||
|
/* @page {
|
||||||
|
@bottom-center {
|
||||||
|
content: "https://sakal.us";
|
||||||
|
font-size: 0.8em;
|
||||||
|
color: #aaa;
|
||||||
|
font-family: Lato;
|
||||||
|
}
|
||||||
|
@top-center {
|
||||||
|
content: "CSS Paged Media Tutorial by Andreas Jung";
|
||||||
|
font-size: 0.8em;
|
||||||
|
color: #aaa;
|
||||||
|
font-family: Lato;
|
||||||
|
}
|
||||||
|
} */
|
||||||
|
|
||||||
|
/* body {
|
||||||
|
font-family: Lato;
|
||||||
|
} */
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
From Mr. Schlaeger:
|
||||||
|
|
||||||
|
jeff kronisch
|
||||||
|
harris allied
|
||||||
|
jeff@harrisallied.com
|
||||||
|
212-904-1448
|
||||||
+313
@@ -0,0 +1,313 @@
|
|||||||
|
<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 2022–Present</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 2020–June 2022</div>
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li>Kept accurate records of tenant rent payments.</li>
|
||||||
|
<li>
|
||||||
|
Balanced bank account statements for all subsidiary
|
||||||
|
companies.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Monitored bank accounts of subsidiary companies to ensure
|
||||||
|
each had appropriate funding.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Provided 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 2018–November 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 2014–May 2015</div>
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Interfaced with clients to collect necessary information for
|
||||||
|
their applications to government programs.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Prepared necessary documentation and submitted applications
|
||||||
|
to the government 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">2007–2009, 2010–2011</div>
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Provided first-response assistance to students experiencing
|
||||||
|
technical difficulties with the Engineering School's
|
||||||
|
computer resources.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Collected pertinent information from students to arrange for
|
||||||
|
involvement of specialized staff for more serious problems,
|
||||||
|
via the CAEN ticketing system.
|
||||||
|
</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. 2006–April 2009, Sept. 2010–April 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 2009–April 2010, April 2011–January 2020
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
@import url("./common.css");
|
||||||
|
@page {
|
||||||
|
size: letter;
|
||||||
|
margin: 1in;
|
||||||
|
}
|
||||||
+93
@@ -0,0 +1,93 @@
|
|||||||
|
@import url("./letter.css");
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: "EB Garamond", serif;
|
||||||
|
font-optical-sizing: auto;
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sm {
|
||||||
|
font-size: 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bold {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.italic {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-bullet {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fit-content {
|
||||||
|
width: fit-content;
|
||||||
|
}
|
||||||
|
|
||||||
|
section.header {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
section.contact-info {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
section.sections {
|
||||||
|
margin-top: 3em;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: flex-start;
|
||||||
|
|
||||||
|
gap: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
section.sections > section {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
section.sections > section > label {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
section.sections > section > div {
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.inline {
|
||||||
|
padding-inline-start: 0px;
|
||||||
|
margin-block-start: 0px;
|
||||||
|
margin-block-end: 0px;
|
||||||
|
}
|
||||||
|
ul.inline li {
|
||||||
|
list-style: none;
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
ul.inline li:after {
|
||||||
|
content: " \00b7";
|
||||||
|
}
|
||||||
|
ul.inline li:last-child:after {
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: cadetblue;
|
||||||
|
font-weight: 500;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user