Org Web Adapter

journals/2019_05_17.org

ID
1cf2f504-1c30-4a95-97d1-7fbe284faaea

Daypage Journal

Friday, 5/17/2019

#+BEGIN: clocktable :scope file :maxlevel 2

#+END:

Tasks [29/32]

DONE Breakfast

@familybreakfastmeal

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:40

:END:

DONE Clean dishes

@homechoredishes

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:40

:END:

DONE Set tasks for the day

@personaldaily

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:05

:END:

DONE Write in daily journal

@personalhabitjournal

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:13

:END:

DONE Help Jeremiah with SSL issues at PBP

@personalpbphelp

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:38

:END:

DONE Fill out follow up questions for Level 12

@personallevel12jobapp

CLOSED:

:LOGBOOK:

CLOCK: -- => 1:05

:END:

https://level-12.breezy.hr/q/e78ada15746d

DONE Database driven web application development

CLOSED:

I believe I am a 5 here. I have spent 100% of my working time over the past 8.5

years doing database-backed web development.

Most of my work for the past 3 years has been developing APIs for consumption by

javascript frontends. Some of the work has been with Django Rest Framework and

were explicitly RESTful, while a lot of work was with Flask and building custom

architecture APIs (can we just call them RPCs again?) which catered to very

specific workflows on the frontend. Most of these still responded to REST-like

verbs, but the results of the calls were often non-deterministic processes

kicked off (starting a celery task or such).

Before my backend focus, I was building out sites using Django-CMS that used

Postgres or Mysql as a backend, and included custom plugins for data flows

specific to a given client (want to show latest podcast in a widget on the

homepage, for example).

DONE Backend languages and Python in particular

CLOSED:

I believe I am a 5 in Python, working with it for the past 8.5 years as well. I

have enough experience to have opinions about PEP proposals and the way modules

or projects are structured. I am committed to the sane use of community

standards when packaging, and am always trying to learn more about the most

sustainable ways to write, deploy and maintain Python code. I have likely spent

close to 90% of my professional life working in Python.

Besides python I am proficient in Ruby, Typescript, Go and eLisp. I am always

curious to learn more on this front, and have been working through koans for

Rust, as it seems like a future-proof way to get back into C/C++ style systems

development :)

DONE Python libraries: Django, Flask and/or SQLAlchemy

CLOSED:

I believe I am a 5 in major python libraries. I've been using Django since it

was pre-1.0 and have been a donor to the DSF for as long as it has existed. My

first interest in web development was building out a newspaper website, which

was the origins of the Django framework. I have spent close to 75% of my

professional working life in either Django of Flask.

I am likely more like a high 3 or a low 4 in Flask and SQLAlchemy. I haven't

used either for as long as Django, and don't have as much of an opinion over how

a Flask project is laid out. But the design is similar enough to other web

frameworks, that I am rarely lost when contributing to, or building out a

greenfield Flaks/SQLAlachemy project.

DONE HTML(5), CSS, and pre-processors like SASS

CLOSED:

I'm probably a 4 in HTML5 and a 3 in CSS. I've spent the bulk of my working life

using backend languages and coordinating my work with designers and front end

developers. Thus, I probably spent 30-40% of my time three years ago working

with HTML and CSS layouts, with that dropping to more like 15% for the past

three years I would actually like to get back to full stack development,

however, as when I was doing that work for Five Q and the newspaper I thoroughly

enjoyed contributing to the full development of the site. But I would need some

refreshers on the best way to layout a page or integrate preprocessors like SASS

with a project.

DONE General JavaScript, jQuery, etc.

CLOSED:

I am competent (3) in general javascript. I've used jQuery in a lot of projects,

though lately it seems like it's falling out of fashion in favor or things like

React and Vue.js. Thus, it's probably a 10% of my time for about 5 years, and

very little in the past 3 years. I used Mithril.js for a SPA project that involved a prayer

journal and enjoyed using it very much. Javascript does not scare me, I can use

it to get the job done, but like with CSS, I don't have enough experience to be

opinionated about how someone did something. I follow docs and get things done

