2021 All Wrapped Up

Well, here we are again. 2021 is almost over, and as usual, I have no idea where it went. I know I’ve worked hard and achieved a lot, but time seems to go very fast lately.

I read a lot of books

First up, books! I got through a fair number of books in 2021. Here’s the list, along with why you should read them too.

  • The Timeless Way of Building was arguably one of my favourite books this year. It was one of those books that managed to take my gut feeling about several “house-y things” and tell me why I felt the way I did. This book is for you, even if you’re not particularly interested in architecture. It might ignite a passion in you, as it did me, and give you a whole new way of viewing your house and home.
  • Predictably Irrational is the perfect book if you’re looking for an insight into your brain. You might not like what you find out, however. It’s changed how I view my behaviours, and I’d like to think it made me more self-aware. Then again.
  • A Mind of its Own is a fascinating read about our self-delusions. It’s not entirely comfortable, especially when you realise you’ve been kidding yourself all these years (and probably will continue to do so).
  • Yes please was a delightful read. I often think it’s easy to look at famous people and miss all the hard work that went in before seeing them on stage/tv. This book is brutally honest and open; it made me laugh and cry in the same sitting.
  • Woman & Power is for you if you’ve ever wondered (and frankly you should) about the roots of misogyny; this book is a must-read. It’s enlightening and depressing all in one. Read this book, then ask yourself how much longer must we wait?
  • Show Your Work is about learning to step out from the shadows. Also, since we’re here, please remember that good work does not speak for itself. You’ve been lied to. This book is an excellent read for everyone who wants to show their work professionally or personally.
  • Everybody Writes was such a good book. We’re not born good at writing, but we can learn and improve. So read this book if you do any writing and embrace TUFD (The Ugly First Draft)!
  • Thinking in Systems: A Primer was a book that I didn’t have any expectations of. I’ve found it quite hard going at times, but it will completely change and re-frame how you look at the world. I have a much better understanding of why things happen now and perhaps the smallest of grasps on the systems around me and their impact. This book will reframe your view of the world and add a lot of understanding to the systems you interact with.
  • Easy Peasy Puppy Squeezy is my current read. Of course, this means that soon we will become puppy parents. This book is doing an excellent job of training me to look after the family addition. I’m pretty sure it’s going to eat my shoes, books, post and anything else I accidentally leave at its height. Of course, it’s all going to be my fault when it does because they are “legal chew toys”!

I moved house

A lot has changed since we bought our old house back in 2014. We have both changed jobs and moved to remote working in part due to the type of job and in part due to the pandemic. We embarked on the journey of moving house in September 2020, had an offer accepted on our old house in November 2020 and moved in our new house in March 2021. It was four months of packing, stress, anxiety and then happiness. I don’t intend to repeat it any time soon, but I have no regrets about doing it. If you also moved house in the pandemic, remote high-five coming your way! One day I’ll manage to finish unpacking, today is not that day, tomorrow doesn’t look good either.

I changed jobs

2021 was a year of change! After almost 18 months at JetBrains, I accepted a role at MongoDB as a Keynote Storyteller. I’ve been there three weeks now, and it’s been a whirlwind already! I spent my first week in New York, which was awesome because I met my new team members in person, something that isn’t a given with remote working. Covid-19 brand Omicron has since ramped up, so I’m very grateful to be home now with good memories and lots to do!

Of course, this also meant that I got on a long haul flight for the first time in over two years. That part was stressful; the outbound and inbound requirements and resulting paperwork for Covid-19 took time and effort, probably because I checked it at least 8 times both ways.

Related to this, I also managed to move beyond the free tier for my Amazon S3 bucket of blog post images. This means that there was a lot of traffic to my site. Four thousand of you in fact came to check out my blog post for my last day at JetBrains. Can I get a hug, please?

I migrated my website

I’ve been procrastinating about this since February 2020. My site was hosted on SquareSpace and I was quite convinced that I didn’t know enough front-end web development to move it to WordPress, despite also recognising that I wanted it on WordPress because it’s a lot more configurable and cheaper. I was also struggling with my blogs as I tend to write them in markdown in IntelliJ IDEA and SquareSpace is not great at supporting markdown. So this festive holiday I decided to just bite the bullet and get on with it. After 2 days and only one exceptionally large gin when I misconfigured something and lost a bunch of stuff (no I didn’t have a backup and yes I should have had a backup) – welcome to my new WordPress site! I still need to untangle my blog post categories and tags, perhaps I’ll do that now. Also, it’s amazing the lengths I will go to to avoid writing my new talk. 

I’m co-authoring two books

I can finally announce that I’m working on a book with Trisha Gee called Getting To Know IntelliJ IDEA! I’m going to put this blog post down in a bit and work on it some more. It’s an absolute pleasure to work alongside Trisha and continue to advocate for users with the product. I still love working with IntelliJ IDEA even though I no longer work at JetBrains; there are not many products I can say that about!

But wait, there’s more! I can also share because it’s now public that I’m working with Daniel Terhorst-North on his book Software Faster. Daniel has a wonderful way of looking at life and the challenges throughout it. I’m honoured to be a part of this project and learn from Daniel. The book list above includes recommendations from Daniel too.

Summary

In summary, it’s been a year of change and growth. It’s been jam-packed, which is how I like it. As I look to 2022, I’m excited about contributing to MongoDB World 2022, book prospects, and continuing to share what I hope will be great content with the community. In addition, I’m building out a new talk that I’m excited about! I should probably apologise now for the shameless use of David Bowie lyrics. Right, time to chill a bottle of bubbly for the New Year!

It’s My Last Day at JetBrains

I’m leaving my role as a Java Developer Advocate at JetBrains today, Friday 3rd December 2021. I start my next adventure soon, but before I do, I want to recognise those I’ve worked with as well as my achievements!

My Team

First and most importantly, my team. Trisha Gee leads the team and is my sponsor, mentor and friend. I have learned an incredible amount from her, including being kinder to myself and how to prioritise my efforts. Trisha also steered me towards public speaking and has been my biggest cheerleader in that department. Working alongside Trisha has been an incredible opportunity and privilege that I’ll cherish forever.

I can remember being incredibly excited when I first met Mala Gupta. I was totally in awe of her, and I still am. Mala embraced what I brought to the table; the skills and the fears. Mala challenged me on several occasions in the kindest way possible. I’m forever thankful to her for that. It’s because of what Mala has taught me and the feedback she’s given me that I push myself even further out of my comfort zone, repeatedly!

Dalia Abo Sheasha helped me to recognise that it wasn’t just me who struggled with code at times – everyone does. She also taught me how to walk away and come back to something troubling me, something I have often struggled with. Dalia always treated me as her equal on the Java front, despite my lack of real-world experience. She always let me find my own way when we were solving a problem and patiently listened to all my thoughts. Dalia is the reason I’m more confident writing code than I’ve ever been.

Community

The Java community have been incredibly helpful and supportive throughout my time at JetBrains. If you’ve read any of my blogs, watched any of my videos or tuned in to a live stream – thank you!

To those of you who collaborated with me on projects, are lurking in my Twitter inbox, sent me some messages of support and encouragement, gave me a platform, supported me through a new process, offered me opportunities, chatted with me in any number of Slack organisations(!), or connected me with even more amazing people – thank you!

Achievements

I’ve done a lot at JetBrains; here’s a whirlwind tour! Of course, I can’t list everything, but I’ve hand-picked my favourite highlights from my time at JetBrains.

  • Straight after I started in August-September I wrote ten blogs for the JetBrains Technology day for Java.

JetBrains Technology Day for Java

foojay Multiple Carets Blog

  • December is not only Christmas, but I also crafted this 3 Ways to Refactor Your Code in IntelliJ IDEA, one of my favourite blogs. December also was home to this screencast on the New Project Wizard in IntelliJ IDEA – my top-performing video!
  • Phew, here comes January! I stepped back from the public content creation and focussed on creating content for the IntelliJ Guide. I also started drafting my new talk Writing Code is Easy, Being a Great Developer is Hard.
  • In February, we held our IntelliJ IDEA Conference to celebrate IntelliJ IDEA turning 20!

IntelliJ IDEA Guide

JLove Conference

  • July was home to was more talk preparation and conference efforts, including being part of the program committee for Devoxx UK.
  • As I look at August I’m reminded that for the past year I’ve produced the vast majority of the tip tweets you see on the IntelliJ IDEA Twitter handle – that’s me!
  • In September, I hosted one of our Coffee Club episodes – Staying Ahead of the Curve and I started crafting what has become Helen’s Take On videos.
  • I’m not sure what happened in October, but mostly it was more video recording and conferences!
  • I spoke at Devoxx UK in early November.

Devoxx UK Conference

And since then, I’ve been wrapping up my time at JetBrains, culminating in the blog post that you’re now reading!

