Campaign Monitor – 8 Weeks In

I can’t quite decide whether to say “I cannot believe it’s only been 8 weeks” or “I cannot believe it’s been 8 weeks already”. Both interpretations have merit.

The change was unbelievably effortless. One week in I felt at home, two weeks in I felt like I could do something to add value, and three weeks in I was throwing all my crazy first ideas into the ring without regard for what people might think. It is liberating in the most wonderful way.

Despite diving in the deep end of the Web Technology pool, learning all the required AngularJS, ASP.NET, and how-to-order-my-coffee-online has felt somewhat effortless as well. I should have gone head-first into Web 2.0 long ago; the first four weeks at CM got me further along than two years of miscellaneous dabbling in my own time.

And the first four weeks flew by; I was holding off for the longest time fearful of the draining commute to Sutherland, but I think I probably should have made the call sooner. Alas, that is the nature of Unknown Quantities; even things that look great on paper are a little scary when they require getting out of one’s comfort zone. Had I known how much I was going to enjoy the work itself (to the point of dabbling and studying quite significantly in my own time as well), I would have given it a second thought.

And then, we moved to the CBD and things got better still.

2015-04-09 - In The Clouds

Cozy offices turned into a spectacular office. It is easy to get a bit blase about the view 38 floors above Sydney. The first week I’d take a few minutes to admire the view before starting work, but now that tends to come later in the day. At some point my mind will briefly not be stuck with a problem and I’ll catch the view, and then it catches me.

The view over Hyde Park and the Harbour are strangely disorienting. The perspective does strange things to my sense of distance. I could swear Darlinghurst is but a brief stroll away from Hyde Park by the look of it from up here. And everything looks like a game of The Sims. It feels like I somehow should be able to control the weather. Maybe there’s a switch I haven’t found yet. I should ask the OPS team.

The days go by in a pleasant productive rush. After some experimenting, I’m finding an early commute in and out most comfortable. I get up at 6:50am, have a quick shower, get dressed, 7:05am when I feed the cats, 7:15am I am stepping onto a train to work at the station.

That may sound like a rush, but I genuinely have little to do before heading out. Breakfast and lunch are both catered, so I have really nothing to prepare for.

I walk into the office at about 8:15am, boot up the laptop and have a quick look around the HipChat rooms for anything interesting, and go through any overnight emails. By about 8:20am the internal coffee ordering system comes on, and I punch in my large cappuccino.

Breakfast is 8:30am, featuring bacon and eggs, and whatever else our amazing chefs throw into the mix. This week I have been unable to resist the pancakes with poached plums. Between 8:40am – 9:10am I get back to whatever problem I left behind the previous evening.

Why 9:10? … well… that’s when we have our daily 10 minute stand-up with the team. A quick run around of what we did the previous day and what we will work on today. A chance to keep the team in the loop and to ask for help or clarifications where needed with broad input.

Then 9:20 through 12:30 rushes by faster than I can believe. A mix of learning and programming, leaning more and more towards the latter.

It is easy to tell when 12:30 comes around because by 12:35 the floor is almost empty. Many rush to try and beat the lunch queue.

Catered lunch is amazing. More amazing than I could have realised. It obviously saves some money (more or less depending on a propensity to buy lunches otherwise). But more than that, my lunch has never before been this varied. I’m probably eating healthier even if it is a tad more than I perhaps should… more gym for me.

And that is not uncommon either; there are various groups of employees that go running together or see a trainer before lunch, etc. On the flip-side, there is a page on the Wiki that chronicles the weight-gain that people experienced upon first starting at Campaign Monitor. The chefs are hard to resist.

Then, after lunch, more programming till about 16:45 which is my cut-off to make it on the last not-completely-packed train back home. Soon I will start experimenting with taking a gym class in the city before going home so that hopefully I can catch a train after the peak eases off again on those days. Luckily there is a lot of flexibility in the hours, as long as I make the 8-a-day excluding lunch, and I am available for all the important meetings.

Somewhere around 14:00 there is another round of coffee orders, and most days there is some kind of pastry or dessert on offer as well. Today was an apple crumble that did full honour to its name; I forgot my cutlery and it resisted my attempts to eat it most valiantly.

