You Don’t Have to Know Everything

I have a lot to learn.

This is one of the thoughts that is in the forefront of my mind more often than I’d like to admit! I’m still a relatively young developer, particularly for someone in a position of technical leadership, and (in recent weeks especially) I often suffer from the worry that I should know more. I feel like I’m not developing fast enough, or able to contribute to every discussion with the perfect clarity befitting of a technical lead.

This is a ridiculous notion of course. No one knows everything all the time. Everyone is learning and while you can be honest with yourself about the fact that you do want to improve, you have to allow yourself to not feel like you have to have all the answers. Because there will always be a more talented developer than you, and a lot of times you might have them on your team!

A while ago I watched a talk by Clare Sudbery, where she discussed how she dealt with being in a position where she didn’t always have all the answers for her senior technical staff. The talk is linked below.

I really enjoyed this talk and it resonated with me a lot. I’m fortunate to work with some very knowledeable people and there are often times where I just don’t have the understanding I’d need to advise or make suggestions based off my technical expertise. As a Technical Lead, it’s easy to feel like you should have all those answers. And that can be pretty daunting. Especially when you think about just how much there is to know. The thing that Clare points out is that that’s okay!

It is not your job to know all the answers to every question that could come up. Your job as a technical lead is to bring together a group of people with varying technical ability and try to funnel that into a constructive form. You want to hire talented people who have technical knowledge! That’s a benefit to your team. And then you want to work to empower that team, with knowledge and strategies that help the team share in the expertise they have. Clare goes into various strategies for teaching and building the skills of these developers. But, sometimes, you’re going to be the one who is going to be confused, and it is important that you are open about that confusion. Because it gives other people in your team tacit permission to open up when they’re confused, which creates opportunities for your team to grow.

So what do you do when you’re faced with a situation where senior technical staff are presenting problems and solutions that you don’t feel confident evaluating?

Ask the people involved to slow down and take the time to break it into pieces. My favourite phrase for doing this is something like “Walk me through that” or “Bring me with you“. I often find myself saying these phrases in meetings, while pair programming, or just in catch ups with my team. I really like these expressions (or any similar sentiment) because they’re a way to ask your co-workers to take a step back and realize that there may need to be a deeper explanation given. It doesn’t put any blame on anyone, for not explaining things well enough, or for not making sense or anything like that. It’s just an honest admission that, for whatever reason, I’m not on the same page as someone else.

It’s a well known concept that, as you become more experienced with any skill, you internalize the basics and those actions that used to take deliberate practice and effort, just become a feeling which you act on. This is what allows athletes to make split second decisions between a huge number of techniques, and also allows creative experts to make up entirely new things on the spot that seem to fit the moment perfectly. But because of this, you often find that experienced practicitioners of a skill find it very hard to break down, in the moment, why they chose to do the thing they did. They just do it. I’ve found the same thing with talented developers I’ve worked with. They’ll often answer a question by tackling the bit that they’re wrestling with, without really considering that other people haven’t gotten to that point yet. A lot of the time, this isn’t done with any malice, or even an understanding that it’s happened. It’s just that the answer was clear to them so they skipped the step. It’s important to be mindful that this could be what’s going on, and to not get frustrated with people.

It’s usually a blessing in disguise! As soon as you recognize that, that means there’s an answer to a question in the room and you can help everyone around you get to it. Even if you, as the technical lead, understand the same thing as your experienced developer, this is a great opportunity to say something like “Walk me through that”. In my experience, even if you are on the same page (and I’m often not!), there will be at least one or two people who would appreciate being brought up to speed but feel like they’d just be getting in the way of they said anything. Getting those knowledgable people to take a step back and bring people along can be a great way to help the team move forward together. It can also be a great way to challenge people, without creating a hostile environment. Earnestly asking someone to bring you to where their head is at, even when there’s frustration in the room, can be a fantastic way to convey that you’re honestly trying to work towards a consensus, and push things forward in the best way possible.

So the next time you find yourself in a situation, for whatever reason, where you are missing something, maybe give “walk me through that” a try.

I’d love to hear thoughts, phrases, and techniques on dealing with the moments where you don’t feel like the expert. How do you feel when it happens to you? Feel free to drop me a comment or message me, I’d love to hear from you!

Event Report: You Got This Conference 2020

FeaturedEvent Report: You Got This Conference 2020

A month or so ago, at 7:30 in the morning on Saturday 18th January, I found myself sat at a table chatting to a friend of mine, on a train headed to Birmingham New Street to attend the You Got This Conference for the first time.

The conference, now in its second year, is intended as an affordable conference aimed at newer members of the tech industry, or at technical leaders who want to learn more about the concerns of those who may be joining the space. It aims to be an inclusive environment, allowing for people of different backgrounds to feel safe and comfortable, and focuses less on the technical aspects of the industry and more on the experience of surviving and thriving in this industry.

Attending the Conference

Needless to say, I was very excited to attend a conference like this! Both from the point of view of still feeling like I have a lot to learn as a part of this industry, and from the point of view of someone who has a responsibility (and an interest) to help guide newer entrants into what can be a very daunting world.

We arrived bright an early in Birmingham and took the scenic route to the impressive and very shiny Millenium Point building which was to house the conference. We got in and were given our badges nice and quickly, with enough time for coffee and some chatting. I am awful at networking. Just terrible. I always want to be better at it, but I can never quite muster up the courage to just chat to people about…whatever it is that people chat about in these situations. It’s something that I’ll try to work on as part of this journey. Luckily for me, I was with some wonderful people who were happy to integrate me into various conversations and before I knew it, it was time for the talks.

We sat up in the very impressive auditorium, which doubles as a cinema, and settled in for the first suite of presentations. I won’t go over every talk, but they’re all online and I can definitely recommend them if you want to get a perspective from people in the industry you might not otherwise be able to hear from.

You can find the playlist here.

The Talks

The talks covered topics ranging from what you can expect your first days in a position to be like, and how to find a mentor, to things like unionisation and ways to maximise your learning.

Although I won’t go over every talk, I wanted to quickly mention a couple of my favourites. The first is the talk “So good they can’t ignore you!” by Gargi Sharma. Gargi is a systems engineer with a passion for programming and teaching and in her talk, she covered the idea that sometimes just being good and working hard isn’t enough in your career. You can be detail oriented and helpful to others, and yet somehow be glossed over for rewards that you may rightly deserve. Or may find that performance reviews don’t come out as strong as you’d expect and you can’t explain why.