here.

DONE Modern Javascript: ES6, React, SPAs, build tools, etc.

CLOSED:

I am comptent at modern JS (3). I have more experience, actually, with React and

ES6 than I do with writing my own jQuery projects. Over the past three years

I've probably spent 15% of my working time with React and ES6.

I like the structure of React, and have used it in work projects, but it always

seems a little heavy for projects where you don't have more than a half dozen

people working in the codebase. For those purposes, I tend to reach for

libraries like Riot or the aforementioned Mithril, because they have a lower

congnitive overhead while providing the same sort of "resuable component" arch

that people love React for.

DONE Databases and SQL Development

CLOSED:

I am proficient at SQL (4). I have spent close to 90% of my work over the past

8.5 years working in some fashion with SQL, though it's only in the past three

years that I've had to learn a lot about optimization of queries and the

specifics of how a database works.

I have opinions on Maria v Postgres, and have been known to ship products that

used sqlite, so long as the data access efficiency was not a requirement (mostly

for controlling settings and things like that). I have not used MSSQL much, but

have no objection to it. One of the nice parts about SQL is that aside from

quirks, SQL is SQL (until you try to migrate from MySQL to Postgres :) ). I have

even integrated a project with an existing Oracle database and Django, with

quite a bit of success.

DONE Automated testing and TDD

CLOSED:

I would say I'm proficient (4) at automated testing. All my code for the past 6 or 7 years included unit tests (though in Django that line between unit and integration is very hard to keep apart, unfortunately). Pinning a percentage on that is hard, but I'd say over my career as an engineer I've spent probably 40% of time working on tests. There have defintely been aspects of projects where the tests took longer to write than the solution.

I have dipped my toe in TDD, but never found a great way to do it while also delivering solutions. I think TDD works best in very structured environments where tooling is consistent and your test suite is not an overgrown mess (as it is in many startups). At Elation, there was no way to run a unit test in less than about 4 or 5 minutes due to database setup and teardown, even with sqlite. So TDD was a non-starter.

I do like to build out tests for a specific piece of logic before moving on to new code, but few would confuse what I do with TDD.

DONE Version Control: Git, Mercurial

CLOSED:

I would say I'm an expert (5) at version control. I've used it in 100% of the

work I've done over the past 8.5 years.

I'm opinionated about how to use DVCS tools, including whether you squash merge,

fast forward or force push to existing commits. I've gotten myself out of some

crazy places with Git, and have come to depend on it as a source of information

for the past and a questions to ask about why something is the way it is.

I like clean commit messages, consistent team workflows (which can disagree with

my opinions, so long as they're consistent and exist for logical reasons), and

the fewest commits possible, while keeping changesets reviewable.

DONE Networking fundamentals (HTTP, DNS, TCP/IP, etc)

CLOSED:

I would say I'm an expert at newtork fundamentals (5). I know how HTTP works. I

know how TCP packets move through the internet, and I manage my own DNS server

using PiHole on my home network. I've probably spent 20-30% of my free time and

10% of my professional life to managing some aspect of network configuration.

At Ridecell I was helping build out a kubernetes cluster with Jenkins for

automated testing and container creation. This required getting all the services

communicating together in the Google Cloud. I've also played with Hasicorp's

Consul tool some in my home network and found it to be a nice middle ground

between nothing and kubernetes :)

DONE Linux and related DevOps tools

CLOSED:

I am an expert with Linux and realted devops tools (5). I have spent close to

100% of the last 25 years learning Linux, starting with RedHat 5.2 on a machine

with a Celern FCPGA card running at 333Mhz. I currently use Ubuntu/Debian

flavors, but have no compunction with using Fedora or other flavors. I'm also a

bit of BSD geek, though with a family my time to play has decreased over the

years.

I've used ansible extensivly and maintain the leading open source solution to

deploy the pypiserver with ansible, and have a home server setup using Traefik

and docker to automate bringing up new services like mopidy, or a local jupyter

notebook available anywhere in the world.