Summary

I’m very fond of the 16 months I spent at JetBrains, and I’m honoured to have worked with some of the smartest people I know. Beyond my immediate team, I got to work in the broader team full of talented developer advocates who never hesitated to help me or answer my endless questions.

To name check but a few… Marco – thank you for all the Spring and Spring Boot help, I learned so much from you. Paul – thank you for listening to me as I brought the IntelliJ IDEA Guide to life, I could not have done it without you (and I’m sorry for beating on Gatsby so much). Maarten for bailing me out of my Git holes on more than one occasion and generally being an all round sane voice! Rachel for teaching me some fundamentals that had totally passed me by and also for being a lovely friendly person to chat to right from the start. Nafiul for teaching me more about audio than I thought there was to know and demoing it. Shengyou for helping me to understand our broader audiences and for working so tirelessly on translations. Khalid for helping me on my website and co-authoring a blog with me. Matt for being my buddy in the UK when a rant was required about something country-specific! Yann for helping me to understand aspects of the plugin ecosystem. And finally, Hadi, firstly because he’ll be upset if I don’t mention him, but more importantly, for being super supportive at all times. I haven’t name-checked everyone (sorry), but in summary, you’re all awesome and I’ve loved working with you!

It’s been a really enjoyable time, and as I move on to my next adventure, I have great memories of this role and for all those I interacted with directly and indirectly.

Three Ingredients for Great Content

Creating content can be a daunting prospect. It might be a blog post, a video, a talk, a presentation or something like a Twitter thread. However, I’ve found that considering just three things can help to crystallise your ideas and help make your content amazing.

  • Your Experience 🎓

  • Your Audience 👥

  • Your Goal 🥅

Let me explain.

Photo by Artem Maltsev on Unsplash

Photo by Artem Maltsev on Unsplash


Your Experience 🎓

Often people are reluctant to create content, citing something like it’s all been done before. No, it hasn’t; no one has created the content you want to create with your experience, knowledge, and approach. Besides, even if they have, it needs saying again, because no one was listening. Your experience is unique. No one else has it, and that is why your content needs to be created.

The other statement that I hear a lot is I don’t know enough about it to create content on it. It’s as though we get to a certain point in our learning and then conveniently forget that we were all beginners at some point. We then extrapolate this and decide that creating content with our limited knowledge isn’t worthwhile because everyone knows more than us. How crazy is that? Everyone is on a journey of learning and exploration; that’s life.

So it hasn’t all been done before, and content of all experience levels is helpful and valuable. When you create content, think about your experience (not your lack of). Here are some questions you can consider for your experience:

  • What resources did you use when you learned the thing? Sharing resources you found useful will help others.
  • What did you struggle with? Sharing your struggles is very helpful as many other learners will also struggle with the same thing you did.
  • What was unique about your experience? We all have different learning experiences. Sharing your specific hints and tips is really useful for other learners.

Your Audience 👥

Your audience are the people that will benefit from consuming the content that you’re going to create. It’s especially important to consider them if they are a group of people who are paying for your content (such as a conference). Consider their needs and requirements, but not to the detriment of your skills and experience. What I mean by that is don’t try and create content on something you’re not knowledgeable or comfortable with just because that’s what the audience wants. That’s not your audience! In addition, if you create content for an audience that is too far from your knowledge and experience, you risk not being authentic, which will hinder you on your content creation journey.

Remember that your audience are just like you. They have learning goals and aspirations, and they want to learn too. That’s why they are consuming your content. So here are some questions you can consider for your audience:

  • What are the learning goals and experiences of your audience?
  • What will help the audience to achieve their goals with your content?
  • What can you share with the audience by way of signposts for additional learning?

Your Goal 🥅

The goal for your content is arguably the most simple of the three parts of my content framework, but it’s also the one that you probably will have to remind yourself of the most. What is the goal of the content you want to create? Here are some questions to ask yourself:

  • What do you want your audience to take away from consuming your content?
  • What kind of platform is most helpful for your content goal? A blog post, a video, a talk, a Twitter thread?
  • Is this content part of a bigger story you want to tell over time, and thus you have many smaller goals? If so, how will you represent that through content signposts?

So, Why Not You?

Each time you create content, consider your experience, the goals of your audience, and the goal of your content. Go ahead and create awesome content! Here are some resources for content creation that I’ve enjoyed and learned from:

How can you stay ahead of the curve as a developer?

Some days I feel like I’m sprinting down the tracks being chased by a high speed freight train that is labelled something like “changes in technology”. I can’t stop and change direction, and I have no choice but to eat on the run. Other days I’m staring at some shiny gem of technology in front of my face, and it’s glinting with iridescent beauty in the light. On those days, nothing else matters, not even the oncoming freight train. I want that shiny thing.

So how do we juggle these seemingly opposing needs?

Grabbing the shiny thing

We’ve all been there, staring at the beautiful gem dangling in front of our faces, drawing us in with its whispers of encouragement and beauty as well as its promises of how it will solve all of our problems. We just want to reach out, grab it, and study it. Nothing else matters. Of course, to do that, we have to make the space and time to learn about it. If we choose to do this, we are (at least to some people) staying ahead of the curve. To other people we are wasting our time and resources. As with anything in our industry, there is a compromise to be had with the ever useful saying of it depends. Let’s dig a little deeper.


Image by Colin Behrens from Pixabay

Image by Colin Behrens from Pixabay

Technology moves fast, we all know that, so how do we temper ourselves when it comes to the next big shiny thing, and, how do we stay ahead of the curve? Do we even need to temper ourselves or stay ahead of the curve? And whose curve is it anyway? It’s interesting that grabbing the next shiny thing has a negative connotation, and staying ahead of the curve has a positive one. I think that they’re tightly coupled; grabbing the shiny thing is often the precursor to staying ahead of the curve. Of course, if the shiny thing turns out to be ours, or the industry’s, kryptonite, you need to be able to drop it as fast as you grabbed it.

Being able to pivot our focus of intrigue quickly and efficiently is definitely a superpower.

Grabbing the shiny thing and subsequently staying ahead of the curve with our knowledge of it both allude to knowing more about that thing than most people. That can bring advantages to our career in a number of ways.

Of course, if we grab all the shiny things, we may find that we don’t know much about anything and are actively behind the curve, but let’s talk about that curve in more detail.

What does it mean to be ahead of the curve?

An excellent question and one I had to look up after drawing several bell curves on my notebook and coming up blank. All it really means is doing something faster than other people. Well, gee, that’s nice and broad!

Do you need to stay ahead of the curve?

Well, it depends. Many successful careers have been formed without grabbing any shiny thing or being ahead of any curve. We don’t need to know the latest and greatest technology to succeed, we can carve out a very successful role for ourselves specialising in technology that has been and gone. If that’s your happy place, you go for it!

However, many of us like shiny things, so I’m going to concentrate on how you can stay ahead of the curve in development specifically.

Whose curve is it anyway?

Technically it’s ours. It’s our learning journey as we’ve identified it. It’s the notion that if we’re ahead of the curve, we’re in the top x percentage of people that know about the thing. It’s where many of us aspire to be for a thing because:

  • we’re scared of being left behind
  • we’re scared of not knowing something
  • we’re scared of being the least informed person in the room

Our need to stay ahead of the curve is, at least in part, driven by fears. However, there are other drivers that apply a different force. Sometimes we aspire to be ahead of the curve in a thing because:

  • we want to earn more money
  • we want to retire early from the rat race
  • we want to be deemed successful by some metric
  • we get our kicks from the latest technology and enjoy learning it – “oooh look, shiny!”

These are all valid fears and valid motivators. There are many more you may have as well.

How do you know which shiny thing to pick?

We don’t. Well, we probably have an inkling, it’s potentially the one that will solve our problems. However, we cannot possibly examine them all and thus stay ahead of the curve in all our interactions and knowledge. That’s just crazy talk. So we need to pick our shiny thing wisely, especially in technology. Choose where we want to be ahead of the majority and focus on that with laser accuracy. We will need to focus our firepower, but we can always pivot direction as the winds change and the shiny thing we were ahead on falls out of technology favor.


crab-new-thing.png

Then we have a choice, stick with the shiny thing we chose, or jump to the next shiny thing we want to be ahead of the curve on. Which brings me on to my next point…

How do you stay ahead of the curve?

The clichè answer is, of course, with great difficulty. However, let’s break it down because there are some very real and tangible things we can do. These are the ones that work for me, your list may be longer or shorter.

We can often fit these around our existing schedule. We can:

  • Read blog posts
  • Watch videos
  • Listen to talks

All of these things are passive. Yes they take time but they’re passive. If we give them our time (instead of feeding our smart-phone addiction, maybe that’s just me), we pick up quite a few nuggets of useful information that will keep us ahead of the oncoming freight train. However, there’s more.

