The Center of Conversation

In every group discussion where people are free to move around, people always form an approximation of a circle or simple polygon around a central point. This “center of conversation” is not a tangible thing, but it’s very visible in the dynamics of groups.

Today, I’d like to talk about this social concept, and for those of us who don’t utilize this important source of positive social vibes, explain how to start.

What I call the “center of conversation” is the point that’s on average equidistant from each participating conversation member. Even people who don’t use this concept have an intuitive understanding of it, to an extent that social interactions feel more awkward when all parties involved are not standing at appropriate distances around the center (that is, on average equidistant from both the center and each other), and likewise they feel smoother when all parties observe this rule.

People who understand this concept will find themselves shifting around the center as people walk around, leave or join the conversation, or as the group dynamic otherwise shifts. People who really understand this will find themselves glancing toward the conversation center whenever they need to break eye contact.

The center of conversation doesn’t dictate that people have to stand in perfect circles all the time. Peoples’ personal preferences and convenience always take precedence over the center. But with preferences accounted for, people arrange themselves according to it. Given a choice of two places on a couch, people will choose the one closest to their appropriate place relative to the center. If an outlier in a group doesn’t understand the center and moves counter to it, the rest of the group will likely shift around to readjust the center.

If you’re the social butterfly type, try to find the center of conversation that you’re subconsciously moving around. If you’d like to make yourself more likable, once you find that center, try glancing at it instead of away from it whenever you need to break eye contact. Eyes are powerful indicators of attention – looking in a direction has the same weight as pointing in the direction. If you look toward the center, you’re pointing toward the other people, toward your conversation together, and you’re indicating that both of those things are important to you. Even if the other people don’t realize what you’re doing, they realize that you are doing it and they feel appreciated.

If you’re the kind of person who probably breaks this rule all the time, don’t sweat it. You can teach yourself to pay attention to the center of conversation just like you can teach yourself any other skill. Next time you talk to anyone – in a group, one on one, whatever – think about where the center is. It’s easy to find between two people, it’s just the point right in the middle of the space between you. Among larger groups it’s slightly harder, but not much. Think about the middle of the space between you and pinpoint whatever you think is closest to the center of that space. You don’t have to be perfect – it’s a vague area that you indicate by moving around it or glancing at it, not a point you have to precisely identify on a graphing calculator. Just get the vague gist and you’ll be golden.

It could take a while to get the hang of doing this, but in doing so, you’ll make people more comfortable around you. In this modern, segmented, isolated world, comfort is the single most important thing, in both our personal and professional lives. When clients buy a service, they’re primarily buying their comfort with the people providing that service. And what more could anyone want than to be comfortable around the people they care about? Any way you can make those around you feel comfortable is an advantage you have – not over them, but with them.

12 Things I’ve Learned from My Apprenticeship So Far

…In approximately chronological order.