Gargi explains that this is due to the fact that meritocracy, something that our industry in particular often relies on as a basis for advancement, is a myth. Gargi breaks it down fantastically in her talk and I definitely recommend giving it a listen. But the crux of it is that people have biases, conscious and unconscious. This could be something as simple as, the fact that people forget what you may have done in the past; a recency bias. Heck! We can even suffer from those same biases ourselves when reviewing our own work.

Part of the key to working within systems that rely on a Utilitarian approach to valuing work then, is making that work visible. Making yourself and others aware of the work that you do and your accomplishments. Gargi suggests a few ways of doing this, but the one that I found most useful was the use of a “Brag Document”. This is just a simple text document which you update every time you do something that you personally felt brought value in any way. And importantly, it’s something that you encourage others to do to keep each other accountable. Gargi suggests doing things like setting up times where you and your friends or coworkers will update your brag documents together and remind each other of your accomplishments.

Another theme of the talk was that once you reach some measure of success, you make sure to invest time bringing other people with you. Spend time sharing your experience with others and finding ways to empower the people behind you. Reading through my notes now, I feel like there were so many more things about the talk I’d love to mention, but I’ve already said enough! Go have a watch if you’re interested!

There were two talks that were really aimed at, or from the perspective of, leaders in the industry. “Level Up: Developing Developers” by Melinda Seckington and “Company Culture, Performance Reviews & You” by Ruth Lee.

Level Up: Developing Developers” was a talk discussing what lessons we could take from Games UX design and apply it to the user experience of Developers joining and progressing through a software organisation. Melinda made the topic of onboarding, growing developers and providing them with feedback, compelling and easy to understand. I definitely recommend this talk for people interested in thinking about how we can better create structure for making sure that the developers we’re bringing through our organisations are supported.

Company Culture, Performance Reviews & You” was a talk aimed at newer entrants into the technology industry, giving advice about what you can take away from the results of performance reviews. Ruth discussed that different organisations prize different traits depending on where that business is in it’s own journey, based on her experience giving and receiving performance reviews. I found it really interesting to consider my own journey, and think critically about what traits I might want to look out for and help the people I manage grow.

Networking

The last part of the day was reserved for my most dreaded of activities; networking. I know, I know. It’s important to do. And even more crucially, it’s awesome to meet a bunch of like minded people who you can discuss ideas with. It’s a great way to grow and not end up in an echo chamber.

But I am terrible at networking.

That being said! This time my friend set me the task of doing some. So we did. We spent some time just chatting to various people about their roles and the talks. It really helped that the conference was so welcoming and accommodating to all kinds of people. Several of the speakers suggested ways to make the networking space more accessible, or gave tips on ways to break the ice in a non-threatening way.

I ended up having a lot of very cool conversations, and I’m really glad I forced myself to give it a go. As I sort of alluded to in a previous blog post, I’m still getting comfortable with my as a Technical Lead. I tend to gloss over the fact when introducing myself. But it’s something I’m trying to own more, so I set myself the challenge of introducing myself with my full title at least once. Next time, I’ll see if I can talk to a couple more people!

With a number of well spaced breaks, including one for a catered healthy lunch, the whole day was well organised and professional whilst feeling personal and welcoming. You could tell the staff of the conference (a very small team!) genuinely cared about the people and speakers that attended. I really enjoyed my time there and have already started taking some of the ideas from the talks away in my own day to day activities.

For more on the conference, check out this year’s web page: https://2020.yougotthis.io/

And hey! If you take one thing away from this post, I hope it’ll be to go out and make your own brag document. I have been trying to keep one up to date since the talks, and it’s great to have something to come back to and really see what it is I value; and that I am accomplishing a reasonable amount over the weeks.

Becoming a Technical Leader

In the middle of 2019, there was an opening at my job for a Development Manager position. Rather than take the role as described, I made a request to change my role to Technical Lead instead. I explained what I felt that meant (as my company had never had someone with that title before) and discussed it with our CTO. I felt that our organisation needed someone who had a responsibility to building a strong technical team, and to ensure that our day to day practice was as good as it could be. And I wanted to take more responsibility for that kind of thing. I felt that the Development Manager position was also important; someone responsible for the department and how it interacts with the rest of the company at a high level. I just didn’t want that to be my job!

Very luckily for me, there was someone else in the company who felt the same way but approached it from the departmental side. In the end, the role was split in two and I entered my current role as R&D Technical Lead. This was great! I had been allowed to take a position which let me make the changes I felt were important for the Development team. The company felt it was valuable and let me try.

There were two problems though. First of all, I was stuck on a big project which needed to be finished, but that was a legacy code nightmare. It took up almost my entire year to get through it, leaving very little time to think about other things. And secondly, I had no idea what I was doing. I’ve not been a Tech Lead before, and as a Developer, I’m still on the younger side. My experience is in developing for and maintaining a large legacy codebase in C++, and leading projects within that framework. This was a whole new ball game. I had a lot to learn.

Drawing of me with my back to the viewer looking up at two looming towers with the AWS logo on them
I drew this in 2018 when I was feeling out of my depth at a conference. I still feel out of my depth pretty often!

Fast forward to now, January 2020.

I have a lot to learn.

As I mentioned, that big project took up most of my year. No time to work on this role directly. But! That project has ended and I’m now in a position to think about what being a Tech Lead means to me and start my journey to be as good at it as I can be. So I thought I’d try to share as much of that as I can with you all, because learning together will be more fun than sprinting into the darkness alone!

What is a Tech Lead (to me)?

Early last year, I made the decision that I wanted to try to be considered a Technical Lead by the end of 2024. As part of that, I had to put a lot of thought and research into what people consider this role to be. There’s a lot of scope to move around in the Software Development industry and the structure and criteria of a job role are entirely defined within the context of the organisation that it’s a part of. This leads to an interesting issue where lots of positions with equivalent responsibilities have different names. This can make it tough to figure out what it is you’re trying to achieve, and also makes the conclusion you come to somewhat of a personal opinion.

For me, I think a Technical Lead can be described as the following:

“A Tech Lead is a Software Developer who is responsible for ensuring the quality of the technical output of their team is as high as it can be.”

There are a lot of things hidden inside that definition for me, and it’s still evolving as I learn more. So let’s break down that sentence.

“A Tech Lead is a Software Developer…”

This is very important to me! A Technical Lead to me is someone who is actively involved in developing solutions. Writing code and designing software. This is the day to day work of the team. If you aren’t aware of what that’s like, then you can’t be sure that it’s being done in a way that can create the best experience and best output, because you won’t know what the practicalities of creating that output are.

One of the reasons this role appeals to me over Development Management, or even CTO type roles currently, is that it stays close to what I enjoy; writing code. I don’t have to make excuses to justify that work. It’s core a part of the role.