2015-04-09 - Hyde Park Below

Four more weeks and I’ll hit my 3-month review point.
But I am sure the 6-month mark will arrive in just another blink or two as well.

Everything about what the job demands and gives back just fits together perfectly to keep me energized and motivated, and feeling on top of the world in all the senses possible.

Day 167 – Identity

I am very ambivalent about places like Google+ and Facebook. I like the idea of a platform that makes it easy to share and connect with friends, but… there always are problems.

It relates to why European teens are allegedly abandoning Facebook in droves.

It relates to unease giving corporate entities access to personal information.

It relates to frequent annoyances and misguided features.

Trusting Business

To me personally, the corporate trust issue is less of a reason. Not because I actually trust Google and Facebook and Microsoft, but because the reality is that we all are already trusting a lot of large corporations anyway.

Do you have an Android phone? Well, then you are running Google’s OS and they are essentially in full control of your phone already, and everything you do with or through it. If Google decided to go evil, they’d have all our personal information and bank details.

Do you have an Apple phone? Same story, different company.

Additionally, we routinely trust the manufacturer of our phone hardware, the manufacturer of the major chips inside the phone, the network operator you are subscribing with, the company that installed the mobile phone towers in your area, the manufacturers of the hardware of these phone towers, and so on.

If any one of these links in the chain, wanted to maliciously intercept all your data, they can do so if they want it badly enough. And there is no way for us to tell whether they are or aren’t doing so.

My trust comes from any misdeeds of this nature sooner or later coming to light.

Annoyances and Mis-features

Every so often it seems the big social platforms betray their users in the most logical of ways. We’re playing on their services for free, and they will always keep looking for ways to increase the value of our interactions so that they can make money somewhere.

Facebook has a habit of making changes to the privacy settings. To make our content less private. Their revenue model drives from having people make connections and share with each other. And by that sharing show things about themselves Facebook can monetize. They do not want you to hide your information and keep private; they want you as public as possible.

Google is mostly motivated by search. Their moves try to increase the value of search and credibility. They don’t care as much about how we relate with each other and what we do exactly (for now), but they do want to know what information is reputable. Google wants to create “PageRank for People” so they can tell who knows what about what, and who is just full of shit.

Invariably these moves lead to outrage, but that always quiets down again in the end, because when it comes down to it we all just want to share with our friends and family, and there really are few other places to go with comparable features or commitment from our existing contacts.

The Social Circle Problem

What has been driving European teenagers off Facebook is kinda interesting. Teenagers like Facebook. Late to the party, parents start showing up on Facebook. Teenagers accept friend requests from parents (because they feel they have to?). Teenagers feel this invades their private friend-space. Teenagers flee.

The same problem exists with mixing other social circles… work and friends… friends and family… family and work… close friends… special interests.

What’s interesting is that the tool to resolve this problem comes included with Facebook: Lists. But they just aren’t as easy to use as they could be. I’m not sure whether this is a purposeful strategy, or a failure to see why this is an important aspect of a social platform into the future.

We all move in a multitude of circles. We all are many pieces of different identity that we do not necessarily want to mix with all our circles. That gaming habit might elicit ridicule at work. That party you’re throwing might not be for all your friends to know about. Those family photos might not be for anyone but family for a variety of reasons.

I think there’s room for a social network that gets privacy and dealing with our many interwoven identities right, but in the mean time…

My Solution

Setting up and properly using Facebook lists can make what already exists a lot more bearable.

My current strategy:

  1. Add all missing family members to the “Family” smart-list
  2. Add all co-workers to the company-named smart-list
  3. For anyone not on lists 1 or 2
    Add everyone you don’t really know to the “Restricted” list
    (you move them on to other lists later when you know them better)
  4. For anyone not on lists 1, 2 or 3
    Add anyone that you only want to see important posts from to “Acquaintances
  5. For anyone not on lists 2, 3 or 4
    Add anyone you are close to, to “Close Friends” so you see all their posts
  6. Create any other special-topic lists with appropriate names added to them