I’ve learned a lot about jobs and the work world from my Praxis apprenticeship thus far. I could just keep this knowledge to myself, but why would I? I can make no guarantees that these insights are generalizable, but I’ve tried to explain them.

  1. Pay attention to the vibes you get off the people interviewing you. Vibes/auras/senses/whatever are just other words for “thin slicing”, when your subconscious knows something based on a well-trained intuition that you simply don’t know consciously yet. You don’t get much time in an interview and you need to take every opportunity to understand your potential future bosses. Knowing whether you’re going to like a job starts with knowing whether you’re going to like the people, and knowing that starts with thin slicing, aka, vibes.
  2. Interviews are a two-way street. At the same time that you’re being interviewed, you should be interviewing. Come up with your own sly interview questions that get your interviewer to tell you more about the job and the company than the simple words they say, just as they’re asking you sly interview questions to get you to reveal more about yourself than you say. At the same time that you’re making yourself look more appealing to them, they’re making themselves look more appealing to you. Know this and use it to your advantage.
  3. That ‘welcome lunch’ is not just a friendly gesture. In fact, this is another interview with a slightly different purpose: gauging your interpersonal skills. Nobody wants a new hire who doesn’t get along with the whole team, and that’s what this lunch is for. Understand that purpose and ace this test.
  4. The only way to survive at a startup is to train hard and train fast. The best way to thrive in any company is to do the same. The quicker you bring yourself up to speed, by actively asking questions, by reading job materials in your off hours, by immersing yourself fully into your role, the quicker you can become indispensable.
  5. Don’t speak, just do. I read in one of many brilliant business books that a great leader never has an off day. The same is true of any great employee. Even if you have off days, you’re tired, you’re achy, you don’t feel great, you’re stressed, you don’t say anything about it. You buckle down and you get the work done and you say nothing to anybody about how hard you’re working. They will see the results and it will be worth more than a million words.
  6. Always be “on”. An actor “on” from the instant they step into their character. A gymnast is “on” from the instant they begin their routine. And an employee is “on” from the instant they step into the office. In all these areas there is an energy that you must project, and the act of projecting that energy is what us performers call being “on”. You deliberately cultivate this energy – it doesn’t happen naturally. It’s tiring at first, but you get used it; it’s a muscle like any other and you have to use it to improve it. Presidential candidates are absolute beefcakes in this area: they’re “on” nearly every minute of every day. Fortunately for you, all you’ve gotta do is be “on” in the office.
  7. The “I’ll do it myself” mindset is just fine, but avoid it while training. “Doing it yourself” while you don’t know what you’re doing is a huge waste of your time and your company’s. Take the time to learn, then do it yourself correctly.
  8. Your boss isn’t always right, but pretend they are. This is especially true if your boss is insecure, which some are. If, for example, your boss throws a hissy fit over a remark you made, don’t defend yourself: just stop doing whatever it was that pissed off your boss. Your second quickest ticket out the door of any office is a pissed-off boss. (Your quickest ticket is a pissed-off client.)
  9. Your clients aren’t always right, but they’re right more often than you might think. At least in marketing, there’s this idea that we marketers know better than everyone. And we do – about marketing. But most of us know jack-shit about programming, which makes our technical clients furious sometimes. Cut your clients some slack when they correct your usage of their industry jargon. Also, make super ultra sure it never happens again.
  10. Nobody should ever have to correct you in the same way twice. The single most frustrating thing on the planet is to have to tell somebody something multiple times. It’s an incredibly silly idea that everyone could pay enough attention to everyone else all the time to always remember everything they say, but we all have such inflated egos that we can’t help feeling like that’s the way it should be. Your boss and your clients have this feeling too. Humor them. Never forget anything they say and never need to be corrected more than once.
  11. Humility isn’t a mere confession of your fallibility; humility is actions taken in anticipation of your failure. “I could be wrong” and a buck fifty will buy you a coffee. The only useful declaration of fallibility is the one followed immediately by action. Preparing for your failure will make it way less sucky when you succumb to being a normal human and failing at something at some point.
  12. Your career path determines how hard you work at your job, and vice versa. If your plan is to advance in your role, work super hard at that. If your plan is to move into another role, perform to a solid level and spend your spare time moving toward your next career with as much vigor as you can muster.

These are the things I can give handy advice for; there are of course some things I haven’t sorted out yet. I hope that given another three months I’ll be able to give handy advice for those, too.

A Photo Timelapse: Month 3 at Upgrow, Inc.

I cannot believe it has been three whole months out of my six-month apprenticeship at Upgrow. It’s so cliche to say this, but I have honestly learned so much, grown so much, and become (it feels like) a totally different person.

Because, as the adage goes, a picture is worth a thousand words, I’m posting pictures of this ridiculous journey, in honor of this halfway point.

On top of living in an absolutely gorgeous city and taking pictures with my phone that could go on postcards, I have published nearly ten blog posts to clients’ blogs and edited hundreds of web pages to optimize their SEO. I’ve learned more about marketing within three months than years of college classes could teach me. And I live in the universal locus for technology, where everyone is smart in the very specific way that means they will be excellent connections for my career path.

I can only hope my life continues to be awesome going forward – for the next three months of my apprenticeship as well as in the more distant future.

How to Be Happy

Growing up, my mom used to tell my siblings and I that when we were upset and didn’t want to be, we could choose to be happy instead. The whole concept seemed ridiculous to me. “I can’t just flip my emotions on and off like a light switch,” I remember telling her.

