life story
This commit is contained in:
parent
bc43db7803
commit
24a96e7595
23
content/blog/2023-08-23_general-job-search-update.rst
Normal file
23
content/blog/2023-08-23_general-job-search-update.rst
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
General Job Search Update
|
||||||
|
#########################
|
||||||
|
:author: tyrel
|
||||||
|
:category: Personal
|
||||||
|
:tags: work
|
||||||
|
:status: published
|
||||||
|
|
||||||
|
As mentioned in a previous post, I'm on the job hunt again.
|
||||||
|
I got laid off in June with a 30% Reduction In Force.
|
||||||
|
|
||||||
|
I've been searching primarily for Python and Go roles, but I'm not having a lot of luck right now - seems everyone else also got laid off is who I am competing against.
|
||||||
|
`(That said, go hire my friend Nik! He's fantastic!) <https://nkantar.com/blog/2023/08/hire-me-v202308/>`_
|
||||||
|
I've had a lot of job opportunity people ghost me.
|
||||||
|
Gotten through a few late rounds, only to never hear from the company again.
|
||||||
|
Even if I have emailed them a thank you letter for the interviews, to express my interest.
|
||||||
|
|
||||||
|
I've been around professionally for thirteen years.
|
||||||
|
Over those years, I have picked up mostly back end skills.
|
||||||
|
I have eight solid years of Django experience.
|
||||||
|
Four years of Ruby on Rails experience.
|
||||||
|
A couple years of Flask, FastAPI, and other smaller Python Frameworks mixed in.
|
||||||
|
|
||||||
|
I'm looking for an IC role, where I can move into a Tech Lead role. I want to eventually some day be a Staff/Principal role, but I don't have that on paper to show I can do it, so trying to get in somewhere new with an IC role.
|
128
content/blog/2023-08-24_my-life-story.rst
Normal file
128
content/blog/2023-08-24_my-life-story.rst
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
My Life Story
|
||||||
|
#############
|
||||||
|
:author: tyrel
|
||||||
|
:category: Personal
|
||||||
|
:tags: life
|
||||||
|
:status: published
|
||||||
|
|
||||||
|
Trying to write a more prose version of my Resume.
|
||||||
|
Kind of a living post about my life in the Software Engineering World.
|
||||||
|
|
||||||
|
Early Life
|
||||||
|
----------
|
||||||
|
|
||||||
|
I started programming with Visual Basic in the 90s on a laptop in my father's car.
|
||||||
|
Parents had just divorced and the drive to his new place every other weekend was two hours, so I had a lot of downtime going through the Visual Basic 5 and 6 books we had.
|
||||||
|
After that, I started trying to program chat bots for Starcraft Battle.net, and irc bots.
|
||||||
|
In highschool I started taking more Visual Basic courses, mostly because that's all that my teachers had for classes.
|
||||||
|
Senior year I took some Early Education courses at the local college, and then went to that college (Keene State) for my Computer Science Degree.
|
||||||
|
At Keene State, I took a lot of Java classes, that was the core curriculum.
|
||||||
|
I also took some more Visual Basic courses, some C++ and web design courses as well.
|
||||||
|
|
||||||
|
After college, I thought I'd be working Java again, but I got a referral from one of my favorite professors to this company called Appropriate Solutions Inc, and started working in Python/Django.
|
||||||
|
I had never touched Python outside of OpenRPG - and even then it was just installing the interpretor so I could run the game.
|
||||||
|
|
||||||
|
Appropriate Solutions Inc
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
At Appropriate Solutions I worked on maybe ten different projects.
|
||||||
|
The first thing I worked on was an Hour Tracker to learn how Django works, it worked great, but definitley didn't look too flashy.
|
||||||
|
From there, I went on to work on a Real Estate Website, a Bus tracking/mapping system for a school district, a Pinterest Clone, and some more GIS mapping things.
|
||||||
|
One of our projects was with HubSpot, and I went to one of their hackathons, and a couple conferences in Boston.
|
||||||
|
I had a lot of friends in Boston, so I decided to move there mid 2012.
|
||||||
|
|
||||||
|
Propel Marketing
|
||||||
|
----------------
|
||||||
|
|
||||||
|
I got my first Boston job in Quincy, MA - working at a startup called Propel Marketing.
|
||||||
|
This was also a Python/Django role, but had more front end work.
|
||||||
|
While there I worked on their internal CMS tooling for selling white labeld websites to clients.
|
||||||
|
I worked on a lot of internal tooling, one that would pull leads from our system, and then upload to a lot of different vendor tooling.
|
||||||
|
A couple of Python PIL tools that would generate facebook and twitter banners, but a lot of the work there was learning and writing tests in Python.
|
||||||
|
|
||||||
|
Akamai
|
||||||
|
------
|
||||||
|
|
||||||
|
From there, I started a six month contract at Akamai, working for their Tech Marketing team on a couple tools.
|
||||||
|
This later got extended another three months, until the team ran out of budget for contractors.
|
||||||
|
I worked on their `"Spinning Globe" <https://gnet.akamai.com/>`_ which was really fun.
|
||||||
|
Some internal dashboards, and a couple email tools that worked with SalesForce.
|
||||||
|
|
||||||
|
Addgene
|
||||||
|
-------
|
||||||
|
|
||||||
|
In 2015 I then landed a spot at Addgene - a nonprofit biotech!
|
||||||
|
This is where my career really started taking off.
|
||||||
|
I started to lead projects, do more valuable research and go to conferences.
|
||||||
|
The company itself was - for my tenure there - two Django Projects and some jQuery/Bootstrap.
|
||||||
|
The "core" site was the ecommerce and research site.
|
||||||
|
Buying, selling, research on Plasmids and Viruses.
|
||||||
|
The back end was the inventory management system.
|
||||||
|
|
||||||
|
While there, I also lead the charge on a couple projects.
|
||||||
|
We were migrating to AWS - from an in house rackmount server, so we needed to get a lot of data on S3.
|
||||||
|
Testing at Addgene was fickle, as everything was stored in tsv files and reloaded in memory.
|
||||||
|
I developed a python package that would save thousands of dollars of S3 costs, while still making the file upload process in testing seamless.
|
||||||
|
`Django DBFileStorage <https://gitlab.com/Tyrel/django-dbfilestorage>`_ was born.
|
||||||
|
|
||||||
|
Another charge I lead was helping Celigo alpha test Integrator.IO - working on building an integration of a lot of our sales data into netsuite/salesforce (I forget which one) by working with the Celigo API.
|
||||||
|
This was a fun project - as when I was done with this, we got to archive an old Java repo that was barely hanging on, and had no bugfixes in years.
|
||||||
|
|
||||||
|
While at Addgene, I also started the "Teaching Scientists How To Program" lunch and learn club.
|
||||||
|
We would have meetings where anyone from the Scientist team could come, ask questions about Python, and work through any of the problems they were having with our Jupyter Notebooks we set up that they could run.
|
||||||
|
This was great, I helped foster some friendships that I believe will last a lifetime, helped people transition into actual programmers, and helped the company save a lot of time by helping more people learn.
|
||||||
|
|
||||||
|
Tidelift
|
||||||
|
--------
|
||||||
|
|
||||||
|
After Addgene, in 2018 I joined an early stage startup called Tidelift.
|
||||||
|
I was one of the first engineers there, so I got to help lead a lot of early shaping of the company.
|
||||||
|
I started with working on a lot of the `Lifter <https://tidelift.com/about/lifter>`_ focused side of the site.
|
||||||
|
Helping create tasks the lifters could complete so they could get paid.
|
||||||
|
From there working on the Subscriber side of things where the paying clients would get information about their dependencies.
|
||||||
|
I have an upcoming blog post about some work there, so I won't go into too much details.
|
||||||
|
I did help start the Tidelift CLI though.
|
||||||
|
A tool written in Go, it was a CI/CD tool to analyze software dependencies for security/licensing problems
|
||||||
|
|
||||||
|
|
||||||
|
EverQuote
|
||||||
|
---------
|
||||||
|
After Tidelift, I started at EverQuote in 2022.
|
||||||
|
My longtime friend Sam was a Director leading a team that was working on replatforming a monolith and needed to backfill a python role.
|
||||||
|
I had been asking him for years when he would work on Python stuff, as he had only been working at Ruby companies for the past few years, so this caught my ear and I started there.
|
||||||
|
|
||||||
|
The first project was replatforming a Python 2.7 monolith - with code from as far back as 2010 - to micro services.
|
||||||
|
These were mainly FastAPI services, that communicted amongst eachother with kafka.
|
||||||
|
Some of them would read from the database, and send events into the kafka stream.
|
||||||
|
Some would read from the stream, and write to the database.
|
||||||
|
Others would read from database or kafka, and then communicate with a third party system.
|
||||||
|
|
||||||
|
All of these had Grafana (and later NewRelic) metrics attached.
|
||||||
|
Every server had at least one dashboard, with many graphs, event logs and charts.
|
||||||
|
These were all deployed using kubernetes, terraform, AWS.
|
||||||
|
I can't speak to the specifics about past there - as there was another dedicated ops team.
|
||||||
|
|
||||||
|
Some other projects I worked on there were really fun.
|
||||||
|
One of the analysts used to maintain her daily workflow in a google doc, and I helped lead a project that took that apart and worked on it programatically.
|
||||||
|
This was then turned into a five part rebalancing, reweighting, and email route manipulating script - that ran daily using Cron, and saved that team over fourteen hours a week.
|
||||||
|
|
||||||
|
The Remarketing team came to an end, and there was a small re-org and we merged with another team and became the Consumer Engagement team.
|
||||||
|
This dealt with Calls, SMS, Email, and working with the Sales Reps.
|
||||||
|
|
||||||
|
We started a project using Go and React that would pull users from the database and show a script for the Sales rep to read to the client on the phone, with specific information about what plans were available.
|
||||||
|
Other projects on that team, which is what I spent most of my time on, was porting CI/CD processes from Atlassian Bamboo, to GitHub Actions.
|
||||||
|
|
||||||
|
During this time, I took a couple months of paternity leave, and a few weeks after I came back there was a major reduction in force and I was laid off.
|
||||||
|
|
||||||
|
|
||||||
|
After EverQuote
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Since leaving EQ, I have been on the job hunt.
|
||||||
|
If you know anything about tech in 2023, a LOT of people are job hunting right now.
|
||||||
|
I'm excited that this happened at a time in my daughter's life where I can spend SO MUCH more time with her than some fathers can.
|
||||||
|
That's the good side of things.
|
||||||
|
I hope I get a job soon though, as the sole earner in my family.
|
||||||
|
|
||||||
|
If you've made it this far, please check out my Resume in the sidebar, and contact me if you have anything you think would be a fit.
|
||||||
|
Who knows, I might delete this last section once I get a job!
|
|
@ -108,6 +108,19 @@ PERSONAL PROJECTS
|
||||||
|
|
||||||
* `Django DBFileStorage <https://gitlab.com/Tyrel/django-dbfilestorage>`_ Goal: to continue running CI tests on a remote storage when working on moving file storage to S3 without incurring additional AWS charges.
|
* `Django DBFileStorage <https://gitlab.com/Tyrel/django-dbfilestorage>`_ Goal: to continue running CI tests on a remote storage when working on moving file storage to S3 without incurring additional AWS charges.
|
||||||
|
|
||||||
|
|
||||||
|
CONTRACTING WORK
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Benchtop Devices
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
* Multiple C# Desktop programs, interfacing via serial to get results about pressure tests, calculate decay rates, printing results to pdfs, label machines, and local Sqlite databases. Custom per each client.
|
||||||
|
|
||||||
|
* Clients include: Waymo, FlexFlow, Hypertherm
|
||||||
|
|
||||||
|
* Python/Django and VueJS tool to convert pressure test results from the Cincinnati Test Blackbelt Machine, to PDFs.
|
||||||
|
|
||||||
VOLUNTEERING
|
VOLUNTEERING
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,10 @@ p {
|
||||||
color: #586e75;
|
color: #586e75;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pill-link { text-decoration: none; }
|
||||||
|
|
||||||
|
|
||||||
.category-pill {
|
.category-pill {
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
|
@ -89,6 +93,24 @@ article ul {
|
||||||
.amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;}
|
.amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;}
|
||||||
.dquo {margin-left:-.38em;}
|
.dquo {margin-left:-.38em;}
|
||||||
|
|
||||||
|
.entry-list-flex-container {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: 100%;
|
||||||
|
align-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-list-flex-child.date {
|
||||||
|
flex-basis: fit-content;
|
||||||
|
margin-right:1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-list-flex-child.category {
|
||||||
|
flex-basis: 100px;
|
||||||
|
margin-right:1rem;
|
||||||
|
}
|
||||||
|
|
||||||
@media screen and (min-width: 700px) {
|
@media screen and (min-width: 700px) {
|
||||||
.parent-panel { padding-left:20%;width:100%; }
|
.parent-panel { padding-left:20%;width:100%; }
|
||||||
.right-panel { position:relative;float:left;width:100%; }
|
.right-panel { position:relative;float:left;width:100%; }
|
||||||
|
@ -175,13 +197,25 @@ article ul {
|
||||||
.social {
|
.social {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
.entry-list-flex-child.category {
|
||||||
|
flex-basis: 600px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@media screen and (max-width: 1000px) {
|
||||||
|
.entry-list-flex-child.category {
|
||||||
|
flex-basis: 600px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@media screen and (max-width: 600px) {
|
@media screen and (max-width: 600px) {
|
||||||
.right-panel-content {
|
.right-panel-content {
|
||||||
max-width: 80%;
|
max-width: 80%;
|
||||||
padding-right:2rem;
|
padding-right:2rem;
|
||||||
}
|
}
|
||||||
|
.entry-list-flex-child.category {
|
||||||
|
flex-basis: 300px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@media screen and (min-width: 1200px) {
|
@media screen and (min-width: 1200px) {
|
||||||
.right-panel-content {
|
.right-panel-content {
|
||||||
|
@ -241,17 +275,6 @@ ul ul {
|
||||||
padding-left: 2rem;
|
padding-left: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.entry-list-flex-container {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry-list-flex-child.date {
|
|
||||||
flex-basis: fit-content;
|
|
||||||
margin-right:1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.caption {
|
.caption {
|
||||||
padding-left: 5rem;
|
padding-left: 5rem;
|
||||||
|
|
|
@ -45,13 +45,15 @@
|
||||||
<div class="tags">
|
<div class="tags">
|
||||||
Tags:
|
Tags:
|
||||||
{% for tag in article.tags %}
|
{% for tag in article.tags %}
|
||||||
<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>
|
<a class="pill-link" href="{{ SITEURL }}/{{ tag.url }}">
|
||||||
|
<span class="tag-pill">{{ tag }}</span>
|
||||||
|
</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if article.category %}
|
{% if article.category %}
|
||||||
<div class="category">
|
<div class="category">
|
||||||
Category: <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a>
|
Category: <a class="pill-link" href="{{ SITEURL }}/{{ article.category.url }}"> <span class="category category-pill">{{ article.category }}</span> </a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</footer><!-- /.post-info -->
|
</footer><!-- /.post-info -->
|
||||||
|
|
|
@ -2,12 +2,26 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section id="content">
|
<section id="content">
|
||||||
{% block content_title %}
|
{% block content_title %}
|
||||||
<h1>All articles</h1>
|
<h1>Latest From Tyrel</h1>
|
||||||
<hr class="article-split">
|
<hr class="article-split">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
{% for article in articles_page.object_list[:1] %}
|
||||||
|
<article class="post-overview">
|
||||||
|
<h2><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></h2>
|
||||||
|
<h3><time datetime="{{ article.date.isoformat() }}">{{ article.date.strftime('%b %d, %Y') }}</time></h3>
|
||||||
|
<div class="excerpt">{{ article.summary }} <a href="{{ SITEURL }}/{{ article.url }}">[read post]</a></div>
|
||||||
|
</article>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<hr class="article-split">
|
||||||
|
<h2>Older Blog Posts</h2>
|
||||||
|
<hr class="article-split">
|
||||||
<ul id="post-list">
|
<ul id="post-list">
|
||||||
{% for article in articles_page.object_list %}
|
{% for article in articles_page.object_list[1:] %}
|
||||||
<li>
|
<li>
|
||||||
<article class="hentry">
|
<article class="hentry">
|
||||||
<header class="entry-title">
|
<header class="entry-title">
|
||||||
|
@ -20,6 +34,9 @@
|
||||||
</time>
|
</time>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="entry-list-flex-child category">
|
||||||
|
<span class="category category-pill">{{ article.category }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="entry-list-flex-child entry">
|
<div class="entry-list-flex-child entry">
|
||||||
<h2>
|
<h2>
|
||||||
|
@ -29,13 +46,13 @@
|
||||||
><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></span>
|
><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></span>
|
||||||
</div>
|
</div>
|
||||||
</h2>
|
</h2>
|
||||||
<span class="small">
|
{# <span class="small"> #}
|
||||||
<span class="category category-pill">{{ article.category }}</span>
|
{# <span class="category category-pill">{{ article.category }}</span> #}
|
||||||
<span class="">
|
{# <span class=""> #}
|
||||||
{% for tag in article.tags|sort %}
|
{# {% for tag in article.tags|sort %} #}
|
||||||
<span class="tag-pill">{{ tag }}</span>
|
{# <span class="tag-pill">{{ tag }}</span> #}
|
||||||
{% endfor %}</span>
|
{# {% endfor %}</span> #}
|
||||||
</span>
|
{# </span> #}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user