I live in Emacs thanks to evil-mode, so I get Vim embedded in the kitchen sink

of programmers tools.

I have managed the security and deployment of fleets of debian machines using

ansible and terraform, along with kubernetes for container management in GCE.

I've also helped maintain a Jenkins cluster.

DONE Anything else you would like to point out that didn't get covered above?

CLOSED:

That's a lot of technoloy talk. But I see technology as a means to an end when

I'm being paid, and as an adventure to explore in when I'm on my own time. One

of the most important aspects to technology that I've found is being infintely

curious, both about the next big thing, and the things that came before you.

It's hard to imagine now, but React will probably be replaced with something

else in 10 years time (I hope it will soon be Lisps time to rise :)).

In business, we deliver solutions. And you can't lose the forest for the trees.

The best tool is often not the fanciest or most elegant, but the one that most

people are proficient in. And the most important solution to a customer may be

the same thing you've been building for 20 years. The clever and positive

engineer will consider their job, then, to do it more efficiently this time,

maybe building out a library to take the drudge work out, and still deliver a

solution in good time.

More than anything, though, engineering is about team building and working well

with people to deliver value, learn from others, and teach what you know without

expecting anything in return.

I am enamoured with the length Level 12 has gone to present the whole of itself

in the job listing, and already feel very excited about the opportunity to join

your team.

Thanks for your time and considration.

DONE Star Trek or Star Wars? Answer ... carefuly :)

CLOSED:

There's a place in my heart for both. But the existence of ST:TOS and TNG make

Star Trek a much more interesting place for me to spend my time. The movie

reboots are doing their best to erase any ground between the franchises though.

At the end of the day, Roddenberry himself explained that ST was supposed to be

a modern Gulliver's Travels, and I think he succeeded brilliantly and I find

myself always coming back and rewatching them, while Star Wars provides me more

nostaglia moments for where I was when I experienced those films ... if that

makes any sense at all :)

I guess I would say I'm comptent at Star Wars (3) and proficient at Star Trek

(4)?

DONE Post in RAB slack about interivew tips

@personaljobsearchconvos

CLOSED:

DONE Continue cleaning up root vegetable bed

@farmgardenclearing

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:46

:END:

Got about another third cleared, and it went much faster today due to being wet,

so that felt pretty good.

DONE Move some of the tree debris to the new burn pile

@farmburncleanup

CLOSED:

:LOGBOOK:

CLOCK: -- => 2:09

:END:

DONE Dinner

@familymealdinner

CLOSED:

:LOGBOOK:

CLOCK: -- => 1:05

:END:

DONE Watching Fantastic Mr. Fox with the family

@familymovienight

CLOSED:

:LOGBOOK:

CLOCK: -- => 1:40

:END:

DONE Bedtime

@familybedtime

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:25

:END:

DONE Close up chickens and ducks

chore@farm

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:15

:END:

DONE Watching NBA playoffs

@personaltvsports

CLOSED:

:LOGBOOK:

CLOCK: -- => 1:46

:END:

DONE Talking with Dad about the state of things

@personaljobsearchdad

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:35

:END:

DONE Figure out how to reply with different email addresses in notmuch

@personalemacsnotmuch

CLOSED:

:LOGBOOK:

CLOCK: -- => 1:27

:END:

Journal

After a bleak day yesterday having gotten a 'no thanks' back from ReCharge, I

had to buoy my spirits and managed to find three other job opporutnities to

pursue. Degreed, Hubbub and Level 12. L12 is the most interesting one of the

group, as they are a python/django agency shop very, very similar to Five Q. I

could see myself being very productive there quickly. I am pretty excited with

the propsect of also being able to do a 30-90 day contracting gig for them

instead of a drawn out interview process, which would very much be where I'm at

right now in terms of making money quickly.

Emma realized I still hadn't followed up on the $5k from the 401k withdrawal,

and now I'm pretty sure it's tied up in lost funds somewhere in the state. So I

have to own up to that process and figure out how to recoup some of the money.

Amazing how quickly we wilt when faced with the challenges we knew could, and

would come to us at any given moment.