But the problem was, she was right. It’s entirely possible to “flip your emotions on and off like a light switch”. There’s a lot of research backing up that statement—not surprising, my mom graduated with a Master’s in psychology, I should have known she didn’t pull this idea out of nowhere. Further, though it took me longer than I would care to admit, I did personally realize the wisdom in her two-word advice, “choose happy”.

Many experiments show that if you smile, you’ll feel happier. It’s not even entirely about the conscious decision to feel happy – merely moving your facial muscles or even forcing a smile using chopsticks can do the trick. Your brain just has an association between smiles and happiness and so smiling can make you happy.

So the research says. But I doubted it. For years, until I realized the truth of it independently. Today, I’m going to dissect the reasons I doubted it, because I feel many people probably have the same doubts when reading articles like this one.

I had two reasons to doubt “choose happy”. The first was that I was afraid people would look at me weird if I went from crying to laughing in the span of less than two minutes. The unaltered procession of human emotions is a slow ebb and flow, and a drastic change would make people ask uncomfortable questions.

They probably would have done that. But I wish someone had told me that there are things much more important in life than seeming strange. Spending a majority of my time feeling depressed and anxious for no reason was dramatically worse than it would have been to have some people think I was odd. I should have weighed the pros and cons of feeling the emotion versus letting it go.

The second reason I doubted the wisdom of “choose happy” was that I thought all emotions were important. I thought that they were always there for a reason, even if I couldn’t find what that reason was. It was a gradual realization that led me to the simple fact that some emotions don’t make sense – they’re the result of hormonal imbalances, meaningless stressors, mental overstimulation, and many other things which don’t need to be dwelled on.

Nowadays, I think about emotions in the context of net utility. Is feeling this emotion useful to me? If I’m feeling embarrassed about a stupid mistake, that feeling can be useful, to prompt me to fix the mistake immediately. But after I’ve done everything I can to fix the mistake, including making the appropriate social reparations, I can let the emotion go, because it’s served its purpose. Continuing to feel embarrassed even when I can no longer do anything about the mistake, including learn from it, is pointless.

And if the emotion didn’t have any purpose to begin with – say, if I’m feeling angry because I’ve had a long difficult day at work, which is not even slightly connected to any particular problem that can be solved – I can analyze the cause, decide it’s pointless, and let go of the emotion.

How do you let go of emotions? After your brain stops intuitively holding on because it thinks they’re important, or that it would be weird to let go, it’s typically as simple as focusing on something else. If just passively thinking about something else doesn’t completely fix it, try smiling, putting on a fun or silly song, deliberately focusing on happy thoughts, or even closing your eyes and imagining a pleasant location to hang out for a while. (I’m deliberately giving advice that doesn’t require getting up, because I personally don’t like advice that says “get up! stretch! jog! sweat!” – it does genuinely work, but it’s always delivered in a very pushy way. That being said, if you haven’t already heard this advice from a hundred thousand people, being outside and/or exercising does in fact make you healthier and happier, so try it if you feel inclined.)

So the list of question to ask when you feel any emotion is:

  1. What emotion is it? Is that really what I’m feeling? Emotions are frequently very transparent, but they can become tangled. Further, some emotions can mask others: a lot of men have a tendency to express anger when they’re truly sad, for example. If your emotions are unclear, sort them out.
  2. What probably caused this emotion? Go over salient events in your mind and find the proximate cause. It doesn’t have to be anything major and it frequently isn’t. You’re looking for a cause, not a good reason.
  3. Does this emotion have net positive utility? Feeling negative emotions has inherent negative utility, but that may be outweighed by the positive utility of the action it makes you take: learning from a mistake, apologizing for a misdeed, fixing an internal or external problem, etc. Figure out if the emotion is prompting you to do anything useful, and if it isn’t, if you really need to keep it. Compute the net utility.
  4. An important note about these utility evaluations: A common trap I’ve seen many people fall into is where they keep a negative emotion around because they believe it prompts them to do something good which, in fact, they would do anyway. In particular, a lot of high-achievers end up with the misconception that being miserable is what prompts them to achieve things, when in fact, they would achieve more if they were happier. Therefore, strongly doubt any utility evaluation that leads you to the belief that you need to be miserable all the time in order to get things done.
  5. If you determined that the emotion has net positive utility, keep it around, but only as long as it continues to be useful. As soon as you’ve done everything useful that the emotion was prompting you to do, throw it away. There is no reason to be miserable longer than necessary.
  6. If you determined that the emotion has net negative utility, toss it immediately, using any of the tricks described above.