There are some more active tasks that we can do that will require more time from you, but arguably bring more tangible reward in terms of our understanding of the thing. We can:

  • Play with the thing
  • Create content
  • blog posts
  • videos
  • talks

All of these things are active. They require us to take the knowledge that we’ve learned and apply it to something in the real world. Playing with the thing is the first step. Questions such as:

  • What problems does it solve?
  • Whose life does it make easier (assuming it does)?
  • Where could it be applied in our world?
  • What are the competitors?
  • Where can it not be applied/does not work?

… will help you to poke it with a stick and come up with some thoughts about the thing you’ve been learning about. Creating content about the thing is, at least in my experience, one of the best ways to get ahead of the curve on that thing. It helps me to cement the knowledge in my mind, and it has the added bonus that it might help someone else in the community who is learning about the thing. For example, they might not want to be ahead of the curve on the thing, but they do want to learn about it and use it in their day to day.

How do you find the time to stay ahead of the curve?

Now, like anything that is vying for our time, it needs careful prioritisation and resources. We cannot expect to stay ahead of the curve in any of the things if we don’t make time for learning and give ourselves the opportunity. Of course all our time is very squeezed, but we can look for learning opportunities in both our professional and personal life.

Many employees are happy for us to spend a portion of our professional time learning about some new shiny thing, especially if it might benefit them longer term. This is a privilege, and we don’t all have it, but many companies are waking up to the fact that we need time to learn in a number of areas and failure to allow them time to do this will be detrimental to their workforce and potentially the company’s products.

We can also use our personal time for this endeavour. Should you? Only you can answer that one. If it personally benefits us and our career, perhaps that’s a strong use case. It’s a path well trodden that can bring substantial rewards.

Ultimately it’s up to us, our choice of shiny thing, and our schedule. We have got this!

Delivering Your First Live Talk Remotely

This blog post focuses on delivering live talks remotely, but if you are delivering a pre-recorded talk, go check out Carly’s blog post on exactly this! The first few tips here apply for giving talks remotely or pre-recorded, but Carly has written up some great guidance for those of you who need to submit pre-recorded content.

Webcam

Image by Aksa2011 from Pixabay

Stand Up

Standing up is a powerful way to deliver your presentation. It’s really hard presenting remotely, as I covered in this blog post. However, standing up is one way of adding energy to a remote presentation. It’s also a lot less scary to stand up because you can shift your weight onto the front of your feet and lean into the audience remotely. This will calm you down, no one wants to be on the back foot when they’re presenting. In addition, your legs can’t shake if you’re standing on them!

You don’t need a standing desk for this, although if you have the means and the space they’re very helpful! You can achieve the same effect with some chunky programming books to raise your monitor and webcam up to your eye level when you’re standing up.

If you are using books, make sure that it’s stable; the last thing you want is a mid-talk-topple! If you are using an electronic standing desk, or a desk converter, that has a lock function – use it. It’s very easy to accidentally knock buttons and trigger a desk movement mid-talk. Trust me, it happens!

Add Lighting

Lighting makes a big difference to your presentation. You don’t need professional studio lighting either, but it’s important to work with what you have.

Lightbulbs

Image by Pexels from Pixabay

The best advice I can give you here is to experiment. There’s a lot to work with including the room lighting, windows, your phone torch, the old anglepoise lamp in the garage, your bedside table lamp and more. A lot of the time you can briefly improve the lighting for your desk when you give, or record, your presentation.

If you do want to purchase some additional lights for your desk then you could consider something like this or a ring light. I use the former as I wear glasses and find that ring lights cause too many reflections. However, if you want to purchase something to brighten up your environment then go for it. It if helps Carly has been playing with this one which comes with two sizes of tripod.

Expect the Unexpected

Life happens. I know it feels like life stopped in early 2020 but life still happens. That means that at any point, your kids could strut on into the room, the Internet could die, the doorbell could ring, your dog could inform you that the postie has just been, and many more interruptions are equally viable.

Of course, you want to avoid all these things but sometimes, as I said, life happens. The best thing you can do here is to mitigate them. That means accepting that they might happen, and, having a plan in place in case they do happen. For example, if there’s someone else in the house, ensure that they know you’re on a call, and they need to answer the door. Be ready so that if you’re live when the dog informs you that the world is ending because the postie is here, let the participants know, laugh about it and keep going. Your audience will be at ease when they know that you’ve got this! They don’t want to see you uncomfortable and twitchy, and they also know that life happens. If the Internet goes offline because your other half decided to press a button on the router mid-talk (that happened), deep breath, and dial back in tethered to your phone. Be ready for it but save the row for later!

Pay Attention to the Conference Tech Check

All conferences do tech checks. Tech checks cover a broad range of things and normally happen 1-2 weeks ahead of the conference. They can include:

  • When to dial in for your talk (it will be at least 10 minutes before the scheduled time as a rule)
  • What software to use – make sure you are familiar with it. If you’re not, let them know and do practise runs!
  • Username and passwords for the conference; speakers often have different details to participants
  • How questions will be managed throughout your talk (during or after)
  • Who is hosting your talk
  • Any pre-canned questions that you’d like to be asked in case the audience is feeling quiet
 

woman-listening.jpg

 

Image by Karolina Grabowska from Pixabay

These Tech Checks are your time to ask questions too. Make sure you make notes, write down what you need to do and where you need to be when you need to be there.

On the Day

Live talks are in many ways easier because you will have the excitement factor (which will manifest as nerves), and you’ll have to stick to a pre-determined schedule. However, there are still some things you need to pay attention to.

Wear (Suitable) Clothes

Okay, seriously, wear what you like! Wear what you feel awesome in. That will look different for everyone (good thing too!).

My only other tip here is to consider something loose fitting. Often when you’re presenting you’re nervous and that can cause you to get hot – especially if you’ve got extra lights pointed at you! Loose fitting clothes may be more comfortable!

Check Your Tech

Make sure your machine is not running 20 million applications and isn’t experiencing glitching. We recommend re-booting your machine prior to your presentation, but not five minutes before! A good couple of hours before is preferable, you never know when those updates are going to come and bite you!

Get in the Zone

On talk day you will be nervous, this is a good thing! Those nerves are what you can use to lift your talk energy, so you need to channel them. Do whatever it is that gets you in the zone – some press-ups, a walk, and shake it out – whatever it is. Have some water ready for your talk and of course visit the bathroom beforehand!

Image by Keifit from Pixabay

Make Eye Contact

This one is much harder with remote talks because you have to talk into the void and make eye contact with a webcam; it’s the weirdest thing! However, your audience are on the other side of the webcam, so it’s important that you try and maintain eye contact. Check your eye level with your webcam once you’re standing up. You can always record a little test video and see what it looks like.

Enjoy Yourself

This is the most important one – you need to enjoy yourself! It is much harder giving talks remotely, but you can do it! Of course at an in person conference you’d probably chat to conference delegates and then head to the pub afterwards. That is harder remotely but make sure you do engage with conference participants on social media and at least give yourself a treat afterwards. You deserve it!

Handle the Q&A

A Q&A session normally follows a conference talk. If the conference asked you for pre-canned questions and the audience is feeling quiet, this is a good way to get people feeling comfortable. Of course try and answer any questions that the audience has, but don’t be afraid of saying “I don’t know”, followed by “let me get back to you on that”, or “I don’t know, but I know someone who will know the answer to that question”. You don’t need to know everything!

Summary

There’s plenty of things you can do to ease your experience here and make it less stressful for yourself. I hope I’ve given you some ideas to try so what you feel more comfortable when you give your first, second and third live conference talk. Of course, I’m sure there is a different/additional set of skills for presenting in real life so when I get that opportunity I’ll write that one up as well!

Responding to a Developer Conference CFP

So here we are, you’ve done some public speaking at a user group, and now you want to apply to speak at a conference. Good for you! You have to ‘respond to the conference’s CFP process’ with your talk idea to speak at a conference. Before we go any further a CFP is a Call For Papers. It’s the process a conference goes through well in advance (in theory) to ask potential speakers for their talk topics so that they can build their conference schedule.

I’ve covered a lot in this blog:

I’ve recently done my first conference talk at the phenomenal Java jLove conference. I’ve also applied to speak at two different conferences, one of which I’ve been turned down for, and the other I’m waiting to hear from. I’m also on the program committee for a big developer conference that will be held later this year. The program committee are the folk who look at all the CFP submissions and decide which speakers and talks get offered a place in the conference and which do not. This experience means that I’ve been on both ends of the process and can provide unique insight into the complete process.

Are you ready?

Of course, this is a question only you can answer. What I will say is that you’ll probably never be ready. You’re unlikely to bounce out of bed and say, “yes! I’m ready to speak at conferences now”. There’s no sudden switch, and it will always be out of your comfort zone.

