< prev 2 Mar 2015 to 17 Feb 2015 next >
  • Weaknesses

    I've been thinking about interviews on a conceptual level a lot recently, and especially the question of what is my greatest weakness. Without exposing too many of my cards to people who might be interviewing me in the future, it's an interesting question, and one that's hard for me to nail down.

    I have a hard time coming up with traits that are not both strengths and weaknesses. It reminds me of role-playing games: every skill point invested comes with an opportunity cost. Further, I have an outstanding question about real humans: to what degree are certain traits mutually exclusive? For instance, someone who looks really sharp all the time is probably not going to be the ultimate hacker; hygiene takes a non-trivial overhead cost on your mental processes that is (probably) incompatible with being a super-hacker.

    We don't really know enough about how brains work to nail down everything there is to know about what traits are likely to manifest in a single individual. Does competitiveness relate intrinsically to violence or impulsiveness or something else? There's no way to know, yet.

    So in light of all this, some things I'm not so good at:

    • Putting down work when it's "good enough"
    • Biting off small pieces of large tasks
    • Trying to think through everything that could happen in an abstract situation instead of doing and seeing what happens
    • Getting started
    • Multi-tasking
    • Giving myself enough credit
    • Doing things whose purpose I don't understand
    • Doing things when I don't respect the desired outcome
    • Attacking a task via the sides instead of the front
    • Killing my darlings
    • Writing concisely; respecting my readers' attention
    • Accepting less than an optimal solution

    On the flipside, I am super-tenacious and will see a problem through to the bitter end, if it's possible at my level (e.g. without a PhD in Math and six years advanced study).

    These bullets seem to cluster around a couple personality traits. I'm slow to start, slow to transition, and absolutely dogged in the middle. I work very well when I am concerned with the process and not the purpose—what I refer to as "suspension of disbelief" tasks. To elaborate, when I started in the Army it was easy for me to just perform, because I was working against my former self, trying to become faster, stronger, more Army, etc. When I just started at City College, it was easy for me to give my classes everything I had, because my purpose then was to get the best GPA I could, acting as if the degree was the only thing that mattered. Later on, I saw what a clusterf*** the Army was, and how misguided leadership was; later on, I saw what a house of cards the world of higher education was, and couldn't stay in that world when there are ways of educating that are clearly better.

    The act of identifying trends and clusters gives some insight on how to attack them. For instance, when I don't respect the desired outcome of a task, try to identify something in it that will make me better. If, some day, the answer looks to be "get enough money to go home and do something that I care about", that will be a sign it's time to quit that job.

    So, the answer to the "real" interview question—"what is your greatest weakness and what have you done to compensate for it—for me would be … something like this:

    "I am not decisive when I don't have complete information. What I do to compensate is to try to identify some complete task that I can tackle, and set my mental benchmark for success in such a way that I do what needs done and move on to the next thing. By the time I've gotten my feet wet on something I understand the scope of the larger problem much better."

    It's a work in progress, obviously.

  • Learning to ask for help

    Years ago, I was having a fight with a girlfriend, and when things had settled a bit, we had a level-headed conversation about what I needed to do.

    One of the notes I wrote myself was to the effect of "Learning to ask for help, and getting it". Meaning, when I had problems, I expect(ed) to be able to deal with them myself, but that's not how being alive works. No one really get anywhere themselves.

    A couple years ago, my boss sent me a curt email saying that I needed to start asking people for help earlier on in the troubleshooting process, because it can save time. There's a balance between being helpless and always asking others to do your work for you, and never asking for any help. This is, basically, knowing the right time to ask for help even though you could solve your problems on your own.

    I was taking some pride in never asking for TA help on solo days, because there was never any problem that took longer than a couple minutes, but there were always more problems.

    I write about the future of schooling, and how teachers and TAs are education multipliers: they help lead students to good avenues of attack, and know when to step back and let them struggle a bit.

    Last night, I asked Jonathan for advice on an issue with the assets pipeline, and over the course of three quick interactions I was able to generate the behavior I wanted. (Why does every problem fix, including home DIY work, seem to require three tries? Is there some truth to fairy tales?)

    There is no intrinsic virtue to being able to do everything on your own, because the guy who doesn't have that hangup will far surpass you, even though you might feel more self-reliant.

  • Buggin'

    One of those things… I assumed Wordpress was a mature platform, and it is, but there's a bunch of weird interactions between, for instance, Markdown and post by email. In this case, the post I wrote last night cut off early, and it took me a second to figure out why, but I think I know.

    There's an old standard for signature lines that dates back to Usenet and the early days of email. A signature would be demarcated by "– ", that is, two dashes and a space on a line by themselves. Wordpress is supposed to prune off email signatures… but.

    Markdown uses multiple dashes on a line by themselves as a horizontal separator.

    Google, I think, trims excess whitespace.

    Can you guess where this is going?

    I used post by email once a couple weeks ago, and my email signature got attached to the blogpost. I used post by email last night, and everything below my first horizontal separator got pruned. lol what?

    Tumblr has issues, but their markdown and post by email were about all I could ask for—simple, clean, error-free. Wordpress is … leaving a lot to be desired.

  • The Matthew Effect

    For unto every one that hath shall be given, and he shall have abundance: but from him that hath not shall be taken even that which he hath. (Matthew 25:29)

    Yesterday I was looking up an old contact (who is a lot like me, but much further along, and with enough money to not have to care), and the memories came back in a rush. It's hard to sum up what anything is, what any experience is like to people who aren't you, but I can mention one thing, the thing that I needed to read.

    In this essay, he talks about how he writes. He has an easy writing style, and apparently people come to him and ask him how he writes so well. His response is that he deliberately writes what is easy and approachable (e.g. that which he knows a lot about), and in time the other things he wants to write get easier. He tackles those in their own time, once he has enough practice/warm up/etc. under his belt for those to be easy to write.

    Like others, I write darlings, and it's hard for me to kill my darlings. It's pleasing to me that when others proofread my work, they point out problem points in the same places I see them ("Oh, this is no good… I'll leave it in for now, though…" "Yeah, this is no good, you should change this/take it out/jump in a lake"). That's not to say that I always know how something needs to be changed, only that I recognize weak spots.

    Anyway, all this comes together into some thoughts about skill generation in general. Writing and graphic design and programming aren't so different in many ways, ways that could fill a book, which is not particularly surprising given my philosophy of "everything is everything". In keeping with the spirit of this entry, though, I'll point out that when you stumble in your craft, the best thing to do is keep working on something.

    Admittedly, you will need time to let your brain process. When you make a typo and overlook it for an hour straight, that's usually a sign that you need to do something else, like run on the treadmill for an hour, drink heavily, and pass out. (By morning, all your problems will be much shallower.) There is a route to maximal learning and maximal skill development, and it doesn't typically involve doing the same dumb thing until you're too tired to do anything right, and by the way, you've just spent an hour anti-training by practicing bad habits.

    It's been a long couple days, for no particularly good reason. I've actually made a lot of important progress—note here that I'm not saying a lot of progress, in an absolute sense—in getting my head screwed on straight and doing important work. I talked to a lot of people, in different contexts, and these low time, high value conversations are really great for figuring out what I want, and need.

    I started sketching out a book that I want to write in parallel with the book I need to write (because my battery died and I had a long train trip, oddly). I think this book will feed into the book I've been trying to write for the better part of three years, if I can make some headway on it. Meanwhile, I have my eyes on a half dozen pet projects that can help strengthen my portfolio. None of them are small enough to sink my teeth into at the moment, and none of them are dire, but like writing, the act of thinking of pet projects leads to thinking of more pet projects. I still need to figure out how to have a brainstorming repository, since every time I start something it all just gets more fragmented, but that should come in time.

    Ugh. In other news, I'm wrestling with some asset pipeline issues with heroku, and I'm about to tear my hair out. It's distracting me, and thus I'm not able to give enough attention to writing this. I know there's more I wanted to write, but I have a hard deadline tonight so I'll have to pick this up later, if I can find the track again.

  • Words of Wisdom

    I have to write for the book I owe in October starting soon, so I've been thinking more about writing in general and how things are communicated. (Perhaps this could be considered semiotic thought?)

    The urge to try to tackle a different book has resurged, especially now that I'm writing here without the threat of fine. Writing is comforting; however, this style of writing is a bit too unrefined and "work avoidance" to really lead anywhere. If nothing else, the medium format stuff seems to be a good lead in to starting work, and getting into a good groove. I wonder if other people feel the same way, and that's why some people get to the office early and work on email?

    (As a sidenote, perhaps that's reason enough to get out of bed early, other than the cat crying. Maybe I can find something to write about in a longer format and see what happens to my motivation/well-being.)

    The segue here is that Tommy asked me for a progress update, and I described to him some of my struggles, and he was pretty good at reassuring me that I'm on the right path. But what helped, and is helping, most, are the short phrases—remember, when you came here, you were already above the top 95%; what's more important than the company is the team you'll be working with, etc.

    I try to collect little clippings and reminders of things and hold on to them until they stick with me. This is one of my lingering problems, actually: getting all the clustered information out of my head and into a format where I can manipulate it. I was actually considering exploring some different technologies in order to make a Scrivener knock-off, because the plethora of similar tools never seem to quite mesh up with my needs, but I know that that's probably another blind alley. If I could figure out the interaction model or something, maybe it'd be easier, but it certainly wouldn't be trivial by any means.

    It's surprising how much productive work relies around having the right information available in the right format and being able to manipulate it in an easy manner. This is probably the central problem of software, in short: while maybe 90% of apps boil down to CRUD, making interactions painless and contextually meaningful is the where interesting work happens.

    There's a link here, though: getting the right "core idea" matters as much in writing as it does in software (or mathematical proofs, or… so many things). In most mental work, there's some foundational piece that helps you stay on track, and helps the audience get in tune with you. Good writing will have a rhythm, where a long description will build to a purpose, or a witty or touching statement, and that will stick with people. Good software has a clear purpose, I think, and should be similarly scrutable to an audience.

  • A lack of management?

    What are the relative demand levels for entry-level engineers vs. engineers with experience? Are they equivalent? Presumably, if the pipeline stays somewhat stable, there should be slightly fewer devs with 3+ experience at any moment than entry level devs; where are the demand levels?

    If you just can't fill a slot for a mid-career developer, and you have a reasonably-sized team (i.e. not a single devops, a CEO, and a dude in sales), you should be able to take up some of the slack by hiring junior devs and managing/mentoring them adequately.

    A company that can figure out how to do this will be picking up money that others are leaving on the table, because a lot of those Jr Devs will end up being the mid-career devs with (hopefully) a bit of loyalty.

    Have I said these exact words before?

  • Marketing; Or: The Cost of a Product

    The more your name is out there, the more interest you can get and the more you can identify your market value. It's analogous to a stock market: a low-volume symbol will likely have a large spread, which is (analogous to) the margin of error.

    I'm not intending to tip my hand too much, and worst case I can make some of these entries private in case I feel that they put me on a weaker footing in my search. But the cost of not marketing yourself, in my case, may turn out to be about $15-20k/year.

    I know who I am, but without marketing, no one else is going to know that I've got a lot to bring to the table. But the fears that I have—of being judged, of not having others see me the way I see myself—while not precisely abnormal, are doing me a disservice in this process.

    All I want to do is to work on coding projects, because I'm not my own best advocate, but I know somewhere out there is a company that really wants me, they just have no way of knowing it yet.

    In related thinking: I am not as virulently against marketing as a lot of people out there. It's nice to just be able to research the thing you want, look through objective(ish) reviews, and then make an informed decision, but I honestly believe that only works for the barest minority of products. There is some threshold, before which a product is not getting enough people using it who honestly would want to. Tracking information about consumer preference and demographics is part of a process of getting sellers in contact with buyers who would lean in their direction; I think the common (unstated) fear is that the established brands have the money to drown out more fringe companies.

    In turn, though, and especially when some fringe company is trying to generate network effects, sometimes no one wants the minority player. In the internet age there's not a ton of room for another full OS, because each one siphons off talent, and it's really hard to develop all the features people have come to expect without an existing technology base. I suspect the next major OS will supplant someone.

    Similarly, anyone could have seen the Seamless/Grubhub buyout coming. I don't want to have to figure out which company my local delivery joint uses; I just want some damned food. And there are a lot of Grubhubs out there. You haven't heard of most of them, and they'll probably die, or stay marginal for a long time.

    Which might not, after all, be such a bad thing. Most regions have at least two grocery stores, and those grocery stores have operating regions… fragmentation isn't always bad. They are a highly commodified market, though: every single one of them sells Cheerios, bananas, and Ajax, so they're not that different, whereas two different websites in a similar field might have completely different interfaces and data models, as well as corporate partners/networks.

    I don't know what an area of technology that can support true competition over a long period of time looks like, or if it can even exist. And I don't know if I really want to work for a will-have-been… but I know that engineering jobs are so transient that it probably doesn't matter in the end.

    The next two years are for straight up learning. Don't forget that.

  • Personal Advocacy

    Continuing on the idea of identity, I'm starting to think that in any practice as personal as job hunting, it's tremendously challenging to disassociate yourself from the process of searching. Meaning, largely, that you're never not looking for work for yourself, you're always thinking about what you'll be growing into in the (near) future when you're looking for work.

    Perhaps the key, especially for someone as identity-sensitive as I am, is to pretend that you're looking for the sake of someone else. I can give good advice to others, and I know what I should be doing, but thus far I've been terrible at following through.

    I can't imagine myself at a lot of these places, but I have to credit that at least partially to my lack of imagination.

    In the meantime, I think my goal until I run out of ramen is to pretend that everything is about someone else, and that I've just been employed by this person to do the legwork of a hard-core job search, and that they're the one who is living in terror.

  • Reining in perfectionism

    I have the easiest time not being a perfectionist when I'm working on something that I don't care about.

    I think this is an extension of my thinking about identity. I identify strongly with my work, more specifically my work output, and when I don't feel that my work on things that I identify with is good enough I get tetchy.

    Meanwhile, I can recognize a finished product, and get my work there much more easily, when the topic isn't something I have strong opinions about.

  • Private Languages

    Each one of us means, with our words, exactly what we mean; no more or less.

    When you are misunderstood it's often because the other's use of words places a greater significance on a given definition than you do.

< prev 2 Mar 2015 to 17 Feb 2015 next >