A final note about the utility of positive emotions: feeling good is a good thing. I’ve seen people be happy but wonder whether they really should be feeling happy. You can dissect the emotion and what actions it makes you take to figure this out, but don’t decide you need to be unhappy because it’s uncommon to see sane adults who visibly care about anything. Emotions are good to keep if they’re useful, and being happy uniformly makes your life better, so ceteris paribus, happiness is useful, and therefore, happiness is almost always good to keep.

In conclusion:
Choose Happy.

Algorithm Design for Minimization of Time Complexity

This project requires a bit of background, for those who aren’t familiar with Google Ads. (For those who are, please skip down to the horizontal bar.)

When you search for something, some ads may show up at the top of the results page. Those ads were paid for by companies who had decided those ads were bringing in enough profit to be worth it.

Think about it in terms of four steps. 1, the company decides which keywords they want to bid on, and how much to bid on them. 2, the ads show up to users, and some percentage click through. 3, of those who click, some percentage actually convert (conversion defined however you decide – they may download a white paper, buy a product, or sign up for your email newsletter). 4, the company measures all aspects of this funnel and adjusts their keyword bids and/or ads accordingly.

This particular project involves automation of a specific portion of step 2. To try to maximize their ads’ conversion rates, marketers only want to serve their ads to people who have the highest chance of clicking, and ultimately, converting. A very important tool in the marketer’s arsenal for this goal is the negative.

Negatives, short for negative keywords, are keywords that tell the search engine that they should not display your ad if that keyword is part of the search query. For a quick example of why you might want to do this, consider that you’re running a bakery and you have two ads, one for cake recipes and one for carrot cake recipes. Now, obviously, you want only the cake recipe to show up when someone searches “cake recipe” or something similar, not when they search “carrot cake recipe” – you have a separate ad for that for a reason! So what you can do is make the word “carrot” a negative for your cake recipe ad.

This concept of negatives is useful for any circumstance where you don’t want your ad to show up – including because the keyword has a low conversion rate. And this is what this project is about.


This project involves taking a list of search terms and finding individual words which are always associated with a lack of conversions over an extended period of time and bringing them to the attention of the marketers running the ad campaigns so they can negative them. Therefore, it involves taking a table with a column of strings and a column of ints and isolating individual words (separated by spaces) which are associated with, and only with, int values of 0.

I considered a wide variety of possible algorithms in the course of working on this problem but ultimately wanted to find something which had a minimal time complexity and could run moderately quickly over tens of thousands of data points (six months or more worth of keywords and conversions).

I wanted to make sure I was looping through the dataset as few times as possible, so I would make sure to fetch the data, only store what I would absolutely need, and store it in a separate array so I didn’t have to deal with the hassle of deleting elements and having the machine shift everything else back, since I was liable to do a lot of deletions.

I will admit that this problem took me a long while to crack. I had too hard a time visualizing a massive dataset with so many different terms to think about doing any logically complicated data manipulations to it. So my first step was to simplify it to a little table, like this:

Strings | Ints
"a x" | 0
"a y" | 1
"b x" | 0
"b y" | 1