However, allow me to offer some guidance to help you to assess if you’re ready. Have you:

  • done a 30 minute or longer talk at a meetup/user group?
  • got a talk already done/drafted/under serious consideration?

If yes to both, congratulations, you’re ready! If you haven’t, you might still be ready, but your journey may be bumpier. User groups/meetups are a fantastic way to dip your toe in the water of public speaking, get feedback, iterate and improve. We all have to learn our craft. If you’re UK-based, I strongly recommend you check out the London Java Community. They’ve been instrumental in helping me on my public speaking journey with support, encouragement, and speaking slots of all sizes!

By the way, I once made the mistake of asking a seasoned speaker, Trisha Gee how many lightning talks (5 minutes long) you should do before progressing on to longer talks. Here’s the answer (video) if you’re interested. It’s one by the way. Lightning talks are just one of the many initiatives that the London Java Community have. They also have an Aspiring Speakers group and an Aspiring Woman Speakers group that I’m part of. Come join us!

The pandemic and conferences

Let’s talk about this one first. The pandemic has moved all conferences online. At best, some are considering hybrid events for the future, but, for the most part currently, they are all online and have been for over a year now. Sure the picture might gradually change, but if it does, it will be precisely that, gradual.

What does this mean for you? It means two things:

  • The barrier to entry is lower
  • You get zero audience feedback

The barrier to entry is lower

What I mean by this is two things. Firstly, you don’t have to travel anywhere. Now I know you might have wanted to go to that amazing new place and one day, you will, but for now, it’s safer and easier to stay at home.

Secondly, it’s easier to give a talk from the comfort of your home. This is true, but it’s also a lie. Let’s start with the true part. It is undoubtedly easier to give a talk from the comfort of your home. You don’t have to travel anywhere, you don’t have jet lag, your brain isn’t swimming with the names of everyone you just met, and your legs aren’t shaking as you walk onto the stage. All you have to do is join the Zoom call and do the talk. Now I’m not saying that’s easy, but it’s easier than going to a conference in many ways.

Now, let’s move on to why that is also a massive lie.

You get zero audience feedback

It’s a massive lie because you get zero audience feedback for the duration of talks that you give remotely. Nothing, nada, zilch, zero. And that is HARD. When I started my public speaking journey nearly a year ago now, I really liked that. It was great; I just had to turn my machine on, give my talk without throwing up, and then enjoy the adrenaline high afterwards. I didn’t have time to think about the audience, regrettably. I just assumed they’d tell me if they hated it, and they didn’t, so yay?

Then I started doing talks longer than 5 minutes. I did a 25-minute talk, and that’s when it dawned on me that I had absolutely no clue if the folk on the call were glued to what I was saying or if they were glued to what their phones were saying. I had no idea, and I couldn’t get an idea either. Most recently, I gave my 50-minute conference talk to a user group. The lack of immediate audience feedback for the duration of the talk was crippling. Thankfully two audience members put their cameras on, and I loved them for it – they were legends! I could see them smile, laugh, look confused and nod at the appropriate points. However, two people in an audience of over 50 is not a great sample size. Even if all 50 attendees had put their cameras on, I’d still not be able to read all their faces accurately and in time.

Now, unless you’re a speaker who takes questions as you go through your talk, a talk is, by the very definition, one-directional. You, the speaker, are talking to them, the audience. So that doesn’t change, but what does change is the fact that when you share the same physical space as your audience, you can see how they are reacting to your talk. You can see if they’re laughing at your jokes, nodding to your points, or grimacing at your self-owns. When you’re speaking from the comfort of your own home, you get no physical feedback from your audience at all. You cannot, as a comedian would say, easily change the room (video). This can leave a speaker feeling dejected. We have no way to know if we achieved what we set out to achieve.

So how do we address this, well, with great difficulty. It has baffled me for months now that I’ve had it drilled into me that “you are the presentation, not the slides”. As Deborah Frances-White put it in the video above, the overuse of slides is the savanna equivalent of you, the gazelle, saying “Look! A Zebra! (video)”. People come to talks to hear what you have to say, not to judge how fancy your slides are. Now, this area is changing. There’s a fancy new tool called mmhmm which is disrupting the space that PowerPoint and KeyNote hold firmly. It will be interesting to see if it takes off. I certainly am investing time in learning and playing with it in lieu of being able to be at conferences in person.

I really don’t like being a tiny hand-waving Helen in a little box next to my relatively sparse, disproportionally large, yet occasionally amusing slides.

Finding a conference that is looking for speakers

This is step one, and it’s not a difficult step you’ll be pleased to hear. As it turns out, my ex-colleague wrote this excellent list for developer conferences, so I won’t repeat him. Thanks, Phil Nash!

Responding to a CFP

So now you’ve decided that you’re ready, and you’ve found a CFP, great! Let’s do this! Each CFP is different (of course), but there are some guiding principles. Steve Poole recently did an excellent video that I learned a lot from on this exact topic.

Let’s take a look at the broad categories and what I’ve learned for each one.

Title

It needs to be short

Like, really short. It’s absolutely worth putting effort into coming up with the shortest title you can, which is in itself an art.

It will probably (in time) appear in printed media; you don’t want it wrapping if you can help it.

It needs to be snappy

It’s not enough to be short; it needs to be snappy too. Yes, I know that’s a big ask, but it’s an important one. Now, snappy titles do not come naturally to me, so feel free to ask a friend. Also, get feedback and opinions on your title.

The other reason that it needs to be snappy is that, if you are successful, the chances are that those attending the conference will only read your title. Yes, that’s right, those beautiful pros that I’ll come on to for the talk description, they don’t get read a lot of the time. Brutal, isn’t it?

Talk description

This is the bit that will appear on the conference schedule as well. I know I just said many conference participants will not read this, but it will be scrutinised by the program committee. That is the folk looking at all the submissions and deciding which ones are in and which ones are out. So for that reason, you want to invest effort in your talk description.

Keep it flexible

Be careful not to box yourself into a corner here, especially if you’ve not yet written your talk. You don’t want to get your talk accepted, agree to the conference slot and then realise that the talk you really want to give is not the one you submitted. Conference organisers expect slides to change and ideas to be iterated over, but don’t commit to present one topic and then pivot to a different topic or audience level. That would break the contract you make with your audience and the conference organisers should your talk get accepted. Write about the structure of your talk and the stories you want to tell; you can hang the detail on it later.

Spell check it

It’s easily done and it happens. I can say this with absolute confidence because I’ve seen it. Run your work through a spellchecker.

Keep to the point

This is where you sell the talk. Think about prompts like:

  • Why are you giving this talk?
  • Who is this talk for?
  • What story are you telling and why?
  • What is the purpose of this talk?
  • What do you want your audience to talk away from your talk?

This should not be a massive block of text. Look at the past conference schedule for the talks you’re submitting for a guide as to the length. 100-150 ish words are usually the norm here. If you’re up at 200, you will probably need to start trimming it.

Elevator pitch

Not everyone asks for this, but some do. Imagine the scene; it’s the final day that the conference is open for CFPs, 68 come in overnight, and it’s your job to sift through them the following day. The elevator pitch is where you can sell your talk to the program committee. It needs to be short. Many CFPs that ask for an elevator pitch will limit you to 300 characters. Not words, characters. So use them wisely. The ampersand is your friend here, as Steve once told me. That said, don’t revert to text speak entirely. It is unlikely to go down well.

You need to tell a story in this little place. Human brains thrive on stories. Instead of trying to cut down your talk description, try and tell a mini-story.

For example, if it’s an experience talk, you could say something like:

I will share my journey of ‘the thing you’re going to talk about’. I will talk through what worked and, more importantly, what didn’t. I will give some top tips to deal with ‘the thing that didn’t work’. This is my story.

Or, for a technology-based talk you could say something like:

I’m going to show how to use ‘some technology to create ‘something awesome’. I’ll show how to install and configure ‘some techology’ for various environments. I’ll show how to get the most from it, what problems it solves, and how to avoid the pitfalls!

These are just examples, they’re not a gold standard! By the way, talks about failure are very useful; arguably more useful than talks about success. We learn far more from failure.

Make it stick, make it so that the program committee can’t say no. And, even if this is an optional field, never leave it empty. It’s incredibly useful for the program committee to read before or after your talk description.

Notes

Okay this is the place where you relax a bit. This is where you can talk directly to the program committee about why you are the best person to give the talk, and you can expand on the contents of the talk (if you want to). There’s not usually a word count here, but keep it to the point. The program committee wants to have some confidence that:

  • you’ve thought about your talk (seriously)
  • you have an idea of the structure of your talk
  • you’re the right person to give this talk
  • you know what you want your audience to take away from your talk

Expand on each of these points where you can.

Slides

