All posts by Jure

CC by 55Laney69 - https://flic.kr/p/gkNKC9

Why you shouldn’t underestimate the importance of introductions

Networking always seemed like a big waste of time to meet. Why go to all these events and talk to new people. Why can’t I just focus on building my product. People will recognise greatness when they see it. Won’t they?

It depends. Do they already know you? Have you met them before? If that’s not true, you’ve just made things harder for yourself.

Let me explain on Prevoz.org: every month, somebody wants to buy it. If they don’t want to outright buy it, they have a complicated business idea. They also don’t want to share it in writing. It’s always in personal meeting. The problem is – I don’t know them and they usually have no knowledge about this area of business. Which means that it’s a huge waste of time for both of us. I’ll have to explain to them why it won’t work or why I won’t sell you the site for pocket money. This is stressful and has negative impact on my other work.

What does that has to do with networking and introductions? Everything. It means that if you send me an email from your personal gmail address, I will most likely reject you. Many previous failures taught me that it’s not worth the time.

There are only two exceptions: you email me from a reputable business address (think agency or company that I heard of) or you’re introduced by someone I know. It’s a low barrier to entry, but most of prevoz.org business email I get, doesn’t pass it.

Extrapolating from my personal experience, I can see why professional networking is important. It’s not a silver bullet – just a foot in the door. But that should be enough. Professional community is small (even on global scale!). Getting that introduction from mutual acquittance shows that you did your research.

CC By Sherrie Thai - https://flic.kr/p/5xt7tt

How I sped up WordPress 4x on mobile

With new Chrome, we got even more developer tools. Newest version has a feature “Capture screenshots”. It will record your page load and display how it looks as it’s downloaded to your browser.

After watching Paul Irish comment on some of the large media sites, I started wondering – how is Val 202 doing? It’s getting a decent amount of traffic on mobile devices. It also has a large amount of traffic through Facebook and Twitter, meaning that they probably don’t have our assets cached.

First test – 3G, no-cache: 9.34 seconds until title is displayed!

slow-1Ok, that’s clearly bad. It also means that they potential readers will probably abandon page load and go watch kittens that load from a faster domain.

Looking through all the assets that our theme loads, I see a bunch of potential problems:

  • Plugins that we’re starting to deprecated, but they still load resources
  • External assets and iframes that we don’t even display on mobile
  • Disqus for comments, that we could hide
  • Images that are lower on site, and we could lazy load
  • We load all our assets from our domain, so we hit the limits of how many resources browser downloads in parallel

I try to disable as much of above functions, just to see if it’s worth of development time. Here’s my second measurement (3G, no-cache): 5.65 seconds until content appears.

slow-2

I got the page to load in about half the time. Better, but not good enough.

As I cut even more things, I try to disable TypeKit and with it, time to content falls dramatically. Aha!

Reading TypeKits’ documentation reveals that it waits 3 seconds by default, to ensure that fonts load and there is not flash of unstyled content. But on mobile, we could decide that we’re ok with the flash as long as we show our reader content as soon as possible.

Third measurement (3G, no-cache), with async TypeKit: 2.5 seconds until content appears

slow-3

Still not the best, but it’s a 4x faster than current version.

For now, I’ll try to load TypeKit in Async mode for devices that have smaller window width:

While this approach is not optimal, it gives us a quick win, while we work on streamlining the rest of the frontend code.

Conclusion

WordPress is great for quickly iterating and running content experiments. The problem is supporting this in the long run.

It’s also easy to forget elements of previous experiments in code – custom fonts, icons and whole scripts. It’s good to take a step back and reevaluate our code in terms of new usage patterns and best practices.

WordPress Analytics Engine

data-scheme

I think I’m obsessed with numbers. They give me a feeling of control. Page views, trends, visitor count and more. Not measuring things, makes me sad. If we have a historical data, we can check if our changes worked. Are certain topics more popular? Which stories are more popular on Twitter compared to Facebook? Infinite amount of questions.

I’d like to build a better analytics engine for us. I’ll explain my constraints, and how I’d approach it. Primary plan is that someone can say – “just use X”. If that fails, I can still build it.

Problem definition

We have multiple WordPress installations with overlapping authors. They create blog posts, that are shared to Facebook and Twitter. Each post can include multiple embeds, that they produce – Sound Cloud, YouTube and similar. For each blog, we can also lookup into Google Analytics API and get stats on sessions, page views and time on site.