Abstracting away everything but the bare bones of the problem helped me finally realize what I succinctly described at the beginning of this essay, that I wanted to find all the elements with, and only with, an int (# of conversions) value of 0.

Once I removed that block, the ideas started pouring out. I went through about twenty different possibilities before settling on this basic concept:

  1. Fetch the data from an Excel spreadsheet to a Pandas DataFrame.
  2. Loop through the DataFrame, splicing each individual search term and splitting it into component words.
  3. Add each word associated with the number of conversions of the search term it’s a part of into another array, in alphabetical order.
  4. For each word in the resulting array, while the word is equal to the one in the next row after it, check if all conversion values are equivalent to each other and to 0.
  5. If they are, add the word to the final array; as soon as they’re not, skip to the next word and run that through step 4.

Now what’s left is to actually implement that. *exaggerated sigh*


What did you think of this post and this algorithm? Is it a good idea? Did I screw something up colossally? Please let me know in the comments below!

If You Want to Be a Digital Marketer, Learn Web Development

I ended up in marketing nearly by accident. My plan was always to be a developer—it still is—but I knew I eventually wanted to start a company, and I so I knew that I would at some point need to learn a bunch of other stuff in addition to pure programming: sales, marketing, economics, accounting, business law. So when I was offered a marketing job, despite a work history full of building websites by hand and utterly lacking in anything even containing the letters “SEO”, I took it.

This gave me an interesting background for a marketer, where though I was extremely junior, I understood all the technical jargon that made my coworkers flinch. And looking back, I think my technical background was a boon to me; so much so that I recommend taking at least one beginner web development class to anyone who wants to be a digital marketer.

Why Learn Web Dev?

Knowing web development is so useful for digital marketing because the two are hopelessly intertwined. For example, take the two most important pieces of metadata for SEOs: the meta title and description tags. Knowing where they are in the code, how they show up on the SERP, and how Google indexes them is extremely helpful to use them effectively for on-page SEO. Take another example: it’s all well and good to know by rote that appropriately sized images will make your page load faster, but if you understand the reason—that CSS takes a moment to resize the image, and if you give it an appropriately-sized image, it can prepare it faster—you’ll know exactly how to fix the problem. In general, being able to read the code when you “view source” on a webpage, along with knowing the general architecture of the internet, will help you immensely.

If you’re currently working in marketing or you’re planning to start soon, you may be thinking, “okay, in theory that sounds nice, but I’m already working so hard on marketing itself, and I don’t have time to learn to code – isn’t it super time-consuming and hard?” Fortunately for you, the answer is no, it’s not harder than any other marketing skill – if you have the right resource. And I have the right resource for you right here: HTML, CSS, and JavaScript Web Publishing by Colburn, Kyrnin, and Lemay. This book taught me a majority of what I know about HTML and CSS, which says at least something given my portfolio. It has one oddity: it doesn’t tell you how to actually host your site on the web until chapter 24. You’ll want to read that chapter very early on – probably either right before or right after chapter 1. Getting used to pushing your changes live with FTP is both easy (you can teach it to a 7-year-old) and important. Besides that little quirk, this is one of the best resources I have ever found for HTML/CSS/JS, and definitely the most useful for beginners. It even has a nice section on SEO at the end!

Learn to Use Chrome’s Developer Tools

Besides building your own websites, there is a techie tool that’s also helpful if you’re going into digital marketing: Google Chrome’s Developer Tools (or “DevTools”).

You can access the Developer Tools by clicking the three dots in the top right-hand corner of the Chrome browser, then selecting “More Tools” about 3/4 of the way down the menu, then selecting “Developer Tools” from the bottom of the next menu. The developer tools are a window that pops out from the right-hand side of the screen, and they’ll let you do all sorts of awesome stuff, including seeing in real time in a real browser what would happen if you made certain edits, without ever changing the real source code. You can do this with not only your own website, but with other peoples’ sites, even those which are way more complicated than yours. Here’s a nice tutorial to get you started with Google DevTools.

These tools are very useful for the beginner web developer or digital marketer because they’ll let you toy around with massive, complex sites without having to build those sites from the ground up yourself. I tend to just open the DevTools on random websites and play around with making changes to see what they do. It’s not a systematic process, but it’ll improve your web development skills, and it’ll also be fun. Who said work couldn’t also be play?


Do you agree that digital marketers should learn to code? Do you have more useful tools for beginner web devs (those who are or aren’t marketers by trade)? Let me know in the comments!

Thoughts from Planet Earth

Sometimes I look at the sky and I think, how high can I jump? Like, half a foot or so. And then I think, how high can I get in an airplane? That’s the kind of delta that human ingenuity gives us. And it’s not even the limit: how high can you get in a rocket ship?

But even so, the stars that I’m looking at are so much further away. If Earth was a word, the nearest star is ten times every word you’ll ever say in your life. And yet, we humans went from the half a foot we can jump to the upper stratosphere, where the tallest mountains are vague outlines of purple and white.

It took a lot of work. Not with our muscles, which can only get us about five feet up if we train relentlessly for years, but with our brains. Thousands of ordinary human brains, no smarter or greater than you or I, made the airplanes and the rocket ships. In fact, human brains did a whole lot more than that. They created the entire modern world.

I wake up in the morning to an alarm app that comes installed on my smartphone, which gets its data from a clock which runs on humanity’s collective knowledge of quantum physics and syncs with all the other phones via a network which runs on humanity’s collective knowledge of binary logic. I get dressed in clothes that came directly from somebody I’ve never met who donated them to a Goodwill on the opposite side of a continent from my current residence, and that person got them from a store which got them from a country I’ve never been to. I take a train to work which moves through a huge tunnel under the ocean at upwards of ten times the speed I can run. Humans made all of this! Some of it is pretty suboptimal—the fact that I have to get up at 6am certainly comes to mind—but you can’t deny that it’s incredibly cool.

If thousands of ordinary human minds were able to make all these things, I think that with a few thousand more, we’ll be able to make it all the way to those stars and to the planets that might orbit them.

What might we find there, on those distant worlds? Maybe nothing more than we minimally expect. Some interesting places, both habitable and hostile, to which we can add the beauty that comes with perception by intelligent life. And this isn’t a loss! Improving the diversity and span of human experience across the galaxy is one of the best futures I can imagine for us.

But maybe, just maybe, we might find someone else out there. Not humans in funny suits, like in sci-fi movies, but things which are more different from us than we are from petunias—because we and petunias both evolved on Earth, though our evolutionary branches separated aeons ago. Sentient things made of complex configurations of silicon, crystal, liquid, metal, or things even stranger. Sentient things which are further from humans than anything we know, but that we can still call people, because though they may not have human thoughts, emotions, or biases, they have goals and they don’t want to die and this is all we really need.

Think how similar we are to each other, compared to the others we might find out there. All humans look the same—bipedal ape-like things made of flesh and built from DNA. We think the same—simple animals which evolved higher thought, planning, and consciousness by a constant competition with one another that produced predictable patterns and errors in reasoning. We act the same—pack animals inclined to organize into social groups and gatherings who are practically mandated by our development process to use syntactic combinatorial language along with specific nonverbal gestures and facial expressions to communicate. We feel the same—emotional creatures motivated primarily by fear and secondarily by joy, sadness, anger, and love. We’re as alike as peas from the same pod.

And maybe this is the part of my mind that grew up on Star Trek talking, but it doesn’t make any sense, if we could find and cooperate with these others—and I think we would, judging from how badly we want to not be alone in the universe—that we would still have such silly things as the various -isms and -phobias which are manifestations of inter-human hate and insecurity. How could we hate a fellow language-using, emotion-feeling, hairless ape built by DNA, when we can get along with electrically-charged systems of fractalized crystal and gaseous blobs of pulsating color?

If our distant ancestors could gradually build our modern world and our distant descendants could get along with these impossibly different aliens, how could it make sense for me—operating in a flawed modern world but made of the same stuff that made up the humans before me and will make up those after—to hate another human?

These are the things I think of, looking up into the sky at night.

Thoughts on the Basics of Go

Disclaimer: I’ve been studying Go for two days. There are some neat things I learned about it, so I decided to document them, but if anything in this post is factually inaccurate, please let me know so I can correct it. Thanks!


Go is an object-oriented, statically-typed programming language created by Google in 2007, which makes it the only language I know that’s younger than me. (Python and JavaScript aren’t as young as you think they are, they were both created in the mid-90s. Yeah, I was surprised too.) Go seems to me like a weird lovechild of Java and JavaScript, but then again, I have heard it’s more like C, I just didn’t make that connection because I don’t know C.

That being said, if you already know both Java (or some other statically-typed OO language like C) and JavaScript (or some other dynamically-typed language like Python) most of the basics of Go aren’t going to seem odd to you. Go is statically typed, but it’s much smarter than Java in terms of inferring variable types, so the actual top-level programming feels somewhat like JavaScript or Python.

For some examples: Go has a main method that works just like Java, and one variable initialization style, var x int = 10, looks Java-esque. However, the idiomatic style for initializing variables looks somewhat like JavaScript: x := 10, since there’s no explicit type declaration. Overall, in Go, you type way less characters than you do in any other language I’ve used before. Look at the idiomatic initialization above. Or look at how you get a character from an array: arr[2], unlike Java, arr.charAt(2). The + operator is also overloaded to both addition and concatenation, like JavaScript, unlike the Java string.concat() method.

Now for the weird stuff that’s not like any other language I know – though it might be like some other language.

Go only has one loop, which happens to use the for keyword. Using different syntax patterns, it can operate like a for loop, a for-each loop, and a while loop, just to name a few. There’s also a range loop for k := range arr, and if another language I know uses them it’s definitely esoteric.

Go also does a weird thing with arrays. There are three standard types of array-like things: arrays, slices, and maps. Arrays pretty much work like Java: they have a set type and size and can’t be expanded. To fix the “arrays can’t be expanded but I wannaaaaa” problem, instead of going the Java route and making an array-style expandable object type which everyone then uses instead of standard arrays (ArrayList), Go has “slices”. These are segments of arrays which can be expanded when new elements are appended, until the length of the slice exceeds the length of the array, at which point the contents of the array are copied to a new array which is big enough to hold the appended elements. …I think. Maps are, fortunately, simpler. They’re sets of key-value pairs, where the keys and values can be of any single type. So you can map strings to ints, ints to ints, strings to strings, etc.

There are two things about Go which I find neither good nor bad, just very interesting. The first thing is that, among the variously-sized numeric types, there exist numeric types for complex numbers. This sparked a sudden desire in my mind to do something involving quantum physics with Go, although I have absolutely no idea what about quantum physics I would want to write a computer program for. The second thing is that Go does a lot of stuff in the Terminal, which makes me wonder how one goes about writing desktop applications in the language. (According to this article, it’s difficult.) I’m not a huge fan of web development stuff in general, and it’d be kind of annoying to have to make all my advanced Go projects web-based.

Besides slices, nothing about Go seems too awful or counterintuitive, so I’m optimistic about my future studies. As soon as I’ve got something a bit more complicated than Hello World, I’ll post projects and write-ups here. Please look forward to it!

How to Write an Article for a Client’s Blog

One avenue of digital marketing that is simultaneously time-consuming and rewarding is writing optimized articles for your clients’ blogs. This is time-consuming not just because writing polished articles takes a while, but because doing it correctly requires significant background knowledge of your client’s industry. Still, there isn’t much that will benefit your clients’ organic search rankings more than well-optimized, relevant, regularly posted blog content.

Do Background Research

In order to get started with this process, you’ll need a significant background of knowledge. What does your client do? What is the problem they solve? How do they solve it differently than their competitors (both those they would name in response to the question “who are your main competitors” and also those who rank higher than they do for their core keywords; otherwise called “named” and “organic” competitors)? Who are their customers? How do those customers use their product or service? What is the jargon in their industry? You’re writing these posts on behalf of your client, so you had better be, if not an expert, at least very knowledgeable about their product, customers, and industry.

Once you have this information and have decided what keywords it would be best for them to rank for, you can do a content gap analysis to see what kinds of topics your client doesn’t have articles or blog posts on that their named and organic competitors do. There are a handful of tools which can do this; my favorite is Ahrefs.

If you work for a marketing agency, you probably already have both of the above pieces of information on file.

Pick a Title

Once you have all the background info, the first step in content writing is to pick a title, topic, and format. These can and should go together: if the title doesn’t clearly tell your readers what the topic and format are, then it’s not that good a title. Reading the title “Top 10 Tips for Painting with Oils”, I expect a bulleted list, possibly with pictures. Reading the title “How to Write an Article for a Client’s Blog”, I expect a medium- to long-form article, or possibly a video, telling me how to write articles for clients’ blogs. By contrast, “Introduction to Programming in Python” is a subpar title because I have absolutely no idea what kind of content I’m getting. That could just as easily be a podcast, an article, a video, or even a book.

Since you can convey all three important aspects of the content with a well-written title, this is what you should present to your client. Once they’ve approved it, you can move on to the next step: running a Clearscope report.

Run a Clearscope Report

Clearscope is perhaps the single most important tool for optimized content writing that there is out there. Given a keyword, it will search that and related terms and scan all the top results for those terms for the most commonly-used keywords and other phrases, then output these results into a report. In the Clearscope report, you’ll find specifics on what competitor articles they found, what rough level of complexity those results have (in terms of a elementary-college grading system), how long the results’ content is in terms of word count, and what keywords they found were most relevant to the one you started with.

But the most important thing that the Clearscope report will give you is a nifty editor, similar to that in a CMS like WordPress, with a list of keywords and phrases on the right-hand side.

You will be using this editor, along with your previous keyword research, to write your content. Clearscope, while useful, is not a substitute for thorough keyword research. Without keyword research, not only do you not know which report to run, you’ll likely miss out on all sorts of great keywords if you use it by itself. All Clearscope gives you is a list of phrases—not keywords, just phrases—that are common in organically competing content. That’s it. So, keep your keyword list on hand next to the Clearscope editor while you write.

Write Awesome Content

At this point, you’ve taken all the measures you need. You know what kind of content your audience probably expects given their query, you know what pages are already ranking for that keyword, and you know how to make up the difference. Now, it’s time to write what Moz calls 10x content: content that’s 10 times better than anything out there right now.

As you write, you’ll notice that Clearscope is politely highlighting relevant phrases you’re including from its list, as well as giving you an updating word count, readability level, and “content grade”. The content grade is based on how many of Clearscope’s relevant phrases you’re using. Its suggested minimum of B- is a bit low for my tastes—I tend to go for A- at a minimum, with most of my content at either A+ or A++— but you should never optimize your Clearscope content grade at the expense of your user experience. After all, your customers will never see the former, but most (if not all) of their knowledge of your company comes from the latter.

Publish It

Now that you have your 10x content with a nice high Clearscope content grade, you’re ready to publish! Before you do, though, make sure you’ve got three pieces of meta nicely optimized: title, description, and URL slug.

The meta title is shown in the browser tab and as the clickable link on the SERP (Search Engine Results Page, the “ten blue links”). Your CMS will probably auto-generate one for you (frequently in the form [h1 title][separator such as – or |][blog name], but that need not be the one you use. For an example, see Split’s homepage: the h1 tag contains the phrase “Split powers your product decisions with a unified solution for feature flagging and experimentation.” But the meta title tag is “Split: Continuous Delivery, Feature Flags & Experimentation”.

You only have about 50-65 characters to work with in your title tag before search engines will cut it off with an ellipsis, so you only have room for the page’s core keyword in your title, assuming you’re also including your brand name (which you should). Think of your title tag like a billboard, designed to attract your prospect’s attention in a concise, intriguing way.

The meta description is shown as the blurb of text below the link on the SERP. (At least, when search engines decide to put it there. Sometimes, in order to answer the user’s query better, they’ll take a section from the page’s body text and use that in place of the meta description.) This is useful as an additional, slightly longer pitch to your users. Some SEO tools will tell you to keep it under 160 characters, but a lot of the time search engines will index up to 320, and unlike the title tag, where an ellipsis can be annoying, an interesting meta description cut off with an ellipsis can increase suspense.

The URL slug is the part of the URL that signifies the specific page: https://www.example.com/articles/this-part-is-the-url-slug/. It should be descriptive: a good rule of thumb is that a human should be able to look at the URL and know what the page is about. Many CMSs will auto-generate a slug for you based on your h1, but like the meta title, you need not use this. For example, this incredibly interesting article has the h1 title “The Dark World of Affiliate Marketing, Black Hat SEO, and…Mattresses?” but the URL slug is /the-world-of-affiliate-marketing-black-hat-seo/.

You’ll want all three of these elements—title, meta description, and URL slug, in that order of importance—to contain keywords. But your primary goal with all three is still to provide the most relevant, interesting, and useful search experience to your prospects and customers. Your end goal is sales, not search engine rankings alone.

And Then You’re Done!

You’ve got excellent content containing keywords and phrases your organic competitors are ranking for, and all your meta info is optimized for both users and search engines. That’s it!