“…responsible for ensuring the quality of the technical output…”

To me, this is where all the ambiguity lies. But it’s also where all the hidden gems are!

Ensuring the quality of technical output means so much to me. If you’re experiencing the development process on a day to day basis (as I believe you should be as a tech lead) then you’ll be able to experience things that slow you and the rest of the team down. Technical things in your solution is the most obvious thing to a developer. Framework improvements, refactoring, or architectural clarification. These are great and useful things to do that improve the technical output of the team by making the code that you should be writing clearer. And as a senior technical staff member, I’d be lying if I said the coolest bit wasn’t being a part of designing and implementing the code that the organisation needs. But these may not always be your pain points! This is about the quality of the team’s output, and the team doesn’t just throw out code into a void. It works as part of a larger organisation, or at least as part of a larger purpose, which means interacting with other functions to deliver what they need. You can write a bunch of fancy code, but if it doesn’t do what your stakeholders need because there was a breakdown in communication then it’s not very useful!

So to ensure the quality of the output of the team, you may need to look at your processes and find what’s slowing you down. Does it take too long to log and work on issues? That’s going to lead to less detailed issue reporting, which leads to more opportunities to get the work wrong. But as a Tech Lead you have the opportunity to deal with this.

Yet another way to ensure quality is about the people in the team. The best work comes from people who are comfortable and content. Not every member has to be a super passionate, high performing power house. That’s not realistic (and often not a healthy dynamic!). But to ensure the quality of your team’s output, you need to be ensuring that they’re growing, and in a position where they aren’t worrying about job security, or being made to feel unsupported or unwelcome. These things also come in the realm of your care as a Tech Lead, because they’re things that can drop the quality of your team’s output. Which is great! Because you should care about that kind of thing at every level, but as a Tech Lead you have the ability to try to do something about it.

Finally, a Tech Lead is responsible for all of that. If you’ve truly been given a responsibility, then that means you should also have the tools to be able to fulfil that responsibility. That’s great! It means that, hopefully, your organisation has given you permission (within reason!) to be able to make changes for the better. To spend your time on things that you believe will generally lead to a better working environment. That’s pretty cool!

“…of their team…”

This is the final part of that definition that I’d like to mention in more detail. A Tech Lead is the leader of a team. This means doing your best to exhibit leadership skills. Setting boundaries (to allow others to do the same), leading by example, and often times it can mean managing people. This is often the part that fills people who come from a purely technical background with the most trepidation. People are complicated. They’re unique, and messy, and interesting. And depending on what other roles exist in an organisation, it may be up to a Tech Lead to be responsible for creating an environment where those people can be their best selves. Even if there’s a dedicated manager or Team Lead to go alongside the Technical Lead role, there will always be a component of leading the individuals and building a team that’s conducive to the work you need to do. And in my opinion they should be one of the major considerations in driving your decisions.

Simple pencil sketch of a group of people high fiving

As you can see, a Tech Lead can be responsible for a lot of things. Which means learning a lot of skills in order to be able to do it well. I had intended to add the skills that I think I’d like to prioritise in my journey to be a strong technical leader, but I think this blog post is already a bit long! So I’ll leave that for another time. I’m sure you can see how amorphous it is as well. It depends on the needs of the organisation, your personal aspirations and temperament and the skills of your team. But it’s a great opportunity to build things that are interesting and a joy to work in; software and teams!

What resources have I started using?

As part of this journey, I started doing research on what people consider the role to be. Some of the following have been useful to me. Hopefully they’ll be useful to you too.

Pat Kua’s BlogDefinition of a Tech Lead – In the first developer conference I went to I saw a talk by Pat Kua which lead me onto his blog. He’s made it a focal point of his career to describe and empower the Tech Lead role. I highly recommend his blog and talks if it’s something you’re interested in!

The Lead Developer Conference – The Lead Developer Youtube – One of the conferences that I’d love to attend is The Lead Developer in London. This conference is specifically aimed at technical leaders, new, old, and aspiring to help them build high functional and content teams. All their talks are provided free on their youtube and I can recommend them!

Where do I go from here?

Finally, I thought I’d go through what my first steps on this journey are going to be. Personally, I’ve found an affinity for leading teams. It’s something I’ve had a lot of practice in, and building teams is something I enjoy doing. But as I said, a Technical Lead is a Software Developer first. And with only 6 years of professional experience, the technical aspects of the role or something I personally feel I want to be more confident in.

I have been developing in a C++ application for most of that career, but more recently I’m designing a system that will mostly be written in C#. As such, I’d like to really get C# knowledge under my belt.

C# Certification – MCSD 70-483 Exam – I’ll be starting the year by getting the Microsoft C# Certification as a way to guide my learning, and as something that I can use to prove that skill exists.

Attend conferences – I have been lucky enough to go to a few conferences during my career and each one was a pretty amazing experience. I was too nervous to talk to anyone else, but I feel like they’re a huge opportunity to learn, and inspire learning. So I’d like to attend at least one more conference this year.

Write Blog Posts – There is so much to know in tech (and in the world at large) and I’m always terrified my sieve like brain is going to forget all those amazing pieces of information that the studying, reading, practice, and discussing can give you. So to do something about that, I want to try to do more technical writing and personal ruminating.

So that’s where I’m starting. And that’s what I’m shooting for. I hope you’ve enjoyed joining me as I gather my thoughts on this. I’d love to hear your thoughts, experiences, and aspirations!

Comment below, feel free to share the article, or get in contact with me.

Photo of me in my study

Trying out Node JS with Synaptic

A few weeks ago I subscribed to the Javascript Weekly newsletter as an attempt to immerse myself more into the frontiers of software development! It worked because I ended up with a list of really interesting articles that I never would’ve read otherwise. I’d recommend it! Check it out here.

One of the articles which caught my eye was this lovely tutorial on Synaptic.js: How to create a Neural Network in JavaScript in only 30 lines of code. As an applications developer, Javascript seems really exciting so I wanted to know more, and this tutorial seemed like a really small piece of code to do something quite cool. So I dove in.

The Tutorial

I worked through the tutorial at various points over the course of a day, just reading through the article and retyping out the elements; making a mental note as I went along. It was a really cool and surprisingly simple experience. The library’s website, Synaptic, gives a slightly more exciting demo of the possibilities of the library, with a neural network for traversing a screen as a group. It was the first time I’ve really tried to look into anything javascript specific that wasn’t basic website functionality and it was pretty exciting to see something relatively complex expressed so simply.

SynapticCapture

The synaptic page, with the demo up and running