Depending on the CFP, you may have a space for slides. If you do, and you have slides, insert them here. If you don’t, that’s okay too; it’s not usually a requirement. It’s helpful if you do but by no means a must. Make sure the link is accessible to all as well (yes I totally failed on that one with my first submission). Talking of slides, don’t start with them; that’s a terrible idea. If you’re looking to understand how to tell your story, I urge you to read How to make a presentation make a point.

Speaking experience

Again, depending on the CFP, this might be called something different, but somewhere there will probably be a space for you to evidence your prior public speaking experience. This box is crucial for new speakers who aren’t already on the conference circuit. It’s crucial because nobody knows you!

It’s fine that nobody knows you, but if you have a video or two of your prior public speaking appearance, it’s very helpful for the program committee. It means that they can see what kind of public speaker you are and if you’re a good fit for the conference. You have got a much higher chance of being accepted to speak at a conference if you have evidence of prior public speaking engagements such as user groups/meetups. Point to the videos of your prior recordings on your site or on YouTube. If you don’t have such evidence, record a little video of you talking about this talk that you’re submitting and put that on YouTube for the program committee.

This is a good place for me to mention that having your own website can be very useful for creating your own collection of your public appearances. You can link up your previous talks, podcasts, blogs and more.

Speaker bio

Last but not least, we have a speaker bio. This should be written in the 3rd person (which is very strange when you’re writing your own). Again if you’re a new speaker, this is something that the program committee will look at closely. They want to know who you are and what makes you tick. Keep your speaker bio relatively short – around 100 words should suffice. It should state who you are, where you work, what your experience is, and what your passions are. You can read some good advice here and more here for writing your bio.

Getting accepted / rejected

Of course, I hope you get your talk accepted, but I cannot guarantee that. However, I can say that this is the guidance that has helped me get my talk accepted at my first conference and the advice I’ll be building on for future conferences. I was not entirely surprised that I didn’t get accepted for the other conference I applied to, especially given I don’t work directly in that field anymore. There are always a lot of factors to consider for the program committee, but please be assured that it’s never personal.

Getting accepted

Yay! You got accepted! In this instance, the program committee will get in touch with you offering you a slot at the conference. Remember, at this point, you still have the chance to say no. Your circumstances might have changed, a big piece of work might have come in, or life might have thrown you a curve-ball. If you can’t commit to giving the talk on the date offered, say no. You’re not letting anyone down at this point if you say you can no longer do it.

Of course, there is the rare event that you can’t do a talk that you’ve committed to. This is always a tough situation to be in, and if you’re here it’s highly likely that it was completely unavoidable. In that instance, you need to explain your situation to the conference organisers as soon as you know. They will be accepting and understanding.

Something else that’s important to ask at this stage – does the conference want you to do your talk live or as a pre-recorded video. This has come about because all conferences have moved online. As I’ve already said, it’s incredibly hard to talk into your webcam for any length of time and get no audience feedback. For this reason, I prefer giving the talk live because I feel like I at least owe that much to the audience. At least then they can see my gaffs in real-time rather than a polished pre-recorded version. That said, some conferences do want pre-recorded versions, and you might not be in the place to be picky over what you say yes to.

Some conference organisers prefer pre-recorded talks because they remove the element of risk. They don’t need to worry about conference speaker turning up on time or having audio issues because they have a pre-recorded version of the talk. Make sure you ask what they’re expecting, what platform they are using, and if there is anything you need to know in terms of format or staging (such as your zoom background). Ask if they are expecting your talk to be pre-recorded. If it is, find out on what date they want the pre-recorded talk. It’s normally a few weeks before the conference, which can catch you off guard if you’re not careful.

The next thing to ask, and everyone needs to ask this is “What’s the diversity of your proposed conference schedule?” If you don’t get a satisfactory answer, you need to dig into that in more detail. Look at past conferences. What was the diversity of those? Are you happy with it? This is an uncomfortable conversation to have, but we need to get comfortable with being uncomfortable. If the conference doesn’t have the answers for you, that in itself can be a red flag.

Getting rejected

If you get rejected, ask the conference organisers for feedback. They may not give you any, but they might. And, if they do, you can make tweaks accordingly. It’s worth mentioning that there are always more talks than conference slots, but if you keep applying and keep honing your skills, you stand a greater chance of getting accepted. If you’ve written your talk, and you evidence it in the CFP, and you’re still not being accepted to speak at any conference, you need to get feedback. It should help you to understand your next steps and what you need to change (if anything); competition is stiff but keep going and keep learning. I could insert numerous quotes about getting rejected, but you know the drill, get back on it and submit to another conference.

Writing your talk

My top tip for writing your talk is this – don’t wait to get accepted before you write the talk. Now you may think that’s very presumptuous but allow me to explain. If you start writing the talk before you receive confirmation of acceptance, you’re ahead of the game – win. On the other hand, if you start writing the talk and get rejected, you still win long term because your talk will hopefully be accepted in the future, and even if it’s not, it will be great experience to master your craft.

Remember, public speaking is a skill and, we’re not born with it. Everyone can learn it, though. On that note, don’t compare yourself to people who have been public speaking for decades. They’re good for a reason; they’ve had A LOT of practice! Talking of practice, practice really is everything when it comes to public speaking.

It takes a very long time to create a talk. I’m loathed to give a metric here, but my most recent conference talk that was accepted has taken me just over 50 hours to prepare. It’s a 50-minute talk. That includes the slides and numerous dry runs. I know every line, what I want to get across, where my punch lines are, and what emotion I want to get across and why. Now, I know there are some public speakers out there who can quite literally wing it. Good for you; that’s an awesome skill. Most of us, however, cannot wing it, nor should we try. Don’t assume that you can give the talk and wing it in any way. It’s not fair on your audience, and for a conference, they’ve often paid to be there.

I’ll say it again, practice is everything.

Giving your talk

You will be nervous, that’s because you care! Being nervous is a good thing. It would be far weirder if you weren’t nervous. There’s not much to say here except:

  • Pay attention to the tech check. Write down what you need to do and when.
  • Have canned questions ready for your talk in case your audience isn’t feeling chatty.
  • Get in the zone, whatever that looks like for you. For me, it’s raising my standing desk, doing a few press-ups, and some pretty bad dancing and singing. Do whatever works for you.
  • Remember that your voice reflects your mood, so it’s imperative that you go into your talk happy. You can’t fake it, at least, I can’t.
  • Join in a timely fashion, give your presentation and answer the questions afterwards with a smile on your face.
  • Reward yourself with whatever makes you feel good when it’s done!

Submitting to more conferences!

By now, you’ll know that creating talks takes time and a lot of investment from yourself. There is absolutely nothing wrong with giving the same talk multiple times at different conferences. In fact, it’s expected. Conferences know how much effort and time it takes to create, and they do not expect unique content.

That said, it’s polite to ask and to let them know where else you’ve given this talk, with a recording if possible. If you’ve not given this talk before, that’s fine too. I was in that exact situation; just let them know. Communication is key here.

Summary

Submitting your talk to a conference, that is, responding to a CFP, is hard work. It’s similar to the amount of effort you need when applying for a new job, especially when you’re a new speaker. You do have to put the groundwork and effort in, but public speaking is an incredible asset for your career. If you can, volunteer to be on a program committee. It means you can see what other folks submit and learn a lot about what is and isn’t accepted. Ask conference organisers if they need program committee members. Some will say yes!

Hopefully, we will all get to go to real conferences again soon and get that audience feedback that is so important, along with the post-talk drinks! I hope we’re both there!

New to Java? Some Resources

In this tweet, I was asked if I had a list of resources for developers who are new to Java. I didn’t at the time, but I’ve spent some time researching and here is that list.

I’ve listed content that is both free and paid. It’s not that one type is superior; it’s just to give you plenty of choices. These are the resources that I’ve used and do still use to re-learn Java. So, if you’re new to Java or looking to pick it up again after a break, this blog is for you.

The other super important point is that everyone learns differently; some like reading, some like doing, some like watching, most of us like a bit of a mix of everything. I tend to switch between them depending on what I want to learn about and how I feel. You’re probably similar, so pick an approach that works for you.

Learning Platforms

Let’s start with learning platforms. There are plenty of them to choose from, so you can pick one that works for your learning and budget style.

JetBrains Academy is a reasonably new learning platform that I’ve been using to skill back up on Java. I’ve used it in conjunction with other learning materials. I like the mix of theory with practice tasks. Of course, the slick integration with IntelliJ IDEA is a bonus too.

I’ve also used Udemy in my Java learning travels. There is a wealth of content available here, and you can sample most of it before you buy.

Finally, I’ve played around with codewars. This is a nice gentle introduction to katas (more on them soon), irrespective of where you are on your coding journey. It’s less structured than either JetBrains Academy or Udemy and can provide some light coding respite when the mood takes you.

