<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on iamjonfry</title><link>https://iamjonfry.com/posts/</link><description>Recent content in Posts on iamjonfry</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><lastBuildDate>Tue, 31 Dec 2024 06:00:00 +0100</lastBuildDate><atom:link href="https://iamjonfry.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>6 years at Monzo</title><link>https://iamjonfry.com/posts/6-years-at-monzo/</link><pubDate>Tue, 31 Dec 2024 06:00:00 +0100</pubDate><guid>https://iamjonfry.com/posts/6-years-at-monzo/</guid><description>6 years at one company I&amp;rsquo;ve now been working at Monzo for 6 years. This is the longest I&amp;rsquo;ve worked at any company, even though it doesn&amp;rsquo;t feel like it. Over this time a lot has changed, but a lot has stayed the same.
During my time at Monzo I&amp;rsquo;ve run 100s of interviews, and often get asked the same set of questions by candidates. One of the most common ones is &amp;lsquo;why Monzo?</description></item><item><title>Sabbatical check in</title><link>https://iamjonfry.com/posts/sabbatical-check-in/</link><pubDate>Thu, 15 Jun 2023 19:00:00 +0100</pubDate><guid>https://iamjonfry.com/posts/sabbatical-check-in/</guid><description>Last year the company I work at, Monzo, introduced a 3 month paid sabbatical for all employees that reach 4 years of tenure. It&amp;rsquo;s a great opportunity to rest and recharge and a reminder that achieving Monzo&amp;rsquo;s mission of making money work for everyone, is a marathon not a sprint.
I hit 4 years at Monzo in January of this year and decided to split my sabbatical into two:
6 weeks this year ~June 6 weeks next year ~August I&amp;rsquo;m currently 3 weeks in.</description></item><item><title>Simplify your adapters - lambdas in data classes</title><link>https://iamjonfry.com/posts/lambdas-in-data-classes/</link><pubDate>Sun, 26 May 2019 10:30:00 +0100</pubDate><guid>https://iamjonfry.com/posts/lambdas-in-data-classes/</guid><description>Data classes are a Kotlin feature that allow us to write clean, simple classes that are commonly used to model data, such as API requests/responses and application state. They have have automatically derived equals(), hashCode() and toString() functions.
This is an example of a simple data class Item that holds an id, title and subtitle:
data class Item( val id: String, val title: String, val subtitle: String ) On Android we can use a data class to represent an item in a list.</description></item><item><title>Danger on Android</title><link>https://iamjonfry.com/posts/danger-android/</link><pubDate>Mon, 12 Nov 2018 23:53:54 +0100</pubDate><guid>https://iamjonfry.com/posts/danger-android/</guid><description>A team I have been working with recently has grown to a big enough size that we decided to improve the pull request (PR) process with continuous integration (CI) by introducing Danger. We wanted to automate as many of the PR checks as possible to streamline the process.
Danger runs during your CI process, and gives teams the chance to automate common code review chores.
To start with I was looking to get more information into the PR itself.</description></item><item><title>Splitting SSH and git configs</title><link>https://iamjonfry.com/posts/splitting-ssh-and-git-configs/</link><pubDate>Tue, 24 Jul 2018 18:28:07 +0100</pubDate><guid>https://iamjonfry.com/posts/splitting-ssh-and-git-configs/</guid><description>To separate work and personal projects, I run different SSH keys and git configs. For example specifying a different SSH key and git email for personal and work projects.
This allows me to clone any project, work or personal and get started straight away.
SSH config Step 1: Create SSH key ssh-keygen -t rsa -C &amp;#34;j.fry@work.com&amp;#34; When asked for the name give a new file name: id_rsa_work
Step 2: Create SSH config Create an empty file called config in ~/.</description></item><item><title>Custom timeouts with retrofit</title><link>https://iamjonfry.com/posts/custom-timeouts-with-retrofit/</link><pubDate>Sun, 22 Oct 2017 14:00:20 +0100</pubDate><guid>https://iamjonfry.com/posts/custom-timeouts-with-retrofit/</guid><description>&lt;p>I recently ran into the problem of customising timeouts for different API calls when using &lt;a href="http://square.github.io/retrofit/">retrofit&lt;/a>.&lt;/p></description></item><item><title>Automating hugo deployment to S3</title><link>https://iamjonfry.com/posts/automating-hugo-deployment-to-s3/</link><pubDate>Wed, 03 Aug 2016 23:23:29 +0100</pubDate><guid>https://iamjonfry.com/posts/automating-hugo-deployment-to-s3/</guid><description>&lt;p>After making the decision to migrate from &lt;a href="http://iamjonfry.com/migrating-from-ghost-to-hugo/">hugo to ghost&lt;/a> I also decided to test the waters with AWS (Amazon web services) for my website hosting.&lt;/p>
&lt;p>&lt;a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html">S3&lt;/a>, a service on AWS, provides static website hosting, and as hugo generates static web files it&amp;rsquo;s a perfect match.
The following are roughly the steps that I made to automate the deployment of a hugo site to S3.&lt;/p></description></item><item><title>Migrating from ghost to hugo</title><link>https://iamjonfry.com/posts/migrating-from-ghost-to-hugo/</link><pubDate>Tue, 02 Aug 2016 21:45:48 +0100</pubDate><guid>https://iamjonfry.com/posts/migrating-from-ghost-to-hugo/</guid><description>&lt;p>I&amp;rsquo;ve been happily running a VPS on &lt;a href="https://m.do.co/c/0804cbb4b4ab">DigitalOcean&lt;/a> for over 3 years and last year I started running &lt;a href="http://iamjonfry.com">iamjonfry.com&lt;/a> using the Ghost blogging platform.
Over the weekend I decided to upgrade to Ghost to the latest version, &lt;a href="https://dev.ghost.org/ghost-0-9-0/">v0.9.0&lt;/a>, however I ran into quite a few issues during the upgrade process (spoiler alert node package manager - npm).&lt;/p></description></item><item><title>frywedding.com RSVP using Go</title><link>https://iamjonfry.com/posts/frywedding-rsvp-using-go/</link><pubDate>Sun, 08 May 2016 09:40:20 +0100</pubDate><guid>https://iamjonfry.com/posts/frywedding-rsvp-using-go/</guid><description>&lt;p>A big part of building frywedding.com was to allow the guests to RSVP online, which &lt;em>should&lt;/em> be a lot more reliable than sending by post (No apologies Royal Mail).&lt;/p>
&lt;p>As I&amp;rsquo;ve been experimenting with Go in my spare time I figured it would be a good candidate to build the RSVP backend. I&amp;rsquo;ve heard great things about the &lt;a href="http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/">scalability&lt;/a> of Go, so I was sure it would be able to handle requests from 100 guests. (&lt;em>sarcasm&lt;/em>)&lt;/p></description></item><item><title>Mobile engineers and microservices</title><link>https://iamjonfry.com/posts/mobile-engineers-and-microservices/</link><pubDate>Thu, 10 Mar 2016 15:45:47 +0100</pubDate><guid>https://iamjonfry.com/posts/mobile-engineers-and-microservices/</guid><description>Microservices are becoming increasingly popular, and with the surge in cloud services (see Amazon Web Services / Google Cloud Platform), they&amp;rsquo;re something that all engineers should be interested in.
Being primarily a mobile developer I don&amp;rsquo;t get a lot of exposure to writing production back-end code, so I&amp;rsquo;m trying to be proactive and develop skills through personal projects. I think it&amp;rsquo;s important that mobile developers don&amp;rsquo;t limit themselves to just front-end work.</description></item><item><title>Advent of Code - Kotlin</title><link>https://iamjonfry.com/posts/advent-of-code-kotlin/</link><pubDate>Tue, 08 Mar 2016 23:53:54 +0100</pubDate><guid>https://iamjonfry.com/posts/advent-of-code-kotlin/</guid><description>In case you&amp;rsquo;ve been living under a rock for the last few months you will have seen that Kotlin reached a 1.0 release (Congratulations!).
Kotlin is a JVM language that has 100% interop with Java. This means that it can be used to develop for Android.
I had some time over the Christmas period to play about with Kotlin and loved it. I found it a breath of fresh air coming from the usual verbosity of Java.</description></item><item><title>MEAN (MongoDB, Express, AngularJS, NodeJS)</title><link>https://iamjonfry.com/posts/mean/</link><pubDate>Sun, 18 May 2014 15:00:58 +0100</pubDate><guid>https://iamjonfry.com/posts/mean/</guid><description>I have been keen to start learning some web development for quite some time but have been struggling with a place to start. I have been learning bits and pieces on the backend with MongoDB and Node.js, but have always been frustrated when it came to developing on the frontend.
Enter AngularJS&amp;hellip; I have spent the better part of today playing around with AngularJS and it&amp;rsquo;s lovely. I have worked through the following tutorials and found them all great.</description></item><item><title>Android - Creating a global Application Context</title><link>https://iamjonfry.com/posts/global-application-context/</link><pubDate>Sat, 17 May 2014 19:59:02 +0100</pubDate><guid>https://iamjonfry.com/posts/global-application-context/</guid><description>Proper use of the Android context seems to be tricky to get right. A common problem is passing the context around unnecessarily.
An example of this, is when you are reading or writing files to disk, as this requires the context to do so. However, you do not want to pass the context into the method or class which you are using, so you can instead use a simple trick to gain access to the Application Context from anywhere.</description></item></channel></rss>