You specify neurons and connect them up in layers to form a network. Then you activate and backpropagate that network with two simple calls, helpfully named activate and propagate. I still need to spend some time understanding react, node, angular and things like that. But it’s a nice introduction. But I had a problem. I’m a complete Node newbie. So I needed to spend some time working out how to run javascript with libraries from Node to be able to test.

Running Node Apps

So, I bumbled about for a while trying to work out what I’d need to get this to run. The documentation for synaptic actually does a really good job of telling you once you have the context to understand the things its saying. And it didn’t take me that long to find it out.

First things first, was to install Node js. The Node site is real simple and installs npm at the same time. Npm is a package manager for javascript libraries. What that means, practically, is that people will upload their modules to npm and, when you have it installed, you can type a single command in the terminal to download all the library files to your computer. No searching for links. No find the right versions or distributions. Just a line on the command line. Nice.

So once Node and npm were installed, I did some reading up and rememberes about client and server side code. Node JS is a server side technology. That means that scripts you write are naturally meant to exist on the machine where the web page lives. For Node, that means you can pretty easily run the script on your machine using the terminal. On the command line I just typed

‘node E:\Personal\xorNeuralNet.js’

This should work. But I got nothing. It took me some puzzling before I realized I had Node but I didn’t have the Synaptic library code! The following npm command installs it for you; “npm install synaptic –save” and you’re good to go. You need to provide the node command “require()” to inform the runtime that it needs to grab the Synaptic module. Rerunning the node command worked like a charm!

NeuralNetCapture

But this was only half the battle. I wanted it running in my browser. This is a little trickier (though still pretty darn easy as it turns out). Because Node is a server side technology, your browser isn’t able to compile it, because that’s a client side technology. But! Libraries like Synaptic can be minified/browserified to javascript and the browser CAN run that. In fact, this is even distributed with the lirary itself. Convenient!

Running in the Browser

So to get it running in the browser (I use chrome), I had to create a simple html page:

NeuralNetHTMLCapture

Which includes the Synaptic library code ahead of my script. The script I wrote did need a slight modification though. The “require” line is actually a Node function, which means the browser can’t interpret it. But, we’ve already included the Synaptic library from our script html tag, so we actually don’t even need it. A quick delete and a refresh and I had the code running. You can see this by right clicking and selecting Inspect. The panel that pops open has a tab at the top for console, and with that open you should see the output from the script if all went well.

So there you have it. My experiences with running Node for the first time, using the Synaptic library. I learnt a lot from doing it. And for any beginners out there, I hope this helps!

Looking into Vim

Vim

Vim vs Emacs is one of the big fights in the Software Development vanguard. At least, apparently it is? I had only recently heard about Vim and Emacs tangentially from podcasts that discuss more of the recent news in the software world. I ignored it for a little bit, assuming that if I needed to know the knlowledge would find me in due course. But when it had turned up in most of my listening collection, I decided to find out what in the heck these things are and why everyone seemed to be fighting between them.

So What are Vim and Emacs?

Vim and Emacs, it turns out, are programs which allow you to navigate and edit text documents. At least, they are until you become fluent. In their post, Why I Use Vim, Pascal Precht describes the learning curve more like scaling a mountain and sliding down the other side. And from what little I’ve tried, the description seems pretty accurate. They’re powerful text-based editors which allow you to interact with the file system and traverse, search, and edit documents all without leaving the program or even having to touch the mouse. They can serve as an alternative to a visual IDE in the software development world. The intention is that, without the need for the more graphical elements of modern IDEs, the terminal style editor can be faster and the editing of code can be more efficient due to being able to freely switch between contexts of use with just the soft slap of a single key.

I had done a little bit of research but, to be honest, I still wasn’t getting it. So I thought I’d just give it a try.

Trying it out

Downloading Vim is pretty quick and the install process is simple. I work on Windows for the moment, so that’s what I installed (and also let’s you in a bit on the super graphical world I’m coming from). Opening up the application presents you with a black, terminal-esque window with a bunch of blue tildes. The classic blinking cursor sitting idly, awaiting the divine keystrokes of a User; with a capital U. A short message lets you know that typing :help will bestow upon you the knowledge of the ancients, the commands by which you can control this arcane console. Like an explorer in the midst of a magi-technological discovery, you imagine the Rosetta stone that this must be; the secret to untapped power and your key to understanding. What appears is a wall of text referencing other documents which, if I had read in full would probably have told me everything I needed to know. Except that I had no idea how to navigate it. The help file is extensive and a little daunting. Honestly, I actually set Vim down for a bit at that point. The problem was that I just had no idea how to get started and, since I wasn’t really sure what it did, I didn’t know what problems to apply it to.

A week or so later, my curiosity had not abated. I was sure that if I dug a little further the reason that everyone cared about these, seemingly unwieldy, text editors would become clear to me. So I did what any knowing professional would in my shoes. I googled it. I discovered OpenVim.

VirtualVim

Using a virtual vim terminal, the site walks you through your first few commands of Vim. It is by no means exhaustive. It’s a short and simple tutorial of basic editing and navigation. But that’s enough. With that short sample I became an apprentice sorcerer. The runes had begun to make sense and I could feel that there was something a little more powerful at the end of this journey. I was excited to explore more; to gain more knowledge. So I used it for a real life problem. I was not fast. I was not a super human hacker now. But there was something intuitive about the mode switching and navigation without having to leave the keyboard. It took me a while to realize that that was what I liked about it. What I still like about it. Using Vim made me realize quite how much you could do without having to touch the mouse at all, outside of Vim as well. A lot of the programs proponents say, and I haven’t been able to tell how serious they are about this, “why would you ever want to leave Vim?” But as a mere apprentice sorcerer, there’s plenty of tasks I still need to do away from that editor. And using the mouse felt natural. But there’s something really fun about being able to traverse you’re whole machine without lifting your hands more than an inch from the keyboard. I don’t actually think it made me faster or better. But using Vim forced me to think about what keyboard shortcuts my programs and desktop offers. And I found that I was really enjoying it. It felt much closer to putting what I wanted to do into action without any barriers. I’m not saying everyone is gonna have this experience. The mouse hand is a useful tool and it can help you to think. But I can see why people use Vim. With the right start and if you can keep the commands in your head for long enough, then it can become a really easy way to traverse text documents. Does it replace an IDE? I’m not sure yet. There’s a lot you need to do in order to be able to set it up with any of the features that modern IDEs have out of the box.

There is a best of both worlds solution. It’s possible to install Vim plugins to some modern environments such as Visual Studio and CLion which place the navigation and input aspects of Vim ontop of the functionality provided by more modern development tools. This seems like a pretty promising step to me in terms of development speed. So I might give that a try at some point.