Communities

The Java community is a rich, vibrant and welcoming place. This is played out in the communities that have sprung up around it.

The Virtual JUG is what it sounds like; a virtual Java User Group that hosts talks and shares knowledge. They have a Slack and Meetup space, so you can hear great speakers, speak yourself and learn from your peers.

Since I’m based in the UK I also want to give a shout out to the London Java Community and the Manchester Java Community. They are both great resources of information and supportive communities. I fully expect that this is mirrored in other Java User Groups worldwide, so I recommend you find your nearest one (or set one up(!)) and get involved. Talking of getting involved, creating content is an excellent way to do that.

The Java Specialists is another active group run by @heinzkabutz. Heinz also has a newsletter that I recommend you take a look at.

The Code Ranch is a very friendly place for newcomers to Java where you can post questions, learn from others and try out coding questions. The forum is also really active (oh, and did I mention that everyone here is super lovely?).

Code Katas

I am a relative newcomer to code katas, but I really like them as a way of learning. They are self-contained mini-puzzles that you can solve at your leisure.

@TheDonRaab does a great job of keeping these updated for Eclipse Collections: https://github.com/eclipse/eclipse-collections-kata

@CGuntur has also created these Java Katas for you with really nice instructions and updates: https://github.com/c-guntur/java-katas

I’ve not started these yet, but I like the look of them because the tests are right there to look at.

Specific Java Resources (including Frameworks)

This is a bit of a catch-all section, but there are a few resources that I’ve come across that are amazingly useful; they are listed here.

This course from @techgirl1908 was one of the very first resources I used on my journey to familiarise myself with the last 20 years of Java. I found it to be well-paced, gentle and incredibly useful.

@marcobehler has created a lot of content around Java, and specifically, Spring. This blog, and this Spring course, it is a bit like an onion. It starts with life before Spring and builds up the complexities so that you feel like a wizard when using Spring (and subsequently Spring Boot) and understand how the magic is being done and why. I feel like there’s a spring onion pun there, but I’ll move swiftly on.

There is a wealth of Java information on the Baeldung site. I don’t have one specific blog to point to, but invariably when I’ve Googled Java something there is a blog on this site that explains how to do it. It always amazes me just how rich this content is in terms of quantity and quality (many authors contribute to it).

One more thing I do want to mention is the official Oracle documentation for Java. I say this because you don’t have to store the Java language in your head. There is no shame in looking stuff up (another reason why technical interviews are so broken). Spend your time on the artistic side of learning to code, not remembering stuff that is one Google search away. Sure, you’ll learn more in time, but it doesn’t need to be your priority when you are starting your Java journey.

Of course, there are plenty of dedicated Java blogs out there, which you can find with a quick Google, but I want to keep this list of resources specifically targeted at content that newcomers might find helpful and that I’ve used.

Books

I like books; arguably, I like them more than videos. As with all other resources I’ve listed here, there is no shortage of them. These are the ones that I specifically have found helpful.

Head First Java by Kathy Sierra and Bert Bates. Yes, this book is old on the scale of Java, but it’s still very, very good and will probably appeal to your brain’s way of learning. I started with this book, and I didn’t regret it.

97 Things Every Java Programmer Should Know. Am I including this because I work with @trisha_gee, no, I am including this because I got a lot of value from it. I liked the vast range of topics that I could dip in and out of it very quickly because all the content is standalone. Many very experienced Java professionals contributed to this, so in my mind, they are worth listening to!

Effective Java by Joshua Bloch this isn’t the book that you start with, but it’s a book with a relatively low barrier to entry, and a book that I got a lot of value from (and probably need to re-read now I have more knowledge).

Head First Design Patterns 2nd Edition. This book is so fresh off the printing line that the ink is likely still wet. I’m going to come clean and say that I don’t own this yet, but I plan to own it very soon. I do own the first edition, and it was excellent. I fully expect the second edition to be just as good, if not better. Design pattern knowledge and understanding will serve you well, no matter what your coding goals are.

Java Certification

A note about Java Oracle Certification: this tends to be one of those subjects that can polarise opinion. I think certification is very valuable for a deep understanding of the Java language, and it will serve you well if you want to study and obtain it. I don’t think you need to be certified as such, and I suspect that on the job knowledge of Java will provide you with an equally rich and diverse experience of the language, albeit from a different angle. It’s entirely up to you, but here are my recommendations for resources if you want to pursue Java certification.

There are excellent books available from Jeanne Boyarsky and Scott Selikoff. I haven’t taken the exam, but I have found the books very useful and the examples informative.

My colleague Mala Gupta is also a passionate advocate of Java Certifications and her book for Java SE 11 is in preview so that you can get your eyes on it already!

Goals, Learning Styles and Time

Irrespective of if you’re new to coding, new to Java specifically, or took a break from Java, this is a list of resources that will help you get up and running quickly. I suggest you find the ones that work for you and build your list. Invariably what works for one person might not work for the next, so feel free to explore the wealth of content out there. Your learning style will also play a part, as will the amount of time you have available.

Whatever you do, enjoy the journey and remember what your goals are. Never lose sight of the why; that’s what will get you to where you want to be.

LTS Version or Latest Version of Java?

We, the Java Developer Advocates at JetBrains, are building a Spring Boot application. Right at the start of the process (which was yesterday on publish date) we kicked off the New Project wizard and selected Spring Initializr. Everything was fine until that point, we (Trisha, Dalia and myself) were having a nice chat and all in agreement. That was when we got to this screen:
Spring Initializer Settings
We gave it a name, set the location, and then had a quick debate about Maven or Gradle. If you’re interested we chose Maven for this project but will choose Gradle for a different component because we like a bit of variation. That wasn’t the contentious part, that was merely a warm-up exercise as it turned out.

We got down to Project SDK and Java. And this is where I felt like I’d been ported to an episode of Mortal Kombat with Trisha and Dalia playing leading roles. BTW, in case you were wondering (because I was), the Java field is the Language Level. I opted to extract the (mostly) full conversation here because I think it’s really useful to show this transparency of a healthy debate. Also, now I’m listening to this back to extract the transcript, Dalia totally started it. Oh, and then there was this, by way of escalation.

Dalia: Alright, hold on. The version of Java we’re using, do we want to use 11?
Helen: (yes I got this one word in) It’s the latest LTS isn’t it?
Trisha: It is, but 16 is so nice, but 16 is also challenging because 16 it hides the internals of the JDK by default so if you have any other JVM language like Kotlin it doesn’t work that well on 16. Now, since we’re using Spring Boot, Spring is always a little bit behind anyway so Spring supports Java 15, I don’t think it supports Java 16 but if we use Java 16 we can use Records, which is fun. I want to go with 16 and then see what breaks.
Dalia: My opinion is 11 because if you’re in an enterprise scenario, you will not be using 16, you’ll be using 11 because you want to make sure you’re not going to have to upgrade every 6 months.
Trisha: I agree with that. What I would like to do is I would like to showcase what you’re missing, but, here’s the other thing, so we might not even use that many features from Java 12 through 16, what we might want to do though is if we use anything that’s 12 through 16 we’ll just “if you’re using Java 11 this is how you do it”, like Records, because Records can be converted to data classes.
Dalia: When is 17 coming out?
Trisha: September
Dalia: Okay do we feel like we’ll want to upgrade to 17 when it comes out because that’s the main argument for me because then we can upgrade to 17 and that might be around the time we showcase this.
Trisha: So, I would like to show 16 to really help to pull people in the direction of 17. 16 has Records as a standard feature, not a preview feature which will be really helpful for small services.
Dalia: The only thing I’m saying is that if we are recommending “here’s how you start a new service”, then best practice is not to start with a short term release.
Trisha: I know what you’re saying, I think given 17 is coming out in September I think we should be poking people in that direction. We’re talking about new services and if you’re trying to get people to do new services with 11 it’s going to be forever before anyone gets anywhere. So if we go with 16 then we can say “you should be doing this on 17” when it comes out and it’s a full Java 17 application.
Dalia: I agree to disagree, I would have done 11 but I think you have a fair point too.
Trisha: We can revisit this decision if it looks like there’s anything that’s going to be show-stopping. So yes, lots of decisions on the first page!
Dalia: Yes! I think this is a really good topic to create content from how we made these decisions.

And, that is how this blog came to be! Then, we moved onto this page:

Spring Boot Options

And the conversation continued. We discussed which version of Spring we should use given we’ve selected Java 16. That involved some Googling, and we landed on the snapshot release which of course continued to make Dalia pretty nervous (understandably!).

We had a discussion around what our objectives were in terms of who we should be providing feedback for and why. We agreed that sending feedback on all bugs and problems to all software vendors (of course including JetBrains) was paramount, so we try things out and find issues before you all do. We went on to discuss the fact that we didn’t want the tutorial to be immediately out of date and that was another reason to forge ahead with Java 16.