The people on the “Restricted” list will only see material that is already published publicly anyway, plus anything they are explicitly mentioned in. This is a good place to put new people who you’re hesitant about until you decide where they really belong.

Facebook considers everybody else a “Friend” and can see what you normally post and comment on your feed.

For those marked “Acquaintances” you will only see the most important posts so your timeline does not get cluttered up by people you only very vaguely know. Like that person you spoke to that one single time at that party.

For those marked “Close Friends” you will see everything they post. So keep this list to your real closest friends. Anyone not marked explicitly as “Acquaintances” or “Close Friends” will presumably sit on a level somewhat in between the two.

And when posting something new, by default the publishing setting is “visible to Friends”, but with these lists properly populated it becomes very easy to publish something only to “Family”, or “Close Friends”, or “Work” as appropriate for the occasion. For bonus points you can then go through the privacy settings and adjust these so that your address is only for family, and your mobile number only for close friends.

And those fleeing teenagers? They could easily create a “No-Adults-Allowed” list and then make this their default publishing target. As long as they post enough mundane stories to “Friends”, their parents would never be the wiser they aren’t seeing the good stuff.

Day 112 – Developing My Project

This Post

This post will get progressively more technical. Apologies if this does not appeal to you. We’ll be back to my regular everyday topics shortly.

Just let your eyes glaze over slightly and let the words fall through your brain.

It’ll almost be as if I’m making sense.

The Project

In the spirit of not biting off more than I can chew, I’ll start with something relatively modest. Something that undoubtedly already has many solutions. Something that is a stepping stone to a bigger problem I’d like to solve.

Baby steps though…

I have a very specific workflow for dealing with my RSS feeds:

  1. In the mornings, and sometimes once or twice throughout the day, I’ll pop into Feedly to skim through post headlines
  2. For every headline I make a snap decision whether it’s something I’d like to read more about (Star), or not; this usually triages my feeds from 200-300 articles for the day down to maybe 10-15 of real interest
  3. At some later point I get back to them, and I read the articles
  4. At long irregular intervals I go through the starred posts and un-star any that have no lasting value, leaving stars on anything I want to keep for reference

And that’s where it usually ends.

But I’d really like the third step to immediately result in a classification of “Not worth keeping“, or “Worth keeping under category X“. I want my workflow to keep up a well-organised library of links to refer back to later so I can actually find stuff.

So, a workable project to me seems to take RSS and my intended workflow and mash those together into a minimalist web application.

The Iterations

I’m going to have to learn many aspects of web development for a somewhat polished result, but I don’t want to overwhelm myself with too many concerns simultaneously. So, I think I’m going to have to do several versions of this project.

  1. The prototype with just the bare-bones workflow and lots of ugly hard-coded crap to get my head around MVC and Knockout.js
  2. The maintainable version where I tidy up the internals and introduce Dependency Injection (not to be confused with an injection dependency which falls outside the scope of technology) and unit testing/mocking
  3. The pretty version where I apply some CSS3 and JavaScript transitions to make it all look better within the confines of my design sense 😉
  4. The secure version where I introduce some form of account management / login, and analyse the code for typical attack vectors (session hijacking, insufficiently secured requests, etc.)

I am sure there will be another couple of important versions past this that I’m forgetting about now. But that seems like a manageable separation of concerns. I fully expect to throw lots away between these iterations.

The Tools

I’m a .NET developer, so this will be very .NET skewed.

At the moment I’m thinking of using the following tools:

I wonder which of those will prove to be bad ideas in retrospect? Luckily, with at least 4 iterations ahead of me, I’ll have at least 3 opportunities to drastically change my mind 😉

Oh, and I should probably have mentioned GitHub, where I’ll be hosting my attempts. I may even have a look at the issue tracking built in to GitHub to see if it suffices for the scope of this project. Otherwise I might have to set up my cheapie 10-user Jira license locally somewhere.

This is all both daunting and exciting at the same time.

I suspect the first iteration will take the longest because there will be the most reading material associated with getting the first attempt off the ground. I’ll try to blog about that as well along the way. I’ll try to make it a separate stream to the 365-challenge, lest I bore my non-tech audience to tears.