If you’re interested, here’s where to get Vim and some good resources on the commands available for getting started.

Vim Website – The website for downloading Vim

Vim Adventures – A little adventure game based around Vim commands. A fun way to get used to the basics.

Vim Cheat Sheet – Pretty dry but really useful during learning. Just the basic commands one after the other.

5 Favourites: Podcasts

Podcasts have been a staple for me for years. Since I was in my second year of university I can remember having a love for them and I have fond memories of escaping from my life into other worlds during long cold walks to my part time job. They’re pretty brilliant. And with the internet so readily available and data cheaper than ever, you can find all sorts of podcasts, about all kinds of things at various production values. Today I thought I’d share some of my favourites with you!

As usual, I don’t claim these as the best podcasts. I don’t even claim that they are my absolute favourites. They’re just some pretty great ones that I picked out. A small caveat here, my definition of podcast is going to be pretty broad here. I really mean any serial, audio only media. This could include things like audio dramas and weekly web-radio shows. But, without further ado, here we have:

5 Favourites: Podcasts

Critical Hit

criticalhit

Critical Hit is where it all started for me. I was in my second year of university and I was feeling pretty rubbish in general. It wasn’t a great time in my life. But I had finally managed to do something I’d always wanted to do and that was play Dungeons and Dragons. I’d picked up the 4th Edition Red Box and got my friends to play and it was awesome. So much fun. But it wasn’t enough. I wanted more. More to do with DnD. More time spent playing. Or at least in that world. So I googled it. And one of the things that came up was the Critical Hit Podcast. Revelation!

Critical Hit is a real play podcast which begins with the game master, Rodrigo Lopez, introducing the game to the host, Stephen Schleicher, who plays an Eladrin wizard just graduating from wizarding university. What follows is literally hundreds of hours of world building, real honest character progression, dnd game explanation and friendly banter. They cover combat pretty explicitly and thats great. I learnt how to play DnD long before I got to practice much. But what I come back for is the story and the characters and the people. The group is wonderful and friendly. Rodrigo weaves this utterly mind boggling story through difficult moral choices and moments of light hearted fun, all the way through to haunting and painful moments. I won’t spoil any of it. But if you’re at all interested in DnD, give it a try.

Decoder Ring Theatre

DecoderRingCapture

I discovered Decoder Ring Theatre through Critical Hit. One of the episodes CH has is a mail bag and on one such episode, the players were asked to list some favourite podcasts of theirs. Decoder Ring Theatre was mentioned, so I checked it out. And I am so glad I did. Created by Gregg Taylor, Decoder Ring Theatre is the host of two main series’. The lead series is The Red Panda; a show done in the style of a villain of the week type super hero show that follows the hero of the same name and his spunky sidekick The Flying Squirrel. Together they fight various forces sources of strife based on the time period, which ranges from the 30’s era depression on through World War II, mixed in with a little bit of magic, mystery and mayhem. This series is good fun, but it is not where my heart lies in DRT. That belongs to Black Jack Justice.

Black Jack Justice is a detective series following partners: Jack Justice and Trixie Dixon, girl detective. Set post-war in “the big bad city”, the series takes the form of a case log narrated by the two main characters. The cases range from murder mysteries, to jewel heists and moral ambiguity is abound. The mysteries are fun and the host of side characters that you come to know is a bundle of joy in itself. But it’s the slow progression of the detective duo that really grabs me. They develop, as people do. Not with endless virtues but with flaws and the changing of tiny habits. You learn to love their catch phrases. The little details that make them them. Some of the stories are small and a little silly. Some have a harsher tone. But I’ve enjoyed listening to them all for years.

Edict Zero

EdictZero

I honestly have no idea how I found it, but I am so glad that I did. Edict Zero is a beautiful podcast. That might sound like an odd way to describe a podcast, particularly when I tell you that it’s a sci fi special investigation audio drama, in the same vein as the X-Files. But my gosh is Edict Zero a beautiful podcast. The attention to detail is amazing. I have listenes to the whole series through multiple times, and every time I connect a new dot or understand the foreshadowing a little better. I have no idea how the story is planned but there seems to be reasons for everything and they’re revealed organically. Existential themes are everywhere and I think the use of the sounds to convey sequences without any conversation is excellent. Like critical hit, the story builds episode after the episode. It’s a little slower, designed for intrigue and steady progression; but it has it’s fair share of action too. I look forward to every episode, which are largely released on an “as soon as we can” schedule. If you love detail, mystery and paranormal style investigation, Edict Zero is well worth a listen.

The Once and Future Nerd

TOAFNCapture

The Once and Future Nerd is another staple of mine. But I didn’t take to it quite as quickly as the other podcasts in my list. Another audio drama, I found The Once and Future Nerd after having finished a run of Critical Hit. I wanted a new Dungeons and Dragons podcast to listen to, but I was interested more in the story than the DnD. Google delivered again with TOAFN. It is not a Dungeons and Dragons podcast though. What it is is a high fantasy audio drama set in its own world, with its own takes on some of the classic fantasy races. It follows the journey of a group of children thrown together into an unknown realm, as they discover themselves and confront their inner demons.

When I discovered it the series had just started, and I listened not knowing what to expect. It hit some of the tropes hard and I wasn’t sure about how the characters treated each other. I ended up stopping for a while. But it remained in the back of my head for months afterwards. There was something enticing about the ways fantasy realm and the mysterious prophecy that geys introduced. So I tried it again a little later. What a great decision. It turns out that the things that I was worried about are actually deliberately worrying and get used as ways to explore societal issues with the fantasy world as a metaphor. I really enjoy the tough questions and character perspectives explored in the series and, to add to that, the moments of tension are even greater because of the realisation that the situations are somewhat analagous to real world issues. I think it’s well done and I really enjoy it.

Geek History Lesson

GHL

Geek History Lesson is relatively new to my podcast portfolio but it’s one that I’m really  enjoying. A part of the Major Spoilers podcast network set up by the previously mentioned Stephen Schleicher, Geek History lesson is a show which runs through the backstory and histoy of various pop culture characters organisations. It’s hosted by Jason Inman and Ashley Victoria-Robinson, and the main source of characters is from comic books. This is where I think the series does it’s best work, as the hosts are really knowledgeable and clearly excited to tell you about the wonderful world of whoever they’re looking into that week. Ever wanted to know about X-23? Spiderwoman? Psylocke? There are full episodes devoted to these characters and more; covering publication history, fictional history, recommendations, interviews and more. They cover other pop culture such as TV shows like Game of Thrones as well, but I haven’t listened to much of it. The show is an excellent way to cover large swathes of the, sometimes confusing, world of comics and it’s totally free! Give it a try if it sounds interesting.