There are two primary limitations of these external data sources. Firstly, we’re rate limited – so we can only query them about once a day – per post URL. Secondly, we mostly get aggregated data.

We would query these external API’s about once a day. The only limitation we have is that we get aggregate/sum data from them. Facebook only gives us total number of likes, so we need to make subtract previous value. This way we get number of likes in that day.

Potential

Having all the information in one place, it would allow us a couple of things:

  • Weekly reports for authors – sending them encouragements on how their stories did
  • Information for content editors, what got most attention that week
  • Identify old content that suddenly got interest
  • Get information on success of embedded content (Sound Cloud, YouTube)
  • Develop customised indicators – authors with most viewed YouTube videos

Potential Solution?

When researching this topic, there is a software stack that almost fits. It’s LogStash with Kibana. LogStash provides data storage and logging capabilities. Kibana support display of data in many different ways.

The other approach would be to just code it any web framework. But it seems like a huge duplication of work.

Technical Questions

Would ELK stack work? Can LogStash provide input filter that will automatically normalise data for me? It is the right technology stack at all?

Is there anything that solves this in a much better way?

Content Questions

Is it worth building this at all? Is it a good idea to attach numbers to (journalists) work? Did I miss any questions that would be worth exploring?

Would you use such a service?

CC Balazs Sprenc - https://flic.kr/p/7ref1f

Ljubljana Tech Community – We have a problem

Let’s be honest – our tech community is slowing down. We’re organizing less meetups than in previous years. Without them, we’re losing the culture of sharing. While everyone focused on entrepreneurship and startups, we took engineers and developers for granted. This means that we now have less senior developers available, than a few years ago. Good ones are not working for local companies anymore. So who trains the novice developers?

This will be a problem, for many different groups of people.

Developers need to talk to other developers

We’re not challenging each other with new approaches and ideas. Reading on the internet about some new tech, is not enough. You want to have a a discussion with a person that just implemented it. Building on experience of your peers, is the best way to kickstart the project.

Technical leads need success stories

Nobody wants to be the first to try something new. So seeing smaller success stories, makes it easier to start your own. You can also contribute to a small niche of consulting and training. If your company starts to invest into one technology, more people will join you. That way you’ll have access to extra talent, if you need it.

Entrepreneurs need their developers to be able to teach

Great tech companies brag about their solutions. Not the CEOs, but their developers. Every chance they have, they’ll talk about hard problems and how to solve them. In a world, where we keep producing CRUD applications, it’s hard to find novelty.

But that only happens if the company encourages them. First they have too see their CTO’s and lead developer give talks. Sponsor event and host them at their offices. Once you have good role models in place, it’s much easier for everyone. They have to encourage and give space to younger ones, so they can practice. It also means that they recognize that learning goes both ways.

This has an added side effect, that makes it easier to recruit new developers.

OK, enough problems – what are the solutions?

Easy way – send everyone to conferences abroad. There are many excellent conferences around Europe, any many of us are there. But it’s often the same people. The same people that already  give talks and organize events. It’s also likely that they’re not working for a local company. Distributed companies are not picky where their developers live.

It’s also rather expensive.

So that leaves us with the hard solution. I checked the stats of a few different meetup groups. Most of them seem to do 2 – 3 meetups per year. Looking at speakers, they come from a small group of developers.

That’s troubling, because it leads to burnout and lack of new ideas. There is only so much you can learn in a year.

To make this work, we need to inspect the building blocks of a good community. We already have shared interests in different technologies. We wouldn’t be visiting these events otherwise.

What we need to figure out

1. How do we get more people to organize events? Can we encourage small group of people to take care of certain domain. That way the pressure is not on the individual.

2. How do we find new IT companies. Slovenian IT sector is larger than the 5 startups we see everywhere. It’s good to see them paying it forward, but what about the others? If you look at all the companies that are hiring – why are they not present? Why don’t we see CTOs from marketing agencies talk and sponsor?

3. What kind of support do they need? It a problem to find a space, make announcements or something else? Can we build a network of individuals that can help out. That way we don’t need to negotiate about the space every single time.

4. What else? Is it something more simple – like just having a set schedule and following it?

When I wrote the description of local WebCamp, it was simple. We’re doing this event, because that’s the kind of community we want. I believe having active meetup scene, follows the same ideals.

But it’s an issue that is bigger than any individual. We need to recognize that it’s a problem and start doing something. Not just organizing events, but getting more allies on our side. Teach business and marketing professional the importance of tech community.

We need to make sure, that we’re building the community that we want.