“What do you do?”

Just heard this template from The Art of Charm ep. 782 for how to answer “What do you do?” when you are meeting someone in a business context.

The idea is that you want to tell them something they can remember and repeat to the right person. So, you lead off with the kind of people you help, and then you say how you help them.

For me that’s something like: “I help B2B software companies by advising them on their product engineering.” I would somewhat alter that based on who exactly I was talking to (maybe niching down to fintech or mobile). It’s intentionally not very detailed to either invite questions or to let the conversation move on.

Later, if that person meets someone who works at a B2B software company that says something like “I wish I could get a handle on our developer productivity”, they might think of me.

Page-o-Mat Minor Update

I made a minor update to Page-o-Mat to add a few features I need for a journal I want to make.

New keys

  • subtitle: for adding a subtitle to a page. There are also the font, color, and alignment variants
  • show-title: a boolean that controls whether or not to show the title. You can use a string expression based on the page/section/variant indexes. This allows you to have a title that might only be on the first page of a section. (there is also show-subtitle)
  • footer-space: For lined journals, this allows you to have some blank space at the bottom. I also renamed heading to header-space, but support both for backwards compatibility (I believe that New Versions Should be Substitutable)

My plan is to use this to make a writing practice / morning pages journal with prompts (see my podcast episode Write While True Episode 19: Prompt Your Morning Pages for the rationale behind this).

1960’s GE Trained Programmers

This is the third installment of a series I didn’t know I was writing

Today, I met Tom, who got his start working for a cotton mill owned by his father-in-law. In 1964, the mill was buying a mainframe, and his FIL convinced him to apply to GE to become a programmer: “He told me it was like putting railroad tracks together”. It wasn’t.

GE hired him and then trained him to wrote COBOL in a few weeks. They placed him on other cotton mills to write order taking software.

That led to a lifetime in programming. He started a company that automated letter writing for members of congress (writing “customized” form letters back to constituents based on their interests). Al Gore was a customer.

Today, he still runs a company that advises mainframe programmers on performance and other matters.

But, it all started because GE was willing to hire and train someone with no experience. It’s a lesson that I continue to hope will be relearned.

How to Signal That You Are Open to Work on Linked In

If you do not currently have a job and want one, you can mark yourself with an Open to Work badge on Linked In. If you have a job, but are open to opportunities, there are ways to signal that without saying it outright.

The first thing you should do is make sure your current job and relevant ones are up-to-date. To show that this was a recent update, perhaps work in the month and year of a recent accomplishment. Generally, updating your resume is a signal that you are open to opportunities. I recommend customized resumes when applying to jobs, but that’s not possible on your Linked In profile, so customize it for the job you wish someone would approach you about.

Make sure your settings are set up so that you are accepting contacts, and that you are open to being contacted. This isn’t as visible as the green Open to Work badge, so it won’t draw attention from your current job, but it lets people know that you are ok with messages.

To draw some attention to your profile, you should have some activity. Reposts and comments are probably good enough.

Finally, it doesn’t hurt to expand your network. Visit profiles of people that might be interesting to work with and try to connect to them. You might find a chance to build a positive association with them over time. If you have people in your network that would write a recommendation, ask them for it.

Every time I talk to people that don’t use Linked In, they assume that you have to become a LI Influencer to get any attention, but for software developers, it’s enough to just be on it with a filled out profile, a decent network, and some light, but consistent activity. There are lots of people looking for you, and so you just need to make it look like you want to be contacted (if you do).

Job Seekers Should Have Some Linked In Activity

If you are looking for a job, and have a Linked In account, it helps to have some activity in your account.

You don’t need to be a Linked-in influencer, but if there is no activity (or the last thing is very old), then I would assume that person doesn’t even use Linked In. When I’m looking for developers, I skip those profiles because it doesn’t look to me like they want to be contacted. If you are open to being contacted, create some activity—all you need is a few comments and reposts.

If you are looking for something to post, just post that you are looking for a job and what specifically you are looking for. Be specific. Build a Job Statement, and then use that.

I suspect that Linked-in will put you higher in search results as well.

    Moore’s Law of Football

    A few weeks ago, I wrote about what computing did to baseball, which was that it had doubled the number of stats they report every 18 months.

    Right now, I am watching the Jets on Monday Night Football. It’s been a while since I tuned into a game live because I don’t live in NYC any more, so the Jets are hard to watch.

    The thing that stands out to me is that there don’t seem to be any new stats. Maybe football really is just yards and points.

    More likely is that there have advances in stats that help scouts, but the announcers have concluded that they are boring. They are right.

    Write While True Episode 34: Word of the Day

    What we’re trying to do is we’re trying to learn how to recall fit words when we need them in our writing. To get better at that, we need to be exposed to more interesting words and to practice using them. Imagine situations where they would be perfect. Making it memorable and ridiculous might help you remember the word when you need it.


    Pull Requests for One

    I work alone on my programming projects, but I still make pull requests. I also review my PRs. It feels silly hitting the Approve button in BitBucket, and BitBucket knows that. It keeps warning me that my PR doesn’t have any external reviewers.

    In 2003, the first year of this blog, I wrote about using Source Control for One, where I agreed with Eric Sink that source control was useful when working alone. It’s hard to think that there was a time when that would be non-obvious advice, but it wasn’t.

    Today, in 2023, I think making PRs when working alone is probably common. I think that reviewing them isn’t. I’m not sure if I can convince you, but the reason I do it is that I keep finding problems. Also, it keeps me honest and makes sure that I keep Constructing PRs to Make Reviewing Easy.

    PlantUML is Byzantine, but I’m OK With That

    When you first see PlantUML for simple diagrams, it looks like just a simple data format. It is not. As you go from diagram type to diagram type, you see lots of alternate syntaxes. For example, any JSON object is a valid PlantUML program. It generates a visualization of the JSON.

    More than that, there are mini-languages embedded in some formats. Creole, a simple formatting language, can be used to provide the content for a box in your diagram.

    PlantUML also offers a powerful preprocessor with variables, functions, and procedures, loops, conditionals, etc and some diagram types (e.g. C4) are built just with these abstractions.

    It seems that whenever the maintainers want to add new features, they seem to lean on more syntax and embedded parsers. The result is both that the onramp can be very gentle to non-programmers because it can look very natural. Here’s a simple sequence diagram:

    actor User
    User -> A: DoWork
    A -> A: Internal call
    A -> B: << createRequest >>
    A <-- B: RequestCreated
    User <-- A: Done
    The sequence diagram that goes with the code next to it. It has a User and two objects (A and B) and shows some messages between them

    That’s great! If that’s all you want from your sequence diagrams, PlantUML syntax is very nice. I don’t even think I need to explain that syntax. But, as soon as you want more control or extra elements, it gets complicated quickly.

    My sequence diagrams all use lifetime bars and show creation and deletion. There is a short-hand for all of that, and here’s an example from the reference guide.

    alice -> bob ++ : hello
    bob -> bob ++ : self call
    bob -> bib ++  #005500 : hello
    bob -> george ** : create
    return done
    return rc
    bob -> george !! : delete
    return success
    A sequence diagram with activation bars on the lifelines.

    It’s still manageable. But, it goes deeper and deeper. It’s hard for me to imagine that there’s a sequence diagram I’d want, but couldn’t get. But, there’s a lot of random, seemingly unrelated stuff I’d need to learn to get it.

    I’m ok with that, because I want diagrams-as-code more than I want simple code. And I know that most of the time, the code isn’t that bad.