Special Mention: Sega Mixerdrive

Though Sega Mixerdrive didn’t make my top 5, it will always have a special place in my heart. A part of the Radio Sega family and hosted live by Rexy, a fairly well known remixer and musician, Sega Mixerdrive showcases great remixes of Sega game tunes. I really like the show. It helped me through my degree and I still listen to the archive today. If you’re into videogame music, give it a try!

Well, there you have it! As I said before. These aren’t all my favourites. There really are a wonderful amount of podcasts out there. These are just the ones I couldn’t not put up there. I didn’t even get to mention Welcome to Nightvale! Whatever subject interests you, throw it into google, chuck the word podcast on the end and see where it takes you. The world of radio is born again in the podcast.

Let me know your favourite podcasts in the comments! Or send me an email!

Using AutoHotkey

AutoHotkeySiteOver the past couple of months at work, I’ve been beginning to notice all the little things that I need to do to develop. Things like running multiple applications to test; navigating folders in cygwin to run build scripts; or even adding template code for things like debugging. They never seemed like much. Just a part of the job that takes the time it takes. But, as I’ve gotten more used to using my keyboard to navigate my machine, I’ve had to think about the things that I do in a new light to try to see if there’s some way to replicate that without using the mouse. So all the jobs that had just become muscle memory for me began to really show up.

Now, there’s nothing wrong with being comfortable with your methods; whatever works to get you producing the stuff you want to be making. But if you’re feeling like you want to find a way to do things a little faster, or you’re tired of doing some actions a bunch of times, or you just would like to try some scripting then I may have just the solution for you. It’s called AutoHotkey and I think it’s really cool!

What Is Auto Hotkey?

AutoHotkey is a program designed to make make scripting events on your computer simple and hugely flexible. By entering a triggering combination and a series of events to perform in a simple file, called a .ahk, and then loading that file into the autohotkey program, you’re able to invoke a series of potentially complex behaviours with a single combination. This can become a hugely powerful tool for saving time. It’s also super fun! It’s another one of those tools which starts to make you feel like a techno-sourcerer.

By writing short snippets, you suddenly have the power to automate all the tedious or error prone things that you had to do before. Got a file path you have to type in a lot? Make a hotkey for it! Need to copy files from one place to another every three hours? Make a hotkey for it! A piece of template code you write a lot? Hotkey. You get the idea.

Getting Auto Hotkey

Getting auto hotkey is really simple. Just get on to http://www.autohotkey.com/ and go to the download link that you’re presented with. Grab the latest version, because it’s more fun to live life on the edge! Run the installer and you’re good to go. What you’ll have access to is a desktop application for Autohotkey which will open up a  reference to the autohotkey scripting language.

AutoHotkeyHelp

It’s pretty unassuming, as far as references go, but it hides a wealth of information. The fine people at Autohotkey help you out with a nice opening page, which gives you some first steps to take in having a look at the scripting language. And the search box is super robust! I tend to just think of kind of what I want to do, tap it in there and see what comes up. Usually you’ll get a stream of hits and I’ve not yet had a problem I’ve not been able to find in there, with a bit of rooting around.

I’d advise actually going through the tutorial in there, which is thorough, covers what I will cover here and goes into more depth. But if you want it all on one page, feel free to keep on reading here and then go back to the AutoHotkey Help when you want to dive in deeper.

The application doesn’t actually do anything other than provide access to the reference. What you really need the installer for is for the ability to load the autohotkey scripts that we’ll cover next.

Writing Your First Hotkey

This is all very well and good, you’re saying to yourself, but I’m no cyber-mage just because I’ve got some book filled with words. Well let’s get into the fun stuff then, shall we?

Writing your first autohotkey script is easy as ready made pie; all you’ll need is your favourite editor. Below is the simplest of simple autohotkey scripts:

AutoHotkeyTutCode1

The script is made of three parts: the initiating key combination; the instructions to carry out; and the return statement.

The initiating key combination is exactly that. It comes in the structure of keyboard keys that need to be pressed all at once, followed by two colons and it tells Autohotkey what combination of keys need to be pressed in order to perform the instructions on the subsequent lines. The letter keys are as is but, because you’re probably not going to want your hotkey tp trigger every time you press the ‘d’ key, I’ve added an augmentor to it. The ‘^’ represents the control key (on windows). The colons are just there to signify the end of the key sequence. So that first line means “Autohotkey, please do what comes next every time I press ‘ctrl’ and ‘d'”. We want to be polite to our chip based partners in crime.

The second line is where we tell autohotkey what we want to do. In this case, I decided that I hate having to type all those pesky letters every time I want to log a debug message in my C# scripts for Unity 3D. So I want a hotkey that just writes it out for me. To do this I’m using autohotkey’s ‘Send’ command, followed by a comma. The comma is optional but I find it makes the distinction between command and input super obvious. Then, after that, is the string I want autohotkey to type. This is an important distinction! Autohotkey isn’t taking you’re string and pasting it into the editor. The ‘Send’ command explicitly sends key events for each key you specify, one after the other. That means that if you click somewhere else, autohotkey will start throwing key presses into that new program or new space! It also means you can replicate key presses to any program, this means you could potentially traverse your machine with a hotkey! There are ways in Autohotkey to automate things in the background, with conditions, with loops, with user input; the list goes on. It is a playground of wonderful things to try. You can have as many instructions as your require beneath your intiating key combination, as long as its before a return statenent, so keep going til you find what you need.

Finally, the return statement is the last line needed to finish off your script. All the return statement does is inform autohotkey that there are no more statements to execute for this shortcut. And there you have it! Once you’re happy with your script, all you need to do is double click the file to load it as the active hotkey script and you’re good to go! If you’re loading it for the first time since startup, you won’t see any change. If you want to confirm that auto hotkey has your script loaded, just double click the file again. You should be gifted with a pop up which will inform you that you’re about to replace the active script. This is because you can only have one autohotkey script running at a time. But don’t worry. You can add as many hotkeys to same script as you can remember key combinations for, provided that you have a return between each key combination line.

Combining It With Batch Scripts

I’m sure you’re brain is aflame with the fires of imagination! Your hands busy forging the combinations of which your personalised spell book will comprise. But there’s more! One way to increase the power of your hotkeys is to use them to run and initialize batch scripts.

