Categories
Conferences

PerlCon Europe 2019

Last week I was in Riga for this year’s European PerlCon (the conference formerly known as YAPC::Europe). As has become traditional, here’s my report of the conference.

My conference began on Tuesday night at the pre-conference meet-up. Most people get into town on the night before the conference starts and the organisers always designate a local bar as a meeting place. This time, as the conference was being held in a hotel, the meeting place was a room in the hotel just outside the main conference room. It’s always good to meet up with friends who you might not have seen since the previous conference and I spent a pleasant hour or two, chatting to people before wandering back over the river to the hotel where I was staying before the conference started. As I walked back over the bridge, I could hear the dulcet tones of Rammstein playing a gig about 4km downstream.

The first day of the conference proper was slightly complicated by the need to check out of one hotel and into another. Effectively, it meant that I spent a lot of the day without a room – which was slightly annoying.

The first keynote was Sawyer X talking about The past, the present, and one possible future of Perl 5. From talking to other people afterwards, I think most of the audience was as impressed by his vision as I was. I particularly look forward to hearing more about his plans to engage more companies in the development of Perl. I think that is a great idea.

Following a coffee break, I saw Thomas Klausner talking about Deploying Perl Apps using Docker, Gitlab & Kubernetes. This is a particular area of interest to me currently and it was interesting to see his take on it. I followed that by watching Mohammad Anwar encouraging people to start contributing to CPAN.

After lunch, I took a brief break from the conference (I guess that’s a benefit to knowing that the videoing of the talks is in really capable hands!) I returned in time to see Kenichi Ishigaki describing Recent PAUSE Changes. Because the overall UI of the site has barely changed, I had failed to spot the wholesale changes that have been taking place behind the scenes. It was interesting to be brought up to date.

After the coffee break, I saw Curtis Poe’s talk on Testing Lies. The big takeaway from that seems to be to never trust anyone who claims that something is “always true”.

Then came the first set of lightning talks. As usual, it was a wide-ranging selection including me talking about my Apollo 11 Twitterbot. I particularly enjoyed Job’s amusing walk down memory lane.

After the conference ended for the day there was a new (as far as I know) experiment for a Perl conference – a cocktail party for people who had bought specific kinds of tickets. I had been invited and went along, only to be slightly surprised to find that the drinks selection didn’t include cocktails. I was further surprised to bump into someone who I used to work with back in 2004 and we spent most of the evening catching up.

The second day started with Liz Mattijsen’s keynote DeMythifying Perl 6. I was surprised when she stated that “Perl 6 has damaged Perl 5” was not a myth, but a fact and was totally blown away when she followed that up with a proposal to rename Perl 6. I’ve been saying for ten years that the only thing I don’t like about Perl 6 is its name and I’m really excited to see core Perl 6 developers finally agreeing with this. I’ll be following the developments here really closely.

I then watched Hauke Dämpfling’s WebPerl – Run Perl in the Browser! – which was certainly very clever, but I’m not sure how useful it is. Then I gave my first long talk of the conference – Monoliths, Balls of Mud and Silver Bullets. I think it went well. I certainly got some interesting questions after it.

I’m not really sure what happened after lunch. I think I went back to my room for a bit of lie down and the next thing I knew it was time for the second day of lightning talks. Before that, there were presentations by the two teams vying to organise next years conference (in either Amsterdam or Limassol) and then this year’s attendees got to vote to choose the winner (that’s what’s going on in the photo above). The winner (by only seven votes) was Amsterdam.

I was slightly embarrassed when Lee Johnson mentioned in his lightning talk that my amazing(!) SEO work for last year’s conference meant that Google still thinks all Perl conferences take place in Glasgow – I should probably work out how to fix that! Best of this set of lightning talks was Mark Keating’s adaptation of Dr. Seuss’s “The Sneetches”.

That evening, the attendees’ dinner took place. This was at the same beer hall that the same event took place at the last time the conference was in Riga. Much buffet was had and a lot of beer was drunk.

Day three started in a slightly more muted vein (it often does – as the attendees’ dinner is always on the second night). I missed the keynote and only made it in time for Mohammad Anwar’s second talk of the conference. This one was on how to Protect your Perl script from common security issues. I had to skip out before he got to the questions as I needed to set up in another room for my final talk of the conference – Measuring the Quality of your Perl Code. I was rather (pleasantly) surprised to see the room was completely full and people seemed to find it useful and interesting.

I took the afternoon easy again. I saw Robert Acock on Progressive Web Applications (something else, I really want to get to know about – and I have the feeling it’s not as complicated as my brain seems to want to make it) and Mallory on Designing and Coding for Low Vision.

Then it was time for the final set of lightning talks. It was great to see Thomas re-running his Acme::ReturnValues talk from 2008 (in celebration of the fact that this was the 20th European Perl Conference).

And then it was over. Andrew Shitov, the organiser, thanked all the helpers, speakers and sponsors. And then some of us went off on a cruise on the river.

Categories
Conferences

Professional Programmer is Professional

(The image above was the first result I got when searching Google Images for a CC-licensed image for “professional programmer”.)

Two weeks ago, I wrote about the SEO workshop I’m running on Tuesday morning just before The Perl Conference in Glasgow this August. Today, I’d like to give a few more details about the other workshop I’m running that day. After lunch, I’m running a workshop called “The Professional Programmer”. What’s that about?