The conversation concluded like this:
Trisha: I’m going to propose we go my way, but, as soon as we lose more than half an hour to a stupid bug then we roll back one thing at a time.
Dalia: Yes! Yes!

Finally, I managed to get a word in and asked how easy it would be to change the version of Spring Boot after we’ve made these selections. Turns out, that’s very easy (just like it is for the SDK).

We all wanted to share this with you because it was a healthy and fun debate. These are great discussions to have and are critical for new projects. Yes, IntelliJ IDEA makes changing this stuff easy after the event, but that doesn’t mean you should just forge ahead without understanding why you want to go down that path.

At the time of writing the poll was very evenly split. My personal view is that this is because both Trisha and Dalia are excellent ambassadors for the Java community, and they were both advocating for what they believed to be the best option for the content we all want to create.

25 Content Creation and Sharing Hacks

The list of resources for ths talk is available here.

Woman working on a laptop

The benefits of creating content are relatively well known, but it’s worth reiterating them before we go on.

  • Cements your knowledge. When you create content on something, it helps ensure you know the subject well.

  • Helps others to learn. Your content might help them with something that they’re unsure about, or it might validate their experience.

  • Participation in a community. When you contribute to a community, you meet people you can learn from and, in turn, can help other people. It also offers you excellent networking opportunities for your career.

What’s not to like?

Image by StartupStockPhotos from Pixabay

A Note About Self-Promotion

Self-promotion is not what content sharing is all about, in my view. In fact, if you google self-promotion you too will probably realise that you’re not keen on it either.

The good news is that you don’t have to be good at self-promotion; you just need to be good at content-promotion. It’s your content that you’re promoting, not you. You also need to be authentic. We are at our most authentic when we accept ourselves and our knowledge, including the gaps in it. When we’re comfortable in our own skins and not seeking approval, that’s when we create authentic content. When we do that, promoting our content feels much more comfortable.

The Hacks

I’ve grouped the hacks into five segments followed by a summary for this blog:

Always Do These

These are the hacks that you should always do when creating and promoting any sort of content. Allow me to explain why.

Follow your dreams sign

Don’t listen to the voices

The voices of self-doubt have one role in this life. They just want to keep you safe and protect you. You might think that sounds great, and thus you should listen to them, but if you do, along with being safe, you’ll also never try anything new or put yourself out there. Those two things could fail, sure, but you might even succeed. The voices are not willing to take that risk, but you can!

Believe in yourself

It is a little cliché, but if you don’t believe in yourself, no one else will. If you don’t create content that you believe in, and you are authentic with, the buy-in from others for that content will not be as strong. Some people struggle with this more than others, but if in doubt, remember that someone will definitely benefit from you creating content – you! I would put good money on the list being longer too.

Image by photosforyou from Pixabay

Enjoy yourself

As humans, we rarely do stuff we don’t want to do unless we’re being paid. Of course, that’s a broad statement because you’re probably thinking, “but, I wash up, I clean the house, and I go food shopping”, none of which are exciting in my book. However, those things are just the daily grind of life that you choose to do to change the surrounding environment, and so you don’t starve. Content creation will infringe on your leisure time, so you need to, at least to some extent, enjoy the majority of the process; otherwise, you just won’t do it, which would be a shame. Do what works for you; today, for me, it’s triple chocolate chip cookies. I have no regrets.

Back to the hacks list

Getting Started

These are the hacks that are useful when you’re getting started creating or promoting any sort of content.

Woman on starting line of race track

No one will read it watch it anyhow

Most people build their network and community as a result of creating content. Be that talks, blogs, videos, or some other form of content. You don’t normally have an extensive social media platform following when you first start creating content, so don’t stress about it; initially, it’s highly likely that no one will read it anyhow! It’s a safe time to get into the mechanical process of creating content and subsequently promoting (I will come on to that) that content. Just crank that handle and find your groove to start with!

Image by Ryan McGuire from Pixabay

Make yourself a platform

This can be a website, or at a minimum, standardise your social media handles where possible. When you create content, you will build a brand of some sort, even if it’s not your intent. People will come to associate you with the type of content that you create. If you have all of that content in one place, that will strengthen your brand and allow you to keep control of your stuff as well. Content will become scattered over time but don’t be afraid to have your own site (even though no one will read or watch it anyhow initially). If front-end web design is not your idea of fun, check out SquareSpace, Wix, or WordPress (there are more). You can also use canonical links to share your content on other platforms as well, such as Medium.

Find the medium that works for you

Fortunately, we’re all different:

  • Some people like reading

  • Some people like watching

  • Some people like listening

  • Some people like a combination of reading, watching and listening

My point is, create content that you’re passionate about and that you care about. It’s fine to exclusively create one type of content if that’s your skill-set.

Create ‘experience-based’ content

No one can argue with your experience. This also negates the argument of “someone’s already created that content”. No one has your experience or our viewpoint – if you don’t create it, no one else can! Experience-based content really helps to validate other people’s experience as well. Do you think it’s too basic or too easy? Nope, we’re not born good at something. We all have to learn it, and basic/easy content is a huge help on that journey.

Regularity beats size

It’s easy to create a huge amount of content for your first few pieces, and then content-creator’s block hits, life throws you a curveball, or you’re just out of enjoyment for the process. You do not need to come at this at full speed. Content creation needs to be well-paced and accepting of the limitations in your schedule (I’ll come on to that too). It’s much better to go a bit smaller and be able to release content on a regular cadence than release War and Peace every six months. It’s also much easier for your readers to consume that way. I think those social media algorithms prefer it too. Yes, I know I’ve bent the rules slightly with this epic blog!

Get yourself a community mentor

I wrote a blog on this which you can check out that has a lot more detail, but the high-level summary is that there are plenty of people in the community who have walked the same path as you and are willing to give you their time to help you on your journey. They are people who want to give you a seat at the table; it would be rude not to sit down.

Don’t overthink what content people want

It’s very easy when you’re creating content to think that you should create content “that the audience wants”. While yes, I can see that point of view, it is highly likely that thinking this way will:

  • Narrow your vision and creativity

  • Reduce your authenticity

  • Stop you from leaning on your own experience

By all means, consider the audience; you wouldn’t create a talk on Java and give it at a .Net conference (probably), but don’t throw away all the things that will make your content great when you’re considering them and their expectations.

Back to the hacks list

Creating Personal Content

These are the hacks that are useful when you’re creating content outside any corporate brand. This might be blogs, videos, podcasts or more. There are lots of options to choose from!

Three hourglasses in a row

Take (or even make) time to create content

Time is all we have, and it’s precious. Consider spending some of it on yourself instead of streaming services, where possible. I appreciate we are all very busy, and recent events may have compounded that, but if you don’t take the time, no one else will. Of course, there are big hitters in this department like dependants, job, and health to consider as well. Also, life will throw you curve balls (and they’ll hurt). However, keep trying to make the time if you can. The rewards are worth it.

Image by Alexandra ❤️A life without animals is not worth living❤️ from Pixabay

Information density is a Good Thing™️

When your audience consumes your information (reads your blog, watches your video, listens to your talk), they do so in different ways. Some will want exactly the information you’re providing and no more, some will have questions and want to go deeper, some will be really fired up and want to know everything about the topic! Because your audience is all different, the best thing you can do to support their learning is to provide information density if you have it. If you referenced other content when you created your materials, or if you can point your audience at more resources, please do so. You can do this with links, QR codes, lists at the end or whatever works for you and the content. This blog from Trisha Gee is a great example of information density!

Consider usability

If your content is not accessible, you exclude part of your audience. Make sure that your content is as accessible as possible, irrespective of the type of content. The World Wide Web group has created some helpful guidelines for written and video content in this regard.

Credit where credit’s due

If you use other people’s images (always with permission), please ensure you credit them appropriately. There are some sites such as Pixabay and Upsplash that have royalty-free images you can use. You don’t even need to credit the artist, but please do. It’s free to be nice, and without them, your content might just be a wall of text.

Try pairing on content

Many of you may have paired on code, but have you ever tried pairing on content? Even if the other person is a friend with some time to give you, get on a call and start a screen share; it’s all the rage these days! I wrote a blog on my experience of pairing on content creation, so I’ll let you dive in on your timescales.

Don’t let language skills hold you back

I get paranoid about this one. However, the truth of the matter is that slightly dodgy grammar, or a typo, is not going to block your content. I also want to mention accents; we all have them, and they’re all beautiful and part of us. If (to my ears) you have an accent, then I’m already in awe of you. Why? Because you speak at least one more language than I do, and you’re delivering content in your second/third/nth language, absolutely amazing. Embrace your awesomeness and skills and create content in whatever language you want to!

Leave reflection time