For those who might not know, batch scripts are another and probably more powerful way to automate parts of your workflows and life in the computing realms. Honestly, I’ve barely scratched the surface on batch scripts so mine are all a bit small and manual still. But by using the ‘Run’ command in your autohotkey script, as shown below, you can call up a batch script or other program. This is one way to keep your hotkey scripts neat whilst also being able to automate complex tasks.

Also shown is the ‘SetWorkingDir’ command, which sets the context for all the following commands until the next ‘Return’ statement. Because this command is a little more serious, I’ve added the ‘!’ key, which represents alt on the keyboard, to the initiating combination too.

AutoHotkeyTutCode2

 

Well! That’s it! I’ve found this to be a really fun and powerful way to increase my productivity without having to spend a huge amount of time learning things. Autohotkey is massive and there are plenty of things to try out. So if you find something that you have to do often, or that you’d rather not do manually, consider an autohotkey script. If you found this useful, or thought something could’ve been done a bit better, then please let me know.

Have a great day everyone!

5 Favourites: Webcomics

Web Comics have been an amazing concept to me ever since I was in my late teens and really came across my first ones. I wouldn’t really class myself as ‘into’ comics. I enjoy the history of comics. I love hearing about what Marvel and DC characters have done over countless volumes. Me and my Dad managed to get together a pretty reasonable manga collection. But I’ve read surprisingly few. And I’m a pretty casual reader by a lot of standards. With all that said, I still have a massive crush on comics. Webcomics in particular. I have attempted to start web comics a bunch of times and even managed one for all of two months. To me they lowered the barrier to entry that the big comics had, the price. It’s a little haven of the internet where exceedingly hard working and passionate people developing wonderful ideas exist. They’re not all gems. But I’ve often lost sleep upon finding a new great web comic and not being able to stop clicking the next button. I’ve been known to writhe in a little bit of anguish when I get up to date with a great one.

That’s why I thought I’d write a blog showing off some of my favourites. I’m not saying they’re the best on the web (because that means different things to different people and the comparison is kind of weird y’know?). They’re also by no means my only favourites, but they are a few of the ones I check every day, excited for the next nugget of goodness. So! In no particular order here are:

5 Favourites: Web Comics

Questionable Content by Jeph Jacques

questionable-content
Questionable Content is a view in on the lives of a group of friends in a now-like alternate universe where there are also sentient AI’s and anthropomorphic computers. But the whole thing is wonderfully ‘normal’. It’s just a group of people with their own problems and histories trying to work out how to live happy lives. It ranges from innocent fart jokes all the way up to handling serious issues like mental health, sexuality and how an alternate form of intelligence would be treated when integrated with human society.

For me, QC has a special place. When me and my Dad were getting into comics, this was the one he sent me to read and we’d talk about it when we met up. Even more, it’s an example of how hard work can lead to so much improvement. The complexity of the comic, both in terms of art work and story are wildly different to what they were at the beginning of the comic and you can watch both evolve as the pages go by. It updates every day, unless Jeph has real world issues that prevent it, and it’s been a staple of my mornings for a two or three years. If you’re looking for something with a bit of depth, wonderful characters and relatively close to home this may be one for you!

Modest Medusa by Jake Richmond

modest_medusa_by_jakerichmond-d793rhe
Modest Medusa follows the life of Modest, a young gorgon who ended up living in the toilet of a man named Jake who’s in the midst of an upheaval in his life. Jake adopts Modest and together they try to lead normal lives until people from the land of Yeld, Modest’s homeland, begin to encroach in the normal world. A lovely mix of the father/daughter dynamic with Jake and Modest and the might and magic of the kingdom of Yeld (and all the complexities it introduced between the two) have made this a regular read of mine for many years.

I originally found Modest Medusa on The Drunk Duck, where I hosted my own web comic at the time. The drunk duck was a site where any web comic could be hosted and updated (the website has since become The Duck Webcomics). The quality on there ranges across the whole spectrum but there are a huge number of gems to be found if you’ve got time to look. Modest Medusa, like Questionable Content, is one of those comics which grows along with the skill of the creator. The story and art have come a long way since the first pages and it’s wonderful to see it come so far and continue to improve. Modest updates Mondays, Wednesdays and Fridays. If you’re looking for an adorable, laid back read which still manages to throw some hefty emotion and excitement at times then Modest might be what you’re after.

Gunnerkrigg Court by Tom Sidell

gunnerkrig
Gunnerkrigg Court drops you right in the middle of the story of Antimony, a young girl going to Year 7 at school in the mysterious court. What follows is years worth of alchemy, magic, technology and puberty. This story is wonderful. Mysteries introduced early on are peeled back layer by layer over scores of chapters. The characters and story are lovingly crafted and again you can follow the art changes from the beginning to the end. When I started reading Gunnerkrigg Court I found it incredibly hard to stop reading each and every night until I made it to the end. I’ve read it through twice and the second time was just as enjoyable because of the nuance and the foreshadowing that you can pick up on.

Gunnerkrigg Court is dramatic and mysterious and wonderful as well as being innocent and joyous in places. Am I gushing? I’m gushing right? It’s a really great read so I highly recommend it! It updates Monday, Wednesday and Fridays!

Strong Female Protagonist Written by Brennan Lee Mulligan and Drawn by Molly Ostertag

sfp.png
I found Strong Female Protagonist more recently, when I was doing a search for comics recommended for feminists. It follows the life of a young woman named Alison who has super strength and invulnerability, as she tries to live a normal life after publicly giving up the mantle of being a super hero. It touches on issues with great depth and it doesn’t try to hide the ambiguities involved with those issues behind jokes or with the typical cure-alls found in classic super hero media. In fact it goes head on with those concepts and shows how hard it is to come up with solutions to complex moral problems.

I think that depth is pretty fantastic. The characters are similarly complex and the whole thing is drawn in a consistent and expressive way. Check it out! Strong Female Protagonist updates Tuesdays and Fridays.

Minor Acts of Heroism by Adriana Ferguson and Kristen Van Dam

maoh
Minor Acts of Heroism is a more classic feeling super hero comic than Strong Female Protagonist, with the exception of having a much more diverse cast of characters backed up by a knowledge of anthropology that adds something intangibly real to them. It follows 3 young people, each having super hero adult counterparts, who become friends whilst dealing with their own extraordinary circumstances.

One of the creators, Adriana Ferguson, played the character Trelle the Elf in the popular Dungeons and Dragons 4E podcast Critical Hit (to be featured on the upcoming 5 Faves: Podcasts post). It was through this that I discovered this great comic. It’s beautifully drawn and the interactions between the characters are lovely. It’s just this very day come out of hiatus and will be back with updates in March! The perfect time to jump in and get up to speed then!

