To Dream of Magick

Dreamer Shaper Seeker Maker

Reflections

Posted on Mon Jul 10 12:00:00 UTC 2017

I left CollegeVine a little over two weeks ago. Since then, I have gotten myself really busy. For a moment tonight I am going to slow down to reflect on my time since leaving.

First of all, I had an obligatory Friday of just not doing anything. But by Saturday, I got to work. In the last two weeks I have...

  • 86 commits to 4 repositories
  • representing a new library that puts some workflow around JWTs for capability or token based authentication
  • extracting an existing module into its own library
  • converting the authentication scheme of two applications to use the capability tokens
  • build out a Javascript, React, Redux frontend for my health application, comprising of the bulk of my time, and 1000 lines of code
  • multiple interviews with three different companies and a starter interview with a fourth
  • laziness and playing during the 4th of July
  • I got engaged!!!

Poly Trans Lesbian(ish) Triad

Quite the mouthful!

I moved to Boston to be close to my partners, Cait and Leah. For the last year we have all danced around and away from the topic of marriage.

Finally, though, I decided I was ready, and so on the 3rd of July I asked the two of them to marry me. They both said yes.

Obviously we shall have no legal recognition. I don't even have much expectation of religious recognition. The only thing we will be asking for is that the community around us recognize our relationship, support us, and hold us accountable to the vows that we will make.

We will announce the date when we figure it out, but we may not even begin discussing the date until late this year.

Coding without restriction

This is rather a misnomer. I start putting restrictions on my code before I even start typing the first line. I have certain habits and discipline that come from all my years of coding. Some of those habits lead me to immediately start trying to constrain the scope of what I'm writing.

But, in fact, almost everything I worked on over the last few weeks had pre-existing code that I had to work with.

At the same time, I had incredible velocity, primarily because I understood the systems I worked in. I have a history with those systems, having grown some of them since inception. I also have at least a modicum of automated tests on everything except for my APIs. Most importantly, though, since I understand the system I have no fear of breaking unrelated components. I can make changes and deliberately break things, because I either know the code or I have written automated tests that will help me detect flaws.

Obviously, when I start my next job, I need to use absolutely every tool at my disposal to learn the next system I walk into as quickly as possible. No slow "do some projects and learn by osmosis".

  • map every data structure I can find and understand
  • find every API endpoint
  • read every automated test
  • build automated tests as soon as I find untested corners
  • pair with other people on their code
  • have people pair with me on my tasks
  • document anything that feels undocumented

Learning

When I am stressed, when I feel most pressured to get something done, I can't learn. Anything I learn must be in direct service of immediate needs, preferably to the point that I can simply copy-and-paste a new idea in and tweak it a bit to make it fit. This meant that I did not want to take the time to learn anything because I really needed to get the code working and the feature shipped.

When I relax, and have a project in mind, and a bit of extra time, I can learn a lot and move very quickly in my work. I barely knew any Javascript or React, and I knew no Redux, when I started. Yet I shocked a Javascript expert I know when she saw just how far and how quickly I could move.

This should have been obvious. It wasn't. Now I know.

Haskell

Make no mistake, I love Haskell. But I do not necessarily love the Haskell community. I have met some decent people there, but I have also seen bro-level toxicity. I think that Haskell has a lot of elitism around it, and that attracts the kind of human beings I most dislike. As such, since CollegeVine was probably the least toxic Haskell environment I have encountered, I will not seek another Haskell job until I can create it out of a team of junior programmers who are really excited to learn new things.

Moving forward

I am pretty sure that I am done with interviews with one company. I have additional interviews with two others and think that the fourth will not turn into anything. Some of the positions are really compelling. So, I have an exciting future coming up, and I hope to actually have a new employement contract signed before I have been out of work for a full month.

We shall see. But the future looks bright.