I benefit a lot from this. Once you’ve created your content as a first pass, take a break. Go for a walk, have a sleep, play with the kids, or tidy up. Just take a break. When you come back to it, you’re much more likely to spot any issues and even tweak it, so it’s even better. That said, don’t leave it so long that you accidentally forget to publish it.

Back to the hacks list

Promoting Personal Content

You don’t need to be good at self-promotion; you need to learn to be comfortable with content-promotion. These hacks focus on getting the content out there. There is a lot of material out there on how to work with social media. It’s outside the scope of my knowledge and this blog, however.

Sparrows talking to each other

Tell people you’re going to do it

This one sounds so obvious, but is frequently neglected because we labour under the illusion that it’s self-promotion, not content-promotion. This one is also especially pertinent to public speaking. If you’re going to give a talk, tell people you’re going to do it! I think many of us feel uncomfortable about this notion, but if you’re speaking about something that you have experience and authenticity in, why would you keep that knowledge to yourself when others might benefit from it? This means sharing your scheduled talks on whatever platforms you’ve selected as your vehicles for content promotion.

Image by suju from Pixabay

Don’t be afraid of feedback

Feedback can be scary, but there are a couple of things it’s worth remembering. For both of them, I am assuming that the feedback is not abusive. If it is, that’s why we have block buttons and code’s of conduct; please do not stand for it. Okay, so when you get feedback (irrespective of how you feel), the first thing to acknowledge is that they’ve consumed your content. That means that they’ve given you the gift of their time. The first thing you can do is say Thank you. That’s it, and it’s that simple. You don’t need to agree with their feedback, you can still grind your teeth, but they have consumed your content. The second point to remember is that you are in control. You can take the feedback on board, or you can disregard it; it’s completely up to you. You can fix that typo, slow down your talk, or use different lighting for your video. It’s up to you. Everyone has an opinion, and some people choose to share them. What you do with those opinions is your call and yours alone.

Use platforms consistently

When I say platforms, I mean things like Twitter, LinkedIn, Facebook, etc (no, I’m not going to link them in this instance). However, you choose to share and promote your content on these platforms is, of course, up to you, but just do so consistently. So if you like to use Twitter exclusively, great, do that. If you like to use Twitter and LinkedIn, great, do that. However, don’t switch around the place without good reason and without notifications. Switching platforms randomly can lose your audience who want to consume your content.

Back to the hacks list

Creating Corporate Content

Perhaps you’ve been asked to create some content alongside your day job for the company that you work for. In that case, here are some hacks that can help you to navigate that, especially if it’s your first time.

A high rise building

Ask about corporate voice / brand

When you write personal content, you can use your own voice and brand, but when you create corporate content, it’s very likely that you’ll have to adhere to whatever the corporate voice and brand guidelines are that already exist. It’s best to know about these upfront. Writing in a style that is not your own is harder than you might think. Consider trying it before you commit to creating content that is not in your style.

Understand expectations (yours and theirs)

You need to find out things like timescales first and foremost. Bear in mind that whatever you do in this domain is in addition to your day job so understanding their expectations is key. You also need to ask yourself if you have the bandwidth for this, it might be in addition to your day job, but that certainly doesn’t mean it should be done out of hours! Set your own boundaries in this regard and communicate them.

Image by Michael Gaida from Pixabay

Learn about the review process

You’ll have stakeholders that want to review your content and indeed should, stakeholders that don’t want to review the content and should, and then stakeholders who want to review everything that they can, even if it’s not their job. I wrote a blog on this too, specifically from my Technical Writing experience. Identify who is in each group and work out how you’re going to work with them. What are their expectations of the content and review cycle? Do they want to review all the content at once or as bite-sized chunks?

Check the promotional strategy

Often in corporations, there are people who promote corporate content as part of their role. Find out if you have these people and understand who is going to be responsible for promoting the content you create. Are they expecting you to share the content you create from your personal social media as well? Are you comfortable with that? It’s best to understand the expectations in this area before you say yes.

History can tell you a lot

Unless you’re in a start-up, the chances are that you’re not the first person to write a post on the corporate blog or be a guest on their podcast. Ask your colleagues what their experience was like, such as expectations, the review cycle, stakeholders and more. Go ahead and extract as much information as you can so that you can make an informed decision.

Back to the hacks list

Summary

So that was a bit of an epic blog! I hope there were some useful snippets of information in there. I hope that at least some of the hacks in here inspire you to go on and create some content on your experience and then share them with the community. Give it a go!

Mobile phone showing imaginary data

If you got this far, I’m thinking of turning this into a publication/book and adding more detail, examples and hacks. If this is something that you’d find useful, please do let me know or leave me a comment!

Pairing, but not as you know it

We’ve all heard of the benefits of pairing when it comes to coding, many of us have done it in our jobs and reaped the rewards, but have you ever paired to write English?

code-with-me.png

The agreement

Last week I suggested that we, Trisha Gee and I, do exactly that. We were both struggling to get into the zone of some written content that needed creating, and I’ve always wanted to try pairing on writing. I’ve benefited myself from pairing on code and, as a sole technical writer in the past, I’ve watched with envy as developers paired on their deliverables as I cracked on with me, myself and I for collaboration. Trisha agreed that we could try it so here’s the honest account of how pair-writing went, and what I learned.

We set aside two hours for the process. We were writing the content in IntelliJ IDEA, so we opted to use the new Code With Me functionality, so we could share our session in real-time with audio and video for the full 2021 remote-pairing experience. First up, we installed the plugin (currently experimental) and then we joined the Code With Me video call.

We spent a few minutes messing about with Code With Me, working out what we could and couldn’t do and then Trisha talked me through the pairing model of a driver and a navigator. In this model, one person drives (types) and one person navigates (thinks and talks). At this point, we both agreed I would drive, and Trisha would navigate because she knew the subject well, and I can type pretty fast on a good day. With the roles assigned, I put on my racing helmet, got into my rally car, and strapped myself in. While I was amusing myself with my fantasy car world, Trisha was creating a Scratch file to dump notes in that she wanted to come back to as she was navigating us around the track.

 

The pairing

Okay, so, we’re off. I was quite nervous about how it would work given I had pushed for it, but I kept up with the musings from Trisha and adopted shorthand where necessary. I surprised myself at how few mistakes I made. I was keen to ensure that what I noted down would be legible and understandable because I would be using my notes to turn the content into customer-facing content later. If I couldn’t do that quickly and easily, then this whole process wouldn’t be worth it. It would still be useful in that we would know that pair-writing doesn’t work, but that would be about it.

I kept an eye on the clock, and I think we were probably chatting for about 35 minutes in total. We were rudely interrupted by a phone call from my solicitor, which I had to take to try and keep my impending (and exceedingly stressful) house move on track. That is the point that we pulled off the race track. I think I’m probably done with that analogy now.

Image by Dimitris Vetsikas from Pixabay

 

ooops.jpg

The mistake

 

Before we finished the pairing session, Trisha was keen to get some inline code working that was being pulled in from another project. She talked me through how to add an attribute for the Asciidoc Plugin so that the code would be pulled in. Unfortunately, it didn’t work, so, after much discussion and bemusement, we decided that the experimental Code With Me plugin might be the problem.

We left that call and hopped on a different video call to troubleshoot. It’s entirely possible that Code With Me was not in any way the problem, and the problem was that the code I was trying to grab hadn’t been pushed, but we’ll just leave that one there!

Image by Craig Steffan from Pixabay

 

keyboard.jpg

The write-up

Skip ahead three days, and it was time to write up the notes from the pairing session. I was apprehensive because I was worried I wouldn’t understand my notes, but I was pleasantly surprised! Of course with a typical code pairing session, you wouldn’t walk away from it with half-baked, non-compiling code, but I was hopeful that my brain could make the notes I’d written previously into effective content; the equivalent of compiling code.

The first thing I did was commit the notes from the pairing session locally. Yes, I could have just deleted them and then used IntelliJ IDEA’s Local History, but I thought I’d go down the commit route for posterity and longer-term tracking. Once I’d committed it, I started hacking up the content. I went paragraph by paragraph reworking my driver notes into useful pros. It took me 30 minutes on the dot. I committed the updated topic and felt extremely pleased with myself. It had worked!

Image by Daniel Agrelo from Pixabay

 

wine-cheese.jpg

The learnings

It’s not just wine and cheese that go exceptionally well together as it turns out! Pairing works for writing too! In fact, it works really well. If you have one person who knows a lot about the subject they might make a great navigator (not exclusively).

You don’t need to have the same experience, or even the same job role, to pair on something; I recommend you try it. I wish I’d done more of this as a Technical Writer, I think it would have been very successful in a number of professional situations where I needed to create the content and didn’t (yet) have much subject knowledge. I will certainly be doing more of it now!

Image by Oldiefan from Pixabay