Special Mention: Princess Love Pon by Shauna J Grant

princesslovepon.png
I said 5 right? I know, I know. But I couldn’t not give Princess Love Pon a mention. I was searching for Black Web Comics and this gem appeared to me. It is unabashedly a magic girl comic through and through. The power of love. The cutesy helper character. It’s all there in adorable pink tinted glory. But with a black girl as the main character! The comic is very young, so if the backlog on the other comics were intimidating this one might be a good choice. It’s lighthearted and low stress. And sometimes you just need that you know? Princess Love Pon is currently on a break as the next chapter comes together but I check back every day just in case.

So there you have it! Five of my favourite web comics and a little bit about why I think they’re so good. Check them out if any of those interest you and feel free to let me know of any web comics you think are great.

City Academy – Singing Taster Session

Last night I found myself sitting in a studio in North London next to three people, softly massaging our faces and humming, and realising how much fun I was having. This was the moment during my singing taster course where I made the conscious decision to let go of my inhibitions, quit being nervous and just give it my best shot. And I’m glad I did.

Singing is something that I do for fun around the house or in particularly noisy places where I’m unlikely to draw attention to myself. Apart from a few internet videos and a day of having my friend impart some of her knowledge from previous singing lessons on me, I’ve never really been instructed. It was just something I liked to do. Back in my teen years I was the singer in a couple of makeshift bands. The kind that got together for 3 hours, spend 45 minutes doing music, an hour working on the band website and the rest of the time playing video games. But still. There were some local gigs and things like that and it was all good fun. I’m not great at it but I’m not awful, though my song selection is pretty limited as my friends can attest to. It’s been something I enjoy doing for a long time and recently, as part of the Edventure mentality, it’s been in the back of my mind to try and get better and maybe meet some people along the way.

I searched online for local singing lessons and found a few sites. The one that stuck out to me most was that of city academy. They have a range of courses starting with one off taster sessions, through beginners and up to advanced, genre specific courses. It looked friendly and they were group classes, which sounded like a perfect way to maybe meet some new people as well! I mulled it over for a few days but eventually I dove in, ponied up my £15 and signed up. A week of nervous excitement ensued and then it was the day in question. I hopped on the train from Weybridge up to London Bridge and then onto the 341 up to the Sadler’s Wells Theatre near Angel tube station. A quick wander up to the high street to see if I could find a USB plug (as my phone had died and I wanted to get some pictures.). No luck! (darnit). And then I found my way to stage door where the classes were being held. Signed in and then walked into the Kahn Studio to begin my adventure into the world of singing.

I walked into a small room, with wooden floors and a set of chairs facing a small piano in the corner. Behind the piano sat a bright looking young man; our teacher, Elliot Clay. He was talking to a couple sitting in two chairs who were to become my peers for the next hour. I found Elliot to be exceedingly warm and friendly, the perfect person to have teach a taster session for something which can create anxiety like singing. He greeted me as soon as I walked in and we had a quick chat to make us feel comfortable before jumping right in. I won’t go into huge detail, but Elliot’s teaching style is very much grounded in the science behind the voice. What creates sound. How to train the appropriate muscles to produce better sound. For me, this is perfect. The combination of the exercises with the knowledge about how and why those exercises are done was pretty great.

It started with a full body warm up. Loosening of the joints and the muscles by swinging and massaging. Rotating and light stretching. Slowly Elliot introduced sounds into the movements. But no real singing. Just the creation of sound to loosen the body and relieve tension. Tension is the greatest enemy of singing was one of the main sentiments Elliot imparted on us. The movements were wide and unnatural feeling but after a while I made a choice to relieve my mind of the tension it was feeling as well and just went with the flow. After that, there were vocal exercises with the piano intermixed with knowledge about how the voice works and why the exercises are important. The most interesting was the sirening exercise. Essentially running through a scale in a smooth arc using the ‘ng’ sound to focus the movement of the larynx. I found it tough at stages but it really helped make my voice smoother and clearer. Eventually we came to applying the vocal techniques to part of “Do You Hear The People Sing” from Les Miserables and we ended in a quick cool down.

All in all, I really enjoyed the experience. The class wasn’t quite as large as I was expecting, just the three of us and the teacher and I was kind of hoping for a few more and some conversation. But actually the class was all content, so there wouldn’t have been much time for chatting. But it was engaging, interesting and I felt it was a really nice introduction into trained singing. If you’re interested in learning to sing, I recommend Elliot’s class and I presume the other taster classes will be pretty similar. Check it out at the link below. I really enjoyed it and the hour flew past. I’m still considering the beginners course. We’ll see!

City Academy Taster Session

Into the World!

Writing a blog has been something in the back of my mind for a long time.
You can probably still find, scattered about the recesses of the internet, my previous attempts. In every attempt so far the aim was just ‘to write a blog’. I wasn’t sure why or about what. It was just a thing that people do and I sort of wanted to do that too. All those blogs fizzled out, as lots of things we try do. But it’s been in the back of my mind for a long time and now feels like a great time to give it another try.

If you’ve read this far I give you a wave, a smile and “cheers”! My name’s Edmund Lewry and I’m a software developer from London, England. I spent my formative years in Surrey with my family but moved back to London to go to university. I love things like comics, videogames and sports. And I’ve tried my hand at all of them with varying degrees of success. But pretty much everything is interesting! Expect to see a fair few blog posts on those kinds of things.

On that note, I want to talk about what this blog is about. I think it’s unabashedly about me. That sounds a little narcissitic to begin with but I’m starting the blog as a way to try to structure being more exposed to the world. I have struggled with mental health issues a fair amount and one of the things that I love seeing in the internet is self care. So in a way the blog is a form of self care. A way that I can share my experiences as I try to experiment and experience new things whilst adding a bit of structure and removing a bit of the fear from that. Now in terms of what you can expect to see, all sorts of things! Hopefully you’ll see me get better at writing blogs for one. But I want to try my hand at writing about experiences I’ve had so that people who find them can also try them if it sounds like fun. I want to try analysis and opinion pieces and videogames, comics and cartoons. I want to try to put my actual writing on here for advice and critique. And I’d love for other things to naturally grow out of it too. So it’ll be pretty varied but hopefully pretty interesting.

The name Onwards to Edventure kind of let’s you know what you can expect. It’s super cheesy and that’s something that I like but would never have chosen before out of some weird embarassment or fear of ruining my internet street cred (what the hell young me? That’s not even a thing). But it doesn’t make sense to try to build a reputation by ignoring stuff that you think is fun or cool or has merit. Right? Right. Time to be unapologetically me and get into the world.