I came into programming through what was a very traditional route. I did a degree in Computer Studies which I finished in 1988. And for the last thirty years I’ve been working as a programmer for a number of different companies from tiny start-ups to huge multi-nationals.

But more and more, I’m working with people who didn’t come through the same route. It’s very common that I’ll be working with people who don’t have a degree. And it’s rare that I’ll work with someone who’s been in the industry as long as I have (for I am an Old Man). I’m not saying for a second that those people aren’t just as capable of doing the job as I am. But I am saying that I know stuff that some of those people won’t have worked out yet.

This certainly isn’t going to be me telling you stuff that I learned on my degree. To be honest, I can’t think of much on my degree that I’ve used in my career. On my degree course, SQL was introduced as a cutting-edge technology (one lecturer even described it as a reporting tool that could be used by end-users!) We also did classes on COBOL and Assembler. No, there’s very little there that would be of much interest to people working in the modern software industry.

A few days ago, I started to sketch out some of the things I might want to talk about. I think the plan is going to be that we start with some of the technologies that sit alongside the programming that we all do every day and slowly move away from hard tech into the fluffier areas of the industry that we work in. Here are some of the topics I hope to cover.

Adjacent Technologies

Ok, we all have a programming language or two under our belts. But what else do we need to know?

How well do you know the operating systems that you work on? What, for example, is the most obscure Unix tool that you know? At what level do you understand the networking features that your code almost certainly makes use of? Can you debug network connectivity problems? To what level of detail do your really know the HTTP request-response cycle?

What data storage systems do you use? How well do you know SQL? Do you use No SQL systems as part of your technology stack? If not, could you? Do you cache things at the right level in your application? Should you be caching more things? Do you have a CDN? Do you know what a CDN is and what it does for you?

Are you an expert in the tools that you use every day? I don’t care if you prefer vi or emacs (or, I suppose, anything else), but are you an expert in using your editor? I’m happy to admit this is one area where I fall short. I bounce between many different editors and I’ve never really become an expert in any of them.

Are you the person in your team that people come to with git questions? Or do you just know half a dozen commands that seem to do approximately the right thing most of the time? Your source code control system is a vital part of your workflow. Get to know it well.

How well do you know your continuous integration environment? Do you know which buttons to press to get a release built? Or are you the person who is constantly tweaking and improving the Jenkins jobs that power the release process? And what underlies your release process? Are you building RPMs or some other type of package or do you build a new Docker container and deploy that in the cloud? How well do you know the cloud provider that you’re using? Are there new AWS features that could replace parts of your existing infrastructure? (The answer to that question is always yes.)

How good are your tests? What’s your unit test coverage? How many different types of automated testing does your system use? Do you know the difference between unit tests and integration tests? What tools are you using for automated testing? How well do you know how to use them? Is there something better out there?

Software Engineering & Architecture

What level are you involved in architectural decisions? How do you decide on a design for your application? Are you using largely procedural code or does your system make good use of classes? Is it possible for a system to be too object-oriented? How do you know when you’ve crossed that boundary?

How is your knowledge of design patterns? Do you know what a factory class is? Do you know why you would use one? Have you ever written one? Do you have an opinion on MVC designs? What is good and bad about the frameworks that you use? What would you like to do differently?

Are you maintaining a monolithic codebase from fifteen years ago? Do you have a plan to modernise your code? Have you implemented any microservices yet? How do you go about replacing small parts of a monolith with microservices? What are the advantages of a microservices architecture?

Is your team using an agile software development methodology? Is it Scrum, Kanban, XP or do you just cherry-pick bits from all of them? Is your team really agile or do you just pay lip service to agile techniques? Are you self-managing? How accurate are your estimates? Can you improve that? How well do you know the Agile Manifesto? To what extent do you agree with it?

The Business

What does your company do? What does success look like? How does what you do contribute to that success? How well do you understand the business? Do you have suggestions for improving the business outside of your team?

Do you understand the environment that the company operates in? What do you know about the economic pressures on the company? Is the company publicly or privately owned? Do you have shares in the company? Do you know what they are worth?

Personal Development

What level are you currently at? Do you know what you need to do in order to progress in the company? Do you have a plan to achieve that? Do you have a mentor inside the company who can help you come up with that plan? Will the company give you budget for training and personal development?

Do you need to communicate with business people inside the company? How good is your written and spoken English? Do you know how to use apostrophes? Do you need to give presentations to people in the company? How comfortable are you with public speaking? Can you get better at that?

How well-known are you outside of the company? Can you blog about your technical expertise? (You probably need to be careful if you’re blogging about stuff you do at work.) Do you speak at conferences? Should you start speaking at conferences?

 

As you can see, when I start writing this stuff down, it can easily all get a bit “stream of consciousness”. Hopefully in the five weeks between now and the workshop, I can tie it down and impose a little more structure on it.

But not too much structure. I’d like to keep this pretty loose. I want the workshop to be very much a two-way discussion.

I hope that sounds interesting to some of you. The workshop will be in the afternoon of Tuesday 14th August. To attend any of the workshops, you’ll need to buy an extra ticket. Tickets for either of my half-day workshops are £75.

I hope to see some of you there. Please let me know in the comments if you have any questions about this workshop.