How to easily introspect a JWT on the command line using OpenSSL and optionally Python for real pretty-printing.
Hi, I'm Jamie Tanna (he/him/his) , and I'm currently a Software Quality Engineer 2 with a passion for backend engineering, especially with regard to APIs and automation.
I've been building up my experience working in a DevOps environment while working at Capital One UK as a Software Development Engineer and am now diving into the details of how we prove out the quality in our software as a Software Quality Engineer.
I use my site as a method of blogging about my learnings, as well as sharing information about projects I have previously, or are currently, working on in my spare time.
I'm a GNU/Linux user, a big advocate for the Free Software Movement, and I try to self host my own services where possible, instead of relying on other providers.
Drop me an email at firstname.lastname@example.org, or using any of the other social links below.
Want to know why my site is www.jvt.me? Check out my post Why www.jvt.me?.
Below you can find my feed (h-feed), which includes all my content types on this site. If there's something in particular that you'd like to find, you may be looking for my blog posts, otherwise you can search for it.
This is one of those posts that sums up why the Nottingham tech community is so amazing - it's well worth a read, especially if you're not from Nottingham!
Ashley's talk was all about how to find out what you're really worth, and some top tips to make sure you're getting what you deserve. Ashley spoke about how she runs a workshop all about helping negotiate for a better deal, and how difficult it can be finding your worth when comparing yourself against a London salary. Since running the workshop, she's had no one come back to say that they've had negative reactions to negotiation. But if you're in a company that you're worried it'll be held against you (asking for something reasonable) then maybe that says something about whether you should stay there. Ashley's tweet the day before the event (https://twitter.com/TuffersTests/status/1136227900225708032) was used them to shape some of the talk, talking about the common worries people have with negotiation. Ashley mentioned that only 20% of women attempt to negotiate salary, but the number of men is much higher. I personally have in the past, as an entitled white-ish man who's been advised in the past to try it where possible. Instead of "trying to fix the women", Ashley wants to fix the system - a much better idea. Ashley noted that it's been found that women will negotiate if it's *explicitly clear* that negotiation is an option. Sometimes the company may just not be aware you need a raise, or some other compensation, such as pregnancy parking, because it's the first time they've been made aware of it. Because it can be uncomfortable to talk about your performance, we had an uncomfortable activity to talk about a recent accomplishment. We learned to talk about ourselves some more - because *it's not bragging if it's a fact*! Prepping for the negotiation is important, taking notes and being ready to talk about your worth. For the next activity, we were asked to write our salaries, and a generic job title (i.e. instead of Software Quality Engineer, I put automation tester) and threw them across the room. This was a good exercise to make people think about how they feel about what they get paid - a few people refused to join in, and most felt very uncomfortable. I didn't share it on the night, but I was quite happy with it - as a white-ish male I already have a headstart in confidence, and I'm also very well compensated at Capital One so am fairly proud of what I earn. Some of the interesting responses were "I need to learn to code!" from some non-tech folks, and "I don't want to share even with people I work with". A number of comments were along the lines "I'm not sure I'm worth what I'm paid". One view was that the role is quite vague, so "why am I being paid so much? What am I actually being paid for?". And another comment was "I'm not sure I should get paid that much, but other people doing the same job do, so why wouldn't I take it. It was interesting to hear someone saying how they were happy with what they get paid, in isolation, but if they were to find that "the guy next to me" gets paid more, doing same role, why wouldn't that be a problem. Ashley shared that in Nottingham, the average non-techn salary is £24500pa, but in tech it's £45000pa. This made a lot of people in the room be like "oh wow, why am I being paid what I am?" This again leads to the question - how do you know what you could get? It's all about keeping an eye on what market rate is by looking at online salary checkers, checking out jobs in your area, and asking friends, family and colleagues. When negotiating - remember not to panic! Take some time to think about the number, and _go away and think about it_. Do not immediately reply, and feel the urge to take whatever number it is. But what if they say no when you negotiate? Ashley had a great tip: > Ask for the criteria that they use to make a decision They will likely immediately panic and agree to the offer - yay! Because it was likely an opinion, lacking true reason so if they have to try and explain it they'll find it easier to rightfully buckle. But if they still say no, you could seek a compromise, or really consider your options - is it actually just time to walk away if they won't give you what you deserve? Somewhere else will, so maybe it's worth going somewhere who will appreciate you better. Ashley noted, on fear, that the physical manifestations of fear is very similar to excitement - so take it as a challenge and be excited by it! When having the conversation, be yourself, as the best way to convince someone you're an awesome person is to be that authentic, awesome person! It also really helps with confidence if you just be yourself. One of the questions was "what if it's in our contract that we can't talk about our salaries?" Ashley replied that you need to query this with your HR department and find out what the harm would be if you discussed it. One of the ladies I sat next to spoke about how her company (in Derby) did not want her promoting any meetups because it may expose them to recruiters. Both these defences are short-sighted because if someone wants a better deal or to move on, they will. Speaking about organisations where there are strict bands of compensation, where you aren't explicitly told you can negotiate, it's still worth a try. And if you're at the top of the band, try and find a role you can move into that has a bit more headroom. And obviously, money isn't everything - if you're enjoying the work, and able to live comfortably, that's the most important thing. *But* if you find out you've been underpaid for i.e. 5 years in that super enjoyable role, wouldn't you want to know? Wouldn't you want that money. This was a great, interesting, funny, and thought provoking talk from Ashley, and I look forward to my next opportunity to negotiate!
This is a great post by Jon about Firefox Containers and the power they can hold. I lazily use them as a way to have i.e. multiple email accounts logged in, or at work having several AWS accounts logged in at once but have also got some pieces in place to containerise certain privacy-infringing companies' attempts to track me.
I will not be attending.
Unfortunately this clashes with the Women in Tech Takeover Digital Lincoln (https://www.meetup.com/digitallincoln/events/261313886/)
I will be attending.
This will be the first time I'm attending Tech On Toast / TechFast, so I'm not looking forward to the early start, but Dan will make it worth it!
This is another post you really need to read, if you haven't already, as it makes you really think about the way you communicate. I know a lot of people who use the term 'you guys' as a gender-neutral term, but after reading this article it really helps persuade you that the term is actually not as inclusive as you think. For a couple of years now I've been making an effort to use gender-neutral ways to address groups, and I hope after reading this you will too.
As I've embraced indie post types, such as reposts, I've noticed that actually I've been using them wrong. Looking at https://indieweb.org/bookmark#Repost it appears I've been conflating a "retweet" on Twitter with a "repost", thinking they were the same. Alas, they are not, and it makes more sense to be a bookmark. I've since updated the posts using the wrong type and will get things right next time!
Being able to write semi-readable written text with technical terminology is a huge skill, and makes such a difference compared to not being able to write it. I've found that since blogging more, my written language has gotten a lot better, and significantly makes my job easier. I've worked with a number of brilliant engineers who can't explain themselves as well in written forms, which means commit messages and core pieces of documentation are difficult to understand. Remember that you're never going to be the only person reading something, so make your content well thought out, re-read it and ask someone else to read through it to check it's OK.
Burnout sucks. There are a number of signs to pick up on it before it fully manifests which this article talks about. Having gone through it in the past, it's not something you want to go through, and can have some severely lasting effects that are hard to come back from.
Tell Him is a really important post by Jameela Jamil - if you don't read this, I'm incredibly disappointed in you
This is an incredible read about a huge undertaking the Guardian took to migrate _two decades of content_ of migration with zero downtime - it's a great story and has a lot of great learnings in there
In every programming language, there is a linting tool that can help pick up on some common style issues. ShellCheck isn't one of those - it's so much more! I've been using it for many years now, and since it came into my life it's honestly changed the way I use shell scripts. There have been so many pitfalls that I've avoided falling into since learning about them (and adding ShellCheck to my Vim linting setup. This is a great read from Vidar, the ShellCheck author, about a case where it could've caught issues that caused the deletion of a production database!
How to use Ruby's standard library to decode URLs with a handy one-liner.
I will be attending.
Last week I replaced my OnePlus 3 with a Pixel 3A. Both Anna (https://annadodson.co.uk) and I have been thinking about getting a new phone for a while, but as both our phones were doing fairly ok, and we didn't want any unnecessary expenses, we decided to keep an eye out but not yet get anything. I'd originally heard about the Pixel 3A on the TechMeme Ride Home podcast (https://anchor.fm/techmeme-ride-home/episodes/Tue--0507---All-The-Headlines-From-Google-IO-e3v85p) which sounded really nice. But then when I saw both Ed George (https://twitter.com/Sp4ghettiCode) and Graham Smith (https://twitter.com/whoisgraham) tweeting about the fact that they had just got one, I was very interested. As respected Android devs, I see them both as having done the research and know what they're doing - so it meant that I didn't have to do as much research, right?? I could've waited, in all fairness, but Google did a deal where you got a Nest Home Hub, too, so it meant the phone was effectively £280 instead of £400, and we all know I love a good deal. Unfortunately that it still in the box, as is the Google Home Mini I've got, but maybe one day they'll make their way out - we're an Alexa household currently, but are looking at being multi-platform. So what are my opening thoughts, one week in? - The migration tool was pretty cool, especially being able to just connect up another phone and have it sync, but for some reason my Google Play Store decided not to download anything so that didn't quite work as expected - I had rooted my OnePlus 3 so I could get better privacy control over my device, but hadn't used much on the rooting side for a while, largely because Google are making it such a pain to do. I decided I wouldn't root this device quite yet, which means I'm able to use Google Pay - which so far I've done a couple of times and it's been pretty useful, but has just saved me getting my wallet out - Battery is much better than my two year old OnePlus 3, and the second day I had it I was tethering + playing music almost all day without it even running out of charge the following morning. Pretty decent! - I am however missing some of the convenience gestures I could use from the lock screen - turning the torch on quickly, and controlling my music - I'm a fan of the always-on display, especially as it prompts me with the upcoming calendar event - The fast charge seems to be on par with the OnePlus Dash Charge - again a big decided in whether I got it or not, as being able to quickly boost battery was very important - It has a headphone jack, so I'm happy - Booting is super speedy - not that I need to that often, but it's good to have! - I'm liking Android Pie, although I'm sad I no longer have the multitasking button so can't toggle apps as quickly - I bought an official case, which although a bit pricey was quite nice, and has a good feel to it - The camera seems to be pretty decent, from the few shots I've taken of our black cat, Morph Overall it seems to be going well - hopefully it'll last as long as my OnePlus 3! EDIT: And something I forgot to mention was that the fingerprint sensor isn't in my location. I'm very used to it being where the home button is on my OnePlus 3, and combined with the placement of the headphone jack on top, it means I'll regularly unlock my phone as I'm taking it out of my pocket, which is quite annoying. EDIT: I also found the way to easily swap between apps is by swiping on the soft touch buttons, left to right. And by holding it for longer I can skip between multiple apps - nice stuff!
I found this when listening to episode 194 of the Bike Shed podcast: My PGP Shame. I'd only added this episode to my playlist as it was an interesting title, but listening to it, it was even better than I thought. There was some great stuff in there about Thoughtbot's application security guide, linked, which is a definite must-read. My favourite quote of the episode, though, is the following exchange: > I've got to be honest, how does anything work at all? > Oh computers don't work
This is a really great post! I think it was Jess Rose's talk about it where I realised it was a thing and not just something I felt. Talking about it and making others aware of it is good, and I'm definitely going to steal some of her coping strategies
Why is this site www.jvt.me? Why do I use www.? All will be explained.
.Render to save duplication in Hugo templates.
I'm super excited to announce that I'm joining the organising team for https://phpminds.org/ ! Trawling back through the Meetup.com group for PHPMiNDS, I found the earliest time I marked myself as attending was November 2016. I've never been a PHP dev, although I've dabbled for years. But I've always seen it as a great community, and have been attending for most months since then. Attending tech meetups has always been about bettering myself, and learning more, and the talks at PHPMiNDS can absolutely be applied to my work, despite it being a different tech stack. Before https://www.jvt.me/posts/2019/04/11/phpminds-april/ Shaun had mentioned to me about looking for another pair of hands with organising PHPMiNDS, and after a little bit of time to mull it over I decided I would definitely be interested in getting involved. I'm really excited to start to help out Adoni (https://pavlakis.uk) and Shaun (https://shaunhare.co.uk) with organising the meetup, and I hope continue making it as awesome for others as it has been to me.
I will be attending.