<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&lt;img /&gt; is Everything</title>
	<atom:link href="https://imgiseverything.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>https://imgiseverything.co.uk/</link>
	<description>Freelance front-end developer Phil Thompson</description>
	<lastBuildDate>Wed, 25 Sep 2019 16:20:01 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.5</generator>
	<item>
		<title>Lessons learnt making a website pass Level AA WCAG 2.0</title>
		<link>https://imgiseverything.co.uk/articles/accessibility-level-aa-wcag-2-0/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Thu, 31 Aug 2017 14:56:49 +0000</pubDate>
				<category><![CDATA[Accessibility & Usability]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[accessibility]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=6216</guid>

					<description><![CDATA[Accessibility is a tricky subject for web developers. I think most developers would say they: build accessible websites already or would like to in theory However, if you work for a digital agency it&#8217;s likely you simply do not have the time to perform accessibility testing and it&#8217;s likely you don&#8217;t have anyone above you]]></description>
										<content:encoded><![CDATA[<p>Accessibility is a tricky subject for web developers. I think most developers would say they:</p>
<ul>
<li>build accessible websites already or</li>
<li>would like to in theory</li>
</ul>
<p><span id="more-6216"></span></p>
<p>However, if you work for a digital agency it&#8217;s likely you simply do not have the time to perform accessibility testing and it&#8217;s likely you don&#8217;t have anyone above you to help you out when you hit a brick wall &#8211; which is often when you first get started with a11y.</p>
<p>If you work in an organisation that does have the time to make things accessible you may not have the budget to properly test e.g. do you have the budget to pay for several different versions Jaws (because people don&#8217;t update Jaws too often) or the patience to run the demo version for 30 minutes at a time or the budget to pay for a 3rd party testing company?</p>
<p>For a recent project, I was tasked with making the site accessible. As I said before, most developers and designers like to think that their code/designs are accessible already but, in my experience, few actually test and ensure that they truly are. However, on this project the end-client requested Level AA WCAG 2.0 compliance and the agency (my client) hired a 3rd party supplier to test.</p>
<p>Whenever an accessibility bug was found, a card was created in <a href="https://trello.com">Trello</a> and that card stayed there until it was fixed. That meant accountability and it meant accessibility bugs could not be ignored.</p>
<h2>When we make something accessible&#8230; what exactly are we looking to achieve?</h2>
<ul>
<li>The site works with keyboard functionality (e.g. tabbing to links and form elements with a mouse)</li>
<li>The site works for colour blind people (e.g. not just conveying information with colour alone)</li>
<li>The site works for people will poor eyesight (who may zoom in or simply need a large enough font size and high contrast)</li>
<li>The site works for visually impaired (or blind) people who use a screen-reader</li>
<li>The site works for people who <em>can</em> see but not well and may use a screen-reader to assist them (e.g. what is read aloud to them should corresp0nd to what they see on screen)</li>
<li>The site works if/when JavaScript isn&#8217;t available/doesn&#8217;t load (rare as this is)</li>
<li>The site works for deaf/hard-of-hearing people (e.g. videos have captions)</li>
</ul>
<p>Ok so that&#8217;s the basics. But the phrase &#8216;the site works&#8217; doesn&#8217;t always cut it&#8230; because things can technically work, but they don&#8217;t always make sense e.g. a big thing when building for screen-readers is that we don&#8217;t always want the screen-reader to read out content that is hidden off screen &#8211; confusingly &#8211; sometimes we <em>do</em> want the screen-reader to read out content that is hidden off screen. See&#8230; I told you it was difficult :)</p>
<h2>An example</h2>
<p>Take an example of a hamburger menu that is hidden off-canvas when inactive and slides into view when its active.</p>
<ul>
<li>We only want the content of that menu to be read out when it is visible and open because remember not all screen-reader users are blind so we don&#8217;t want content read to them which seems like it is coming from nowhere.</li>
<li>We also want the button (which the user clicks to show/hide that menu) to indicate to a screen-reader that the it toggles the hamburger menu and what state the hamburger menu is.</li>
<li>We don&#8217;t want keyboard users to be able to tab (or up/down arrow) out of the menu when it is active and start tabbing visually hidden links elsewhere on the screen.</li>
<li>We want people to be able to close the menu by pressing the Esc key on their keyboard and by clicking outside of the hamburger menu itself (that is, if there is any empty screenspace that the menu does not occupy)</li>
<li>We want users to be returned to the position they were at before they opened the hamburger menu so they don&#8217;t get lost/disorientated.</li>
<li>We want users to have their keyboard focus returned to their previous location before they activated the hamburger menu and we want their focus to go to the first item in the menu when they first activate it.</li>
<li>We want to make sure the buttons that show/hide the menu are &lt;button&gt;s and not &lt;a&gt; tags to avoid confusion.</li>
<li>We want the hamburger menu (in some cases) to display if JavaScript fails to load &#8211; otherwise it would always be hidden.</li>
<li>We want the hamburger (and the site in general) to be fully functional and legible if the user zooms in 200% in their browser</li>
</ul>
<p>That&#8217;s a lot of criteria. Showing a hamburger menu can be a few lines of code with jQuery. A click event on a link that toggles a class on the &lt;nav&gt; element and job done; making an accessible hamburger menu is a lot more work.</p>
<p>I&#8217;d say the first time you write an accessible JavaScript component like this you are at least doubling the amount of time it would take you to write it.</p>
<h2>Lesson 1: Third party testing helps</h2>
<p>My client hired a <a href="http://www.ultratesting.us/">testing (QA) company called ULTRA</a> who were brilliant. They pointed out lots of issues with my build which I had not considered and/or I didn&#8217;t realise were issues. After working with ULTRA on this project and testing on my own on other projects, my main takeaway for building accessible sites is: get an expert to test it. Providing you can afford it &#8211; of course.</p>
<p>Going through your templates with a screen-reader is beyond tedious and very time consuming. For me personally, I missed a lot of issues because I am not aÂ  regular screen-reader user and I found learning Jaws and VoiceOver very difficult. I have no doubt I was not necessarily using it as a real user would use it so my testing was not really that great.</p>
<h2>Lesson 2: Designing for accessibility from the start helps</h2>
<p>Most of the big issues in development revolved around:</p>
<ul>
<li>colour contrast</li>
<li>lack of link/button focus</li>
</ul>
<p>Designers love light grey copy and links that don&#8217;t look like links. They hate :focus styles. Real people need to know what part of the page can be clicked/tapped and they need to know which current form input/link/button is currently in focus.</p>
<p>If you can get designers onboard early who will use properly contrasted colours and who think of various link/button styles (and not just a hover state) then 50% of a11y problems go away immediately.</p>
<p>A big factor I employed was to use :focus-ring on this project and in particular the <a href="https://github.com/WICG/focus-ring">focus-ring polyfill script</a>. Focus-ring can help you to only apply a focus style when it detects that the user navigatig the site with a keyboard &#8211; therefore you can style infocus links/buttons for these people and remove focus styles for non-keyboard users. <em>This isn&#8217;t ideal</em> but I am yet to meet a designer who *gets* focus styles, but I am also yet to meet a designer who users their keyboard to navigate a website so you can trick them and add in some accessible focus style this way while still making them happy :)</p>
<h2>Lesson 3: Having time helps</h2>
<p>As I stated earlier, coding accessible websites takes so much extra time. If your client/boss doesn&#8217;t give you the time &#8211; it isn&#8217;t going to happen.</p>
<p>Luckily, for this project, the end-client made everyone aware that this was critical feature so my client had to build the time into the schedule for it and the end-client had to pay for the time.</p>
<h2>Summary</h2>
<p>Building accessible websites can be difficult. The issues can be hard to see for a developer, time-consuming to fix and more often than not, nobody will thank you for this extra work. You are effective building a website in such a way that everyone can access it without problems or avoidable annoyances and people (usually) notice things that work . Something <em>working</em> is a pretty low barrier because all websites should be built so they are accessible to and work for everyone.</p>
<p>Although, it&#8217;s hard &#8211; it is very satisifying to create something that you know works for everyone.</p>
<p><strong>For further reading and practical coding tips head to <a href="https://inclusive-components.design/">Inclusive Components</a>.</strong></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>New office in Hackney</title>
		<link>https://imgiseverything.co.uk/articles/new-office-hackney/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Fri, 07 Apr 2017 14:36:31 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[desk]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[wework]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=6188</guid>

					<description><![CDATA[This week I have moved into a new office in Hackney. I have become part of the WeWork network and have taken on a dedicated desk in their new offices in London Fields, Hackney. How come? After working in a couple of different client&#8217;s offices for the past 10 months, I am happy to be]]></description>
										<content:encoded><![CDATA[<p>This week I have moved into a new office in Hackney. I have become part of the WeWork network and have taken on a dedicated desk in their new offices in London Fields, Hackney.</p>
<p><span id="more-6188"></span></p>
<h2>How come?</h2>
<p>After working in a couple of different client&#8217;s offices for the past 10 months, I am happy to be back in my own space, setting my own hours, surrounded by other freelancers of other disciplines. I&#8217;ve done working from home before and it&#8217;s a great way to save money but for me, doing it long-term can make me feel very lonely.</p>
<p>A desk in a shared office is a great solution to loneliness &#8211; without the downsides of it being too expensive. I have also found in the past that by having your own desk/office, people are more likely to <em>a</em>: take you more seriosusly and <em>b</em>: let you work from there instead of working under their nose in their offices.</p>
<figure id="attachment_6189" aria-describedby="caption-attachment-6189" style="width: 800px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="wp-image-6189 size-full" src="http://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields.jpg" alt="" width="800" height="457" srcset="https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields.jpg 800w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-280x160.jpg 280w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-580x331.jpg 580w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-768x439.jpg 768w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-437x250.jpg 437w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-375x214.jpg 375w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-6189" class="wp-caption-text">The reception At WeWork&#8217;s London Fields offices</figcaption></figure>
<figure id="attachment_6194" aria-describedby="caption-attachment-6194" style="width: 800px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-6194 size-full" src="http://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-communal.jpg" alt="" width="800" height="600" srcset="https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-communal.jpg 800w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-communal-280x210.jpg 280w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-communal-580x435.jpg 580w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-communal-768x576.jpg 768w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-communal-437x328.jpg 437w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-communal-375x281.jpg 375w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-6194" class="wp-caption-text">One of the communal spaces at WeWork</figcaption></figure>
<figure id="attachment_6196" aria-describedby="caption-attachment-6196" style="width: 800px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-6196 size-full" src="http://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-roof-terrace.jpg" alt="" width="800" height="471" srcset="https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-roof-terrace.jpg 800w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-roof-terrace-280x165.jpg 280w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-roof-terrace-580x341.jpg 580w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-roof-terrace-768x452.jpg 768w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-roof-terrace-437x257.jpg 437w, https://imgiseverything.co.uk/wp-content/uploads/2017/04/wework-london-fields-roof-terrace-375x221.jpg 375w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-6196" class="wp-caption-text">WeWork&#8217;s roof terrace. Taken on a cloudy day &#8211; sorry!</figcaption></figure>
<h2>Why WeWork?</h2>
<p>Whilst I was working in Holborn I visited a friend&#8217;s office which so happened to be a WeWork place and I thought <em>this feels like a pretty good environment to work and meet clients</em>. So when my last contract came to an end and I picked up a short contract with a US digital agency I decided I needed an office and I&#8217;d check out what was available. Then I saw WeWork had opened a new space a little closer to my home (it&#8217;s a 20 minute bike ride which avoids me have to cycle through central London) in Hackney so I decided to pick up a dedicated desk there.</p>
<p>I&#8217;ve been here for a week now and I am surrounded by other freelancers including journalists, architects, and translators to name but a few different jobs other people are doing here. There&#8217;s free tea and coffee &#8211; <em>which makes a change from the last client&#8217;s offices where nothing was provided (for fear of them breaking IR35 rules) and there was constant milk-thievery from the fridge</em>.</p>
<p>If you fancy checking out a <a href="https://refer.wework.com/i/c8wsy">WeWork office space &#8211; here is a referral link</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>My experience of becoming a Lead Front-end Developer for the first time</title>
		<link>https://imgiseverything.co.uk/articles/lead-front-end-developer/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Fri, 13 Jan 2017 14:10:14 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=6167</guid>

					<description><![CDATA[In my most recent position, a month after starting, I was promoted into the role of Lead Developer, in charge of 3, and at times, 4 other developers in the dev team. This was the first time I&#8217;d been the Lead Developer on a project (where I was not the sole developer). The project ran]]></description>
										<content:encoded><![CDATA[<p>In my most recent position, a month after starting, I was promoted into the role of Lead Developer, in charge of 3, and at times, 4 other developers in the dev team. This was the first time I&#8217;d been the Lead Developer on a project (where I was not the sole developer). The project ran for a further 6 months and I learnt a lot in the process.</p>
<h2><span id="more-6167"></span><br />
The core job description of the Lead Developer on this project was:</h2>
<ul>
<li>Assign tasks to the 3-4 other developers</li>
<li>Monitor the progress of those tasks and feedback to Project Managers (PMs), Account Managers (AMs) and other non-dev team members</li>
<li>Try to maintain code-quality <em>e.g. review Pull Requests (PRs), provide feedback to devs and approve/deny PRs</em></li>
<li>Merge PRs into main code branch and update servers</li>
<li>Be the voice of the dev team if there are any disputes about the work e.g. scope creep, unrealistic timelines</li>
<li>Carry messages from non-dev team members <em>e.g. PMs to the dev team</em></li>
<li><em>Have the final say on coding decisions</em></li>
<li>Presenting code demos to non-dev team members</li>
<li>Keep (Quality Assurance Testers) QAs aware of progress AND finally</li>
<li>Continue coding as usual</li>
</ul>
<p>&nbsp;</p>
<p>Okay, so, the last task is the hardest. When you are reviewing the PRs of 3-4 other devs towards the end of the sprint, trying to motivate them, trying to communicate their workload and your expected finishing times to PMs whilst trying to manage your own work was very stressful at times.</p>
<p>However, what I did enjoy was having some semblance of control over the final product and being able to say &#8216;<em>we have coded this like that because of XYZ</em>&#8216; and presenting that to UX/AM/PMs and generally being believed/respected.</p>
<h2>Trying to maintain code quality</h2>
<p>It was also incredible difficult to maintain code quality and speed of other developers; I wasn&#8217;t really prepared for this. When the deadline is looming and everyone is behind it became impossible to justify spending time enforcing specific coding guidelines like spaces before curly braces in JavaScript or alphabetised CSS rules and minimal nesting in Sass or that elements were exactly 20px apart or that the font size was supposed to be 11px and not 12px.</p>
<p>If I&#8217;d have had more time and more foresight I would have ruled with more of an iron fist in the beginning of the project which I feel would have prevented problems with the code further down the line. However, as I joined the team after coding had been started and I was then promoted after some code had already been written (in multiple styles), I did not feel practical to start refactoring every code after I became Lead. Nor was there the time.</p>
<h2>Documentation &gt;= code</h2>
<p>Code is really important but keeping track of the code, documenting it and letting non-dev people know what&#8217;s going on is even more important. At the start, we were pushing, pulling and merging and trying to get our commit messages as good as possible but when you pass that on to a third party (or when you have a gap inbetween finishing the code and releasing it) you realise that you can&#8217;t remember exactly what has been changed and why.</p>
<p>Maybe 2 new functions have been added and 1 has been removed but why and what modules/pages etc does it affect? Why was the decision made to make those changes? If you don&#8217;t write it down someone will either override your changes later in the project because they don&#8217;t understand why a decision has been made or the end-client/non-dev team member will request a change that requires significant work because they do not understand the background.</p>
<h2>Managing developers</h2>
<p>Same goes for other developers, writing code when you are the sole developer is a very different proposition from writing code that a team of other developers have to understand, extend, delete, or upgrade. And part of the job of the Lead Developer is diplomatically trying to get all developers to appreciate this without causing offence &#8211; this was something I did not excel at, at first, and I admit that I found it quite uncomfortable trying to explain to developersÂ  (who had been on the same level as me at the start of the project) that they needed to improve. I like to think this is something I improved as the project wore on but that is for others to decide.</p>
<p><!--I made some mistakes with task assignments on this project... at one point it was clear that one developer was coding slower than they had previously. So I started assigning them smaller, more mundane tasks that I could be sure they would finish without affecting the deadlines and blocking other devs. However, they continued to code slowly and act disinterested, so I had the idea to give them a larger task, thinking more responsibility and a more exciting task may re-motivate them, but sadly they continued in the same vein and that larger task was delayed and disrupted other developers in the team.--></p>
<h2>Agency development life</h2>
<p>If you don&#8217;t work in an agency, it may be hard to understand how/why you have to makeÂ  compromises on code quality. Every sprint (i.e. 2 week block of work) is timed and justified by the price paid by the client;Â  if you slip on these deadlines and start falling behind the agency starts losing money.</p>
<p>It can be hard to justify to an agency that up-front costs are needed that may save costs down the lineÂ  (e.g. setting up automated JavaScript testing, or properly planning all modules/components that the system will use before starting to code) because it&#8217;s hard to explain this to the end-client who just wants you to start coding and producing work straight away.</p>
<p>In different environments there isn&#8217;t always the same time-pressure and more of a focus on quality over speed can be used.</p>
<h2>Occasional Tech Lead responsibilities</h2>
<p>At times, when the Tech Lead was otherwise unavailable, I was also asked to take on some of their responsibilities for this project which included:</p>
<ul>
<li>Estimating development time based upon initial UX wireframes (this was prior to sprint planning with other devs where the timings were refined)</li>
<li>Reviewing the end-client&#8217;s bugs and estimating time required to fix, whether bugs were really bugs or disguised scope creep</li>
<li>Feeding back to the end-client on bug fixing status</li>
</ul>
<h2>Summary</h2>
<p>I was very grateful for the opportunity of stepping up to be a Lead Developer on this project and whilst my next role will <em>only</em> be a Senior Developer and <em>not</em> a Lead I will be looking to be a Lead Developer again as soon as the opportunity arises.</p>
<p>I worked with some great people on this project and while at times the project was a slog, it was often a joy to come into work and spend time working with them.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using style guides to build better responsive websites</title>
		<link>https://imgiseverything.co.uk/articles/style-guides-websites/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Tue, 22 Mar 2016 11:50:20 +0000</pubDate>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[design phase]]></category>
		<category><![CDATA[style guides]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=6055</guid>

					<description><![CDATA[In the days before the mobile web took over, web designers slaved over PSDs for weeks then handed over 10-30 unique templates to a developer who went away and built them to pixel perfection. Not anymore.]]></description>
										<content:encoded><![CDATA[<p>In the days before the mobile web took over, web designers slaved over PSDs for weeks then handed over 10-30 unique templates to a developer who went away and built them to pixel perfection.</p>
<p>Those days are gone.</p>
<p><span id="more-6055"></span></p>
<p>There are too many unanswered questions in responsive web design and a designer sat in isolation cannot answer them all.</p>
<h2>Introducing style guide driven design</h2>
<p>Responsive websites can be a headache &#8211; if you decide to tweak one element that change must be tested and coded on all different screen sizes. However, by starting the designing and building of a website with a style guide (or pattern library) enables designers and developers to collaborate and avoid those headaches.</p>
<p>The style-guide-drive design approach allows a designer to quickly create initial elements, pass them onto the developer who turns them into HTML/CSS. In record speed we have a prototype that feels like a digital product. Itâ€™s answered questions of how will it look on an iPhone 6 Plus *and* an iPhone 4 instantly. No more assuming and no more guessing.</p>
<figure id="attachment_6060" aria-describedby="caption-attachment-6060" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6060 size-full" src="http://imgiseverything.co.uk/wp-content/uploads/2016/03/style-guides.jpg" alt="An example of a style guide driven approach. here we see modules laid out differently to suit differently sized devices" width="800" height="554" srcset="https://imgiseverything.co.uk/wp-content/uploads/2016/03/style-guides.jpg 800w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/style-guides-280x194.jpg 280w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/style-guides-580x402.jpg 580w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/style-guides-768x532.jpg 768w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/style-guides-437x303.jpg 437w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/style-guides-375x260.jpg 375w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-6060" class="wp-caption-text">An example of a style guide driven approach. Here some modules are laid out differently to suit differently sized devices</figcaption></figure>
<h2>How to do it</h2>
<p>Instead of creating a full page design, a designer starts with something smaller. Maybe thatâ€™s colours and typography and from there transform that into bigger component e.g. a list of products.</p>
<p>Once components start to be produced they can be passed on to a developer who builds them.</p>
<p>Designing and building one website element (e.g. the siteâ€™s masthead) at a time and testing across different devices and screen sizes before moving on to the next element (e.g. the site footer) and then fitting them all together to create individual pages at the end of the process is the best way to build a consistent product.</p>
<p>At first, it may feel like this approach is taking longer but the more elements are created the easier it is to build the website as a whole and to add new features.</p>
<h2>The benefits</h2>
<p>Fitting in with our need to speed-up websites, a style guide can standardise the CSS, keeping it small and quick to load. New members of the dev team can quickly pick-up coding styles; see whether existing modules exist and not waste time coding new elements from scratch.</p>
<p>As projectâ€™s evolve, a common approach to on-page problems is to design a unique solution for that specific page but with a style guide approach &#8211; a designer can see all the elements together and design as a system.</p>
<p>This way we avoid situations where a website has multiple different buttons styles or multiple heading sizes all of which suit a specific context, but as a whole confuse users who need to see consistency to understand your websiteâ€™s interface.</p>
<h2>Share this article</h2>
<blockquote class="twitter-tweet" data-lang="en">
<p lang="en" dir="ltr">Using style guides to build better responsive websites: <a href="https://t.co/XyuPBr3f8A">https://t.co/XyuPBr3f8A</a></p>
<p>&mdash; Phil Thompson (@imgiseverything) <a href="https://twitter.com/imgiseverything/status/712247721642614785">March 22, 2016</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Website performance</title>
		<link>https://imgiseverything.co.uk/articles/web-performance/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Sat, 12 Mar 2016 16:13:45 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[performance]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=6070</guid>

					<description><![CDATA[The speed of websites is a hot topic right now with many reports saying that if a website doesnâ€™t load in under 4 seconds then a user will click their back button. With more and more designs featuring large images and marketing teams demanding multiple third-party tracking scripts everywhere, your website is at risk of]]></description>
										<content:encoded><![CDATA[<p>The speed of websites is a hot topic right now with many reports saying that if a website doesnâ€™t load in under 4 seconds then a user will click their back button.</p>
<p><span id="more-6070"></span></p>
<p>With more and more designs featuring large images and marketing teams demanding multiple third-party tracking scripts everywhere, your website is at risk of loading slowly and putting off customers. </p>
<p>The statistics donâ€™t lie, with <a href="https://blog.kissmetrics.com/loading-time/">kissmetrics.com reporting</a> that 47% of consumers expect a website to load in under 2 seconds and 40% abandon a website that takes over 3 seconds to load.</p>
<p>Pretty sobering stuff.</p>
<blockquote><p>
40% [of people] abandon a website that takes over 3 seconds to load<br />
<cite><a href="https://blog.kissmetrics.com/loading-time/">Source: kissmetrics</a></cite>
</p></blockquote>
<p>A website that takes an age to load is at real risk of its users hitting their back buttons and clicking the next result down in Google. Thatâ€™s a lost sale, but it could have been easily avoided with some careful planning.</p>
<p>Improving how fast your website loads requires buy-in from the whole team. </p>
<ul>
<li>It requires designers to really think about how many different typefaces this designs really needs.</li>
<li>It requires marketing teams to consider whether Facebook/Twitter share counters are truly worth causing your site to freeze for a second or two while they load their own code.</li>
<li>It requires developers to create HTML/CSS code that is mobile first and doesnâ€™t include tonnes of third party junk because it makes their lives a little easier.</li>
</ul>
<h2>Using a performance budget</h2>
<p>At the start of a project, the team sets a target for the how quickly this site should load. Say if you want it to load in under 5 seconds on mobile and your target audience is (mostly) on 3G, well that means you need to plan accordingly.</p>
<p>Designers now have to make some tough choices because every element on every page has to justify its presence.</p>
<p>If a new feature is needed then something else on the page either needs to be removed or optimised to allow â€˜roomâ€™ for the new feature.</p>
<blockquote><p>
&hellip;a 1 second delay decreases customer satisfaction by 16%<br />
<cite><a href="https://blog.kissmetrics.com/loading-time/">Source: kissmetrics</a></cite>
</p></blockquote>
<h2>Combining code assets</h2>
<p>Bizarrely, web browsers will often download one large file quicker than several smaller files. So while it may be better for your developers to split their CSS into multiple files for their own ease of management, it could be slowing your site down &#8211; unless you combine all those little files into one big one before you use it on your website.</p>
<p>A super simple way to get around this, is for your developers to use a build tool like Grunt or Gulp (yup, they sound made up but, honestly, theyâ€™re real things) and automatically combine their smaller JavaScript files (or CSS files) into one big file. While that is happening you could also cut out all the whitespace, comments and uglify the code (once again, I promise, Iâ€™m not making these terms up) to reduce that one big file even more.</p>
<h2>The rise of flat design</h2>
<p>Flat design has taken off in such a big way and a lot of that is down to how much easier it is to design and build websites (and apps) with block colours, less images and simple typography.</p>
<p>If you look at my this site, you will see very few images and you will notice it loads very fast but that approach is not practical for every brand. A lot of the time you need images, big images and lots of them.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3 speedy tips to optimise your web images</title>
		<link>https://imgiseverything.co.uk/articles/optimise-web-images/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Thu, 03 Mar 2016 14:21:42 +0000</pubDate>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[performance]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=6043</guid>

					<description><![CDATA[Images are one of the biggest buzzkills for download speeds on the web. If your designer wants to use a carousel youâ€™re potentially asking your customers to download several HUGE images and wait several seconds before they can interact with your site. With the following 3 tips you could significantly improve your userâ€™s download speeds]]></description>
										<content:encoded><![CDATA[<p>Images are one of the biggest buzzkills for download speeds on the web. </p>
<p>If your designer wants to use a carousel youâ€™re potentially asking your customers to download several HUGE images and wait several seconds before they can interact with your site.</p>
<p><span id="more-6043"></span></p>
<p>With the following 3 tips you could significantly improve your userâ€™s download speeds and reduce their data bills without impacting the quality of your images. Thatâ€™s win-win &#8211;  right?</p>
<h2>1 Optimise your images in Photoshop/Illustrator</h2>
<p>Images are a killer on the web. We all want images to look crisp but what if we could have great looking images at smaller file sizes.</p>
<p>The biggest mistakes is when designers save images at 100% quality, when something like 75% will not reduce appearance but will dramatically reduce file-size.</p>
<h3>Hereâ€™s how</h3>
<ol>
<li>Trigger Save for Web by pressing Command-Option-Alt-s (on Mac)</li>
<li>Choose JPEG from the dropdown</li>
<li>Set Quality to Very High or 75%</li>
<li>Tick the Progressive box</li>
<li>Untick the Convert to sRGB box</li>
<li>Click Save&hellip;</li>
<li>Finally, run the saved image through an optimisation app like <a href="https://imageoptim.com/">ImageOptim</a></li>
</ol>
<h3>Here&#8217;s some screenshots of the process</h3>
<p>Option one is to save the image with Photoshop&#8217;s default Save As feature. You can optimise it in here but it&#8217;s not as obvious what you&#8217;re getting.</p>
<figure id="attachment_6049" aria-describedby="caption-attachment-6049" style="width: 338px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" src="http://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-As.jpg" alt="Photoshop&#039;s default Save As dialog for a JPEG - creates a 193Kb image" width="338" height="315" class="size-full wp-image-6049" srcset="https://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-As.jpg 338w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-As-280x261.jpg 280w" sizes="(max-width: 338px) 100vw, 338px" /><figcaption id="caption-attachment-6049" class="wp-caption-text">Photoshop&#8217;s default Save As dialog for a JPEG &#8211; creates a 193Kb image</figcaption></figure>
<figure id="attachment_6050" aria-describedby="caption-attachment-6050" style="width: 580px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" src="http://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-for-Web-580x433.jpg" alt="Photoshop&#039;s Save for Web Dialog - creates and image at 120Kb" width="580" height="433" class="size-medium wp-image-6050" srcset="https://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-for-Web-580x433.jpg 580w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-for-Web-280x209.jpg 280w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-for-Web-768x573.jpg 768w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-for-Web-437x326.jpg 437w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-for-Web-375x280.jpg 375w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/Save-for-Web.jpg 987w" sizes="(max-width: 580px) 100vw, 580px" /><figcaption id="caption-attachment-6050" class="wp-caption-text">Photoshop&#8217;s Save for Web Dialog &#8211; creates and image at 120Kb</figcaption></figure>
<figure id="attachment_6051" aria-describedby="caption-attachment-6051" style="width: 442px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" src="http://imgiseverything.co.uk/wp-content/uploads/2016/03/image-optim.jpg" alt="Running the image through ImageOptim saves a few Kb off the file size with no loss in quality" width="442" height="427" class="size-full wp-image-6051" srcset="https://imgiseverything.co.uk/wp-content/uploads/2016/03/image-optim.jpg 442w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/image-optim-280x270.jpg 280w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/image-optim-437x422.jpg 437w, https://imgiseverything.co.uk/wp-content/uploads/2016/03/image-optim-375x362.jpg 375w" sizes="(max-width: 442px) 100vw, 442px" /><figcaption id="caption-attachment-6051" class="wp-caption-text">Running the image through ImageOptim saves a few Kb off the file size with no loss in quality</figcaption></figure>
<h2>Use mobile-sized images</h2>
<p>Mobile phones are only 300px to 600px wide so why are we sending them the same 1600px wide images that a 1920px wide desktop gets?</p>
<p>With HTMLâ€™s new &lt;picture&gt; element, we can now send different sized images to differently sized devices. We can even art direct imagery so your websiteâ€™s mobile version can get a differently proportioned image and not just a scaled down one.</p>
<p>On a recent project with <a href="http://imgiseverything.co.uk/work/economist-films/">The Economist</a>, there was a need to display different images at different screen sizes &#8211; not just to give user&#8217;s on mobile a smaller image to download, but because the design was split into differently sized modules with copy laid on top of images and some call to action buttons laid on top of the image too. The images were 600px high (in the largest module) but as the screen got smaller, the images needed to stay the same height but shrink in width. </p>
<p>As the images in question were cover images for short films it wasn&#8217;t good enough to crop the image with CSS and risk a face or important part of the image being out of frame so different images were cropped at different sizes.</p>
<h3>Here is a sample of the code used:</h3>
<p><script src="https://gist.github.com/imgiseverything/5ca53e87f1f0dda9cfbf.js"></script></p>
<p>Here we can see, that by default, a 312px wide by 600px high image is shown. Any browsers without &lt;picture&gt; support (and for whatever reason no JavaScript support) will get this image. Not the end of the world. We can size this with CSS so it&#8217;s full screen &#8211; which would make it blurred but it&#8217;s not a completely terrible fallback.</p>
<p>Then as the screen gets wider a wider image is displayed. Any screen wider than 321px gets a 471px wide image; anything wider than 471px gets a 632px wide image and anything larger than 632px gets the 961px wide image. </p>
<p><em>(N.B.The sizes 312px, 471px, 632px and 961px are merely the sizes in the design.)</em></p>
<p>The reason we set the first rule to be 321px is because an iPhone 5 is 320px wide so it&#8217;s a reasonable breakpoint, but more importantly &#8211; when the site&#8217;s gutters (of 10px either side of the image) are considered, a 312px wide image fits in the layout without any distortion. Each time the screen width becomes greater than the current image width we swap it with a wider image so user&#8217;s always get a crisp image. </p>
<p><b>N.B.</b> The picture element is not 100% supported across all browsers (as always, check <a href="http://caniuse.com/picture">caniuse.com</a> for details) so you may need some JavaScript to get it to work. That&#8217;s where the <a href="https://scottjehl.github.io/picturefill/">picturefill</a> script comes in.</p>
<h2>3 Use SVGs</h2>
<p>SVG may be a new term to a lot of people but itâ€™s likely your design team is already creating vector graphics as part of their process. Create a logo or icon in Illustrator and saving as a .eps or .ai file makes it automatically a vector. <a href="https://helpx.adobe.com/uk/illustrator/how-to/export-svg.html">So exporting it as an SVG is super easy</a>.</p>
<p>Little things like using SVGs instead of PNGs/JPGs for icons and logos can go a long way to making your website look slicker. </p>
<p>Sick of maintaining 2x or 3x size images for retina devices? Switching to SVG means you donâ€™t have to anymore &#8211; an SVG looks crisp on any device and itâ€™s easy to animate too. </p>
<p>A few years ago, developers would place all their icons inside sprites (i.e. one big image containing smaller images) but this is no longer the optimal approach &#8211; SVG is!</p>
<p>You can even optimise SVGs by running them through an app like <a href="https://jakearchibald.github.io/svgomg/">SVGOMG</a> to remove whitespace and shrink the file-size further.</p>
<h3>SVG Sprites</h3>
<p>Okay, so sprites haven&#8217;t gone away, they still make sense except now we have SVG sprites instead of giant PNGs. Inline SVGs make a lot of sense; you can animate them and manipulate them in many ways, but say you have a table with 30 rows and each row has a delete icon and an edit icon. It would be silly to repeat each SVG 30 times.</p>
<p>The solution is to put all your SVGs in one big SVG file (e.g. a sprite) as &lt;symbol&gt;s and reference your SVG like so:</p>
<p><script src="https://gist.github.com/imgiseverything/db4cfad8a4e13a339108.js"></script></p>
<p>That&#8217;s great but it doesn&#8217;t allow browsers to cache the sprite (and therefore have quicker repeated views of your website) and it adds a lot of bloat to the HTML. </p>
<p>Don&#8217;t fear help is on the way, because you can simply reference an external SVG file instead of the one inline in HTML. You&#8217;d simply edit the <code>&lt;use&gt;</code>&#8216;s <code>xlink:href</code> attribute value to have a full href value like /assets/path/to/sprite.svg#icon-close instead of #icon-close.</p>
<p>External SVG sprites aren&#8217;t 100% supported (big surprise) so you may need some JavaScript (again) in the form of a script called <a href="https://github.com/jonathantneal/svg4everybody">SVG4Everybody</a> to get it working in all the (currently) modern browsers.</p>
<h2>Summary</h2>
<p>Those fixes can be made today and your website&#8217;s visitors (users, customers &#8211; whatever you call them) will be happier if you use them on your site.</p>
<h2>Retweet this article</h2>
<blockquote class="twitter-tweet" data-lang="en">
<p lang="en" dir="ltr">3 speedy tips to optimise your web images <a href="https://t.co/OgdNkO1bcC">https://t.co/OgdNkO1bcC</a> <a href="https://twitter.com/hashtag/front?src=hash">#front</a>-end <a href="https://twitter.com/hashtag/images?src=hash">#images</a> <a href="https://twitter.com/hashtag/optimisation?src=hash">#optimisation</a> <a href="https://twitter.com/hashtag/performance?src=hash">#performance</a> via <a href="https://twitter.com/imgiseverything">@imgiseverything</a></p>
<p>&mdash; Phil Thompson (@imgiseverything) <a href="https://twitter.com/imgiseverything/status/706801073055473664">March 7, 2016</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>On job interviews and job descriptions</title>
		<link>https://imgiseverything.co.uk/articles/on-job-interviews-and-job-descriptions/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Thu, 25 Feb 2016 13:51:47 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[interviews]]></category>
		<category><![CDATA[job descriptions]]></category>
		<category><![CDATA[london]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=6024</guid>

					<description><![CDATA[Two recent articles have really resonated with me: Front-end Design by Brad Frost and Startup Interviewing is F**ked by Zach Holman. At the point of writing this, I have been freelance (full-time) for a little under 8.5 years. Initially I fell into freelancing but the reasons, 8.5 years ago, for pursuing it were down to]]></description>
										<content:encoded><![CDATA[<p>Two recent articles have really resonated with me: <a href="http://bradfrost.com/blog/post/frontend-design/">Front-end Design by Brad Frost</a> and <a href="https://zachholman.com/posts/startup-interviewing-is-fucked/">Startup Interviewing is F**ked by Zach Holman</a>.</p>
<p><span id="more-6024"></span></p>
<p>At the point of writing this, I have been freelance (full-time) for a little under 8.5 years. Initially I fell into freelancing but the reasons, 8.5 years ago, for pursuing it were down to limited opportunities (for me, as 24 year old web developer) to grow professionally. By going freelance, I was able to work for international brands via numerous different digital agencies on a variety of projects (and got paid more money too) than I would have done as a full-time middle-weight web developer (with only 3 years of industry experience).</p>
<p>Since moving to London (in July 2015), I&#8217;ve continued to freelance, but I have noticed that here, <em>compared to elsewhere in the UK</em>, there are lots of big company headquarters with well known digital teams and seemingly lots of job openings on those teams. My thought process 8.5 years ago was that to further my career it made sense to be freelance; whereas my current thought process is that perhaps working in one of these corporate headquarters as a permie would be equally career-furthering. </p>
<p>So I investigated this avenue and, shock horror, applied for some permanent roles.</p>
<h2>However&#8230;</h2>
<p>From my experience of applying and interviewing, it seems being what I call a Front-end Developer and what Brad Frost calls a Front-end Designer isn&#8217;t as sought after in the job world here in London.</p>
<p>I&#8217;d argue there&#8217;s plenty of companies needing people with a specific skill-set that straddles design, UX and dev but they all seem to be recruiting for people with advanced JavaScript skills as if their HTML and CSS is an after-thought (after all it can/will be built with Bootstrap) and anything and everything has to be built as a one-page app with React/Angular &#8211; with no thought as to whether that is the best solution for the project.</p>
<h2>A tale of a recent interview</h2>
<p>Being freelance means that I have avoided job interview hell for nearly a decade. Amazing. And being freelance means clients usually hire you based upon a recommendation or by viewing your portfolio &#8211; sometimes that is it and sometimes you may be asked to come in for a chat too. A chat. Easy. However, I did interview for a recent full-time position and it did not go great&#8230;</p>
<p>The interview was a 4 stage process &#8211; I&#8217;d argue it was 5 steps, because the first step was me trying to get the in-house recruiter to tell me what the salary was (I failed to get that information after asking several times), then you apply via CV/covering letter, then it&#8217;s a telephone interview, then a 2 hour (in your own time) test, which would be followed by a pair programming session and then a final interview in person. Overkill for sure.</p>
<h3>Interview stage 1 &#8211; the telephone interview</h3>
<p>In the telephone interview with two developers, I was thoroughly examined on my knowledge and asked to describe all the different HTTP methods like GET, PUT, POST, asked what a closure was in JavaScript. Not easy stuff on the spot. For someone who hates making phone calls. </p>
<p>On the job, I will Google answers a lot; not sure of something &#8211; Google it. There&#8217;s so many facets to this job that you can&#8217;t keep it in your head all the time. My Google search history is a litany of misspelt WordPress function names &#8211; it&#8217;s gross.</p>
<p>I managed to pass this stage. Somewhat surprisingly.</p>
<h3>Interview stage 2 &#8211; the 2 hour coding test</h3>
<p>The next step was the two hour coding test; it wasn&#8217;t too bad &#8211; the brief was to create a module/component grabbing a list of content from the company&#8217;s API that would sit on the site; you were to take only 2 hours and the resulting product was something that you should be proud to release onto the working website. In my opinion, 2 hours is not enough time for this &#8211; it&#8217;s enough time to get something working but not enough time for you to proudly deploy to a website. </p>
<h3>Interview stage 3</h3>
<p>A few days later I was emailed to say I wouldn&#8217;t be progressing to the next stage of the process, when I asked for feedback I was told my paired programming test showed that I wasn&#8217;t of a high enough standard for the job, when I explained I hadn&#8217;t done the paired programming test, and asked (nicely) if I could have some feedback on my test I got no response.</p>
<p>Pretty demoralising stuff.</p>
<h2>So what&#8217;s my point?</h2>
<p>I know it&#8217;s hard to find new developers and trust that they will come in and be able to work to your team&#8217;s high standards. A lot of applicants for these kind of jobs have none of the requisite skills &#8211; so I totally get that a process is needed and rejection has to happen and that has to be based on some criteria. If you get 100s of applicants and 95 of them don&#8217;t know basic HTML then they need to be whittled out. But, I think my pride was hurt at being rejected because I feel I&#8217;ve shown enough in my career that I can go into any team and adapt to their coding style and learn new methods quickly.</p>
<p>I&#8217;m not sure what the right solution is for interviewing/finding new developers but I do think I have a lot to offer (and so do many like me) and the current hiring process doesn&#8217;t recognise me as a good candidate.</p>
<h2>Further reading</h2>
<p>If you liked Brad and Zach&#8217;s posts then you may like these great articles too:</p>
<ul>
<li><a href="http://www.aaronstannard.com/engineers-from-scratch/">Developers Who Can Build Things from Scratch</a> by Aaron Stannard</li>
<li><a href="http://davemart.in/2015/04/22/inside-automattics-remote-hiring-process/">Inside Automatticâ€™s remote hiring process</a> by Dave Martin</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>First impressions of being a freelance web developer in London</title>
		<link>https://imgiseverything.co.uk/articles/freelance-web-developer-in-london/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Mon, 26 Oct 2015 14:44:32 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[contracting]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[london]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=5980</guid>

					<description><![CDATA[Having lived in London for few months now, I now feel I've experienced enough to form a decent first impression freelance web development in London.]]></description>
										<content:encoded><![CDATA[<p>Having moved to London a few months ago, I now feel I&#8217;ve experienced enough to form a decent first impression of the place. I can&#8217;t profess to being an expert in the London&#8217;s web development scene, but I think I&#8217;ve certainly got more of a feeling of how it works now than <a href="http://imgiseverything.co.uk/articles/relocation-to-london/">I did three months ago</a>.</p>
<p><span id="more-5980"></span></p>
<p>Last year, I moved to Cheltenham and spent the year working for digital agencies in both Birmingham and Bristol (Cheltenham is halfway between both y&#8217;see). So I have some experience in setting up in a new city.</p>
<p>But first, let me address (by which I mean rant a little) an issue about moving cities. Upon telling friends/family that you are relocating, their first response is often &#8216;<em>it is a good job you can work from home/anywhere</em>&#8216;. This isn&#8217;t really true of all web developers (some yes, but certainly not all).</p>
<p>because&hellip;</p>
<p>In my role, companies often expect me to work in their offices and quite often, that is best for the project &#8211; you&#8217;re near the designer and/or UX people (hopefully) and you can quickly discuss ideas; with responsive web design, this is crucial because sometimes designs created in Photoshop/Illustrator/Sketch don&#8217;t translate well to the web&hellip; as much as we hope they will. My point, is that it is very important that where you live is close to the (type of) companies you wish to work for. In my experience, companies based in Bristol want to hire Bristol-based web developers and companies in London want to hire people based in/near London.</p>
<p>which brings me to my next point&#8230;</p>
<h2>London is huge</h2>
<p>In the past three months, I have worked in Camden, Canary Wharf, Shoreditch and in central London. I have rented a desk in a shared office in Shoreditch and have worked onsite in those other locations. I have gone to meetings (to try and secure work) in those places too and it takes an age to get there and back. My partner and I decided to look for a home near Finsbury Park station as that was good for her work as well as mine &#8211; meaning I am only 30 mins away from Shoreditch, Clerkenwell and central London where I&#8217;d guessed all my work would come from.</p>
<p>And that&#8217;s fine, most work does seem to come from those places but then, it turns out there is a lot of work to be found in Canary Wharf and that seems to take aaaages to travel to&hellip; and it is not a fun journey. While I worked in Manchester, I could easily pop into a client&#8217;s offices for a meeting across town because the city centre is so compact but London is so vast that a meeting on the other side of the city can wipe out your schedule for the day &#8211; or, at the very least, the afternoon.</p>
<h2>The work is different</h2>
<p>I had presumed, as in Bristol, Birmingham and Manchester that I would work for digital agencies. Before I got here, I collated a list of the agencies I wanted to work with here in London and the plan was to contact them, set-up meetings and secure some contracts but when I got here I quickly realised that there seemed to be more jobs working directly with clients in their in-house digital departments.</p>
<p>Since arriving in London, I have worked directly with <a href="http://imgiseverything.co.uk/work/topshop-blog/">Topshop</a>, Viacom and The Economist. Work that I could not have hoped to achieve whilst living in Manchester mainly because large commercial companies don&#8217;t tend to be located outside of London &#8211; some are but most aren&#8217;t and when there&#8217;s 1000s of businesses all located in the same city it is a lot easier to find work. </p>
<p>In this slightly different marketplace, you are a <em>contractor</em> as opposed to a <em>freelancer</em> and other differences seems to be that the day-rates seem to be higher and often the <a href="http://imgiseverything.co.uk/articles/freelancers-guide-getting-paid-10-steps/">client pays their invoices</a> in anywhere from 7 days to 14 days after invoicing &#8211; which is rare if you work with agencies.</p>
<h2>Work is both easier and harder to find</h2>
<p>A slight contradiction here, because there is lots of work; in digital agencies, in medium-sized companies, in large companies, in government organisations and once you tap into that it&#8217;s easy to find work and go from job to job but it&#8217;s hard to tap in to because most of the recruiting of contractors seems to be done via recruitment consultants and actually finding out who the right person to speak to at a specific organisation can be quite difficult.</p>
<p>Want to contract at the BBC? Great there&#8217;s loads of roles going but unless you know the specific person recruiting for that role you&#8217;re not going to get very far &#8211; you won&#8217;t even know a role is available let alone be able to apply for it and it&#8217;s like that for a lot of organisations.</p>
<h2>Angular/React/MVC libraries</h2>
<p>There seems to be a lot of work for people with knowledge of Angular and other associated JavaScript libraries all across London with some eye watering day rates on offer too. I&#8217;m not 100% sure why so many organisations are making what should be traditional websites (i.e. not web apps) that don&#8217;t really benefit from a framework like Angular or React but they are and they&#8217;re willing to pay a fortune for the pleasure.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Relocation to London</title>
		<link>https://imgiseverything.co.uk/articles/relocation-to-london/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Wed, 05 Aug 2015 10:45:21 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=5920</guid>

					<description><![CDATA[A year ago along with my partner, I relocated from Manchester to Cheltenham and sought freelance work on-site at agencies in the South West and West Midlands. This plan went very well (if I do say so myself) and I ended up meeting some amazing people and working at some great agencies like CX Partners]]></description>
										<content:encoded><![CDATA[<p>A year ago along with my partner, I relocated from <a href="http://imgiseverything.co.uk/articles/south-west-freelancer-frontend-developer/">Manchester to Cheltenham</a> and sought freelance work on-site at agencies in the South West and West Midlands. This plan went very well (if I do say so myself) and I ended up meeting some amazing people and working at some great agencies like CX Partners and e3 in Bristol, and 383 Project in Birmingham.</p>
<p><span id="more-5920"></span></p>
<p>However, after a year, my partner&#8217;s work contract came to an end. So we decided to start a new adventure and move to London and I will be starting all over again by targeting work with London agencies and start-ups. </p>
<h2>Why London?</h2>
<p>Bristol, Birmingham, Manchester and many other UK cities have flourishing agency scenes with an abundance of front-end work for freelancers but they have less freelance opportunities inside bigger companies and/or smaller start-ups whereas London offers opportunities in all types of organisations. Something which is very exciting.</p>
<p>Similarly to when I first moved to the South West, the first month or two of this move will be spent making new connections, going out and meeting people and trying to prove my skills to people I&#8217;ve never met before &#8211; whilst doing remote jobs for existing clients and trying to find a nice deskspace.</p>
<p>If you&#8217;re a front-end developer in London (or looking to hire one) please <a href="https://twitter.com/imgiseverything">say hello via twitter @imgiseverything</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to get that first web development job</title>
		<link>https://imgiseverything.co.uk/articles/first-web-development-job/</link>
		
		<dc:creator><![CDATA[Phil Thompson]]></dc:creator>
		<pubDate>Thu, 14 May 2015 11:00:54 +0000</pubDate>
				<category><![CDATA[Best of]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[employment]]></category>
		<category><![CDATA[job]]></category>
		<guid isPermaLink="false">http://imgiseverything.co.uk/?p=447</guid>

					<description><![CDATA[You&#8217;ve just graduated from university, or college and you want to get a job as a web developer / web designer, but it turns out it&#8217;s much harder than you realised. So how do you get that first job as a web developer? This post was first published 1st January 2009 but has been updated]]></description>
										<content:encoded><![CDATA[<p>You&#8217;ve just graduated from university, or college and you want to get a job as a web developer / web designer, but it turns out it&#8217;s much harder than you realised. So how do you get that first job as a web developer?</p>
<p><strong>This post was first published 1st January 2009 but has been updated 14th May 2015.</strong></p>
<p><span id="more-447"></span>Your parents and friends might be telling you that your lack of employment is down to the current economy but here&#8217;s the real truth; the truth that your lecturers and parents don&#8217;t know: for the vast majority of educational courses, everything you&#8217;re taught is not very useful in a commercial environment and regardless of the economy, that first job can be bloody difficult to land.</p>
<p>Web agencies want, no, demand junior developers to come in and to be able to start work immediately and most graduates can&#8217;t do that. Of course, a junior developer will learn on the job and constantly improve and with the help of a good middleweight or senior developers above them, they&#8217;ll improve significantly more but they need to have the basics down first.</p>
<h2>The basics</h2>
<p>Every agency is different but the basic tasks for a junior web developer could consist of:</p>
<ul>
<li>buying domain names and updating/setting-up DNS on those domains</li>
<li>setting up a local web server with <a href="https://www.apachefriends.org/">XAMPP</a> or <a href="https://www.mamp.info/en/">MAMP</a> or a more senior dev may have set-up <a href="http://gruntjs.com/">Grunt</a>/<a href="http://gulpjs.com/">Gulp</a> tasks to do this</li>
<li>building HTML/CSS templates from a Photoshop/Illustrator/Sketch design</li>
<li>backing up files in version control (GIT but maybe SVN if you&#8217;re unlucky)</li>
<li>installing/setting up a new website with the agency&#8217;s in-house CMS or open source varieties like WordPress/Drupal/ExpressionEngine etc</li>
<li>keeping track of time and learning how long it takes to do key tasks</li>
<li>quickly explaining your previous day&#8217;s work and current day&#8217;s plans at the morning stand-up meeting</li>
</ul>
<p><a href="http://www.codecomputerlove.com/">Code Computerlove</a> have published a series of articles where key people in their team detail what they do on a daily basis:</p>
<ul>
<li><a href="http://www.codecomputerlove.com/blog/2013/11/a-day-in-the-life-of-a-web-developer/">Day in the life of a (back-end) Web Developer</a></li>
<li><a href="http://www.codecomputerlove.com/blog/2013/03/a-day-in-the-life-of-a-front-end-developer/">A day in the life of a Front-end Web Developer</a></li>
</ul>
<p>When I went to university to study Computer Science, I certainly didn&#8217;t learn any of those basic skills in lectures or in projects. Some, I picked up in a placement year, where I worked as web designer for the local council, but for the most part I picked those skills up on my own in my spare time and so did everyone else in this field &#8211; we&#8217;re all self-taught by <a href="http://www.alistapart.com/">blogs</a>, <a href="http://imgiseverything.co.uk/articles/dom-scripting-by-jeremy-keith/">books</a> and <a href="http://www.boagworld.com">podcasts</a>.</p>
<h2>How I got my first job</h2>
<p>In my first year at uni (2001&ndash;02), the lecturer in charge of  industrial placements told us that there were &#8216;<em>no jobs in web design/development</em>&#8216;, this made my heart sink. However, a year later when the work placements started to be advertised on the university notice boards at least half were for web based jobs. I decided then and there that I wanted to be a web developer and that such a thing was actually possible. Sadly, every placement I applied for wanted me to have experience which I didn&#8217;t have.</p>
<p>After six months of trying to get a placement which involved lots of (failed) interviews, I realised I needed some hands-on experience to get any sort of credibility with interviewers, so I started to maintain the website (for free) of the charity that my girlfriend&#8217;s mother worked for. My CV now had some experience and a URL on it. In interviews I talked about it to prove I had relevant experience, not to mention initiative and eventually with only one week before term was due to restart I got that work placement.</p>
<p>Fast forward to my final year (2004&ndash;05), and in January/March, I sent out a mail merge to around 30 different Manchester, Cheshire and nearby web agencies informing them of who I was and that I was graduating in six months. Nothing much happened; I might have got three emails all of which said, <em>thanks but they weren&#8217;t interested just now</em>. In hindsight, I would not advise this blanket approach. A better approach is to research 3&ndash;5 places you&#8217;d like to work then target them specifically. A mail-merge letter comes off as a bit insulting which was something I did not appreciate when I was looking for my first job10+ years ago.</p>
<p>Closer to graduation, I put my CV online with large job websites (the kid you see advertised on TV) and started applying for jobs &#8211; still nothing. With one month to graduation, I put my CV on local digital industry website, <a href="http://www.manchesterdigital.com/">Manchester Digital</a>, and I received an email which eventually lead to my first job at JJB Sports in their Marketing department. By spreading myself out and trying different techniques I found one that actually worked!</p>
<h2>How you can get your first job</h2>
<p>I would consider not hiring someone who:</p>
<ul>
<li>has a hotmail/yahoo email address (<em>tip: why wouldn&#8217;t you have your own domain as a wannabe developer?</em>)</li>
<li>doesn&#8217;t have a web presence e.g. a website/blog/online portfolio/github (or equivalent) or a twitter account</li>
<li>has no experience whatsoever</li>
</ul>
<p>The last point is a big one. Experience is everything in this industry. You can get very far very quickly with no qualifications, if, that is, you have the requisite skills. A good education is brilliant but if the person in competition with you for a job has a years experience on their CV and you only have a degree then the experienced person looks better (in most cases).</p>
<p>You have to get your name out there, so apply for jobs, <a href="http://twitter.com/imgiseverything">talk on twitter</a>, <a href="http://www.meetup.com/">try to network</a>, try to learn some important people&#8217;s names. Everyone in this industry knows everyone else therefore, if you apply to agency X and don&#8217;t get the job but you impress someone then an employee working at agency X might tell their friend working at agency Y about you.</p>
<h2>Networking</h2>
<p>Ah that dreaded word. Most (but definitely not all) developers are introverts and the thought of networking, strikes fear into them (it certainly does for me). However, there is a difference between traditional networking events (think walking into a large hall with people in suits and starting conversations with these people, who you don&#8217;t know, about work stuff) and merely getting to know people in the industry a little through Twitter, email, or having a casual chat at a design/dev talk like <a href="http://www.glugevents.com/">Glug</a>.</p>
<h2>Getting the experience</h2>
<p>If you have no experience and therefore no commercial references, you should make it your mission to obtain some. If I were in that situation (again) I&#8217;d be looking to:</p>
<ul>
<li>set up my own website/blog</li>
<li>set up a website for a friend&#8217;s/relative&#8217;s small business (and get paid for it)</li>
<li>work for free* (or low pay) in a local web agency &#8211; making tea if I had to</li>
<li><a href="http://imgiseverything.co.uk/articles/junior-web-developer-salary/">take a lower paid (than expected) job as web developer</a></li>
<li>work for a local web agency &#8211; not as a web dev but maybe in a different role and work my way up</li>
<li>read books/blogs and practice web development as much as possible</li>
<li>make some money while waiting for that dream web development job</li>
</ul>
<p>If you apply for a job with no commercial experience, but you have built your own website then you&#8217;ll instantly look much better than your competitor who has no experience and no website.</p>
<p>* Point of note about working for free. Working for free to get experience is a good idea but don&#8217;t do it for too long. 1-2 weeks is fine. If an agency wants you to work for 1-3 months for no pay then they are most likely taking advantage of you and the chances are there is another agency somewhere willing to pay you to do the same job.</p>
<h2>Summary</h2>
<p>All web agencies are looking for people, and whilst it may be true that some are putting a hold on hiring right now due to the current financial situation, a lot more agencies are crying out for good junior web developers but they just can&#8217;t find them. Your mission is to seek out these people and let them know you exist and how good you are. You&#8217;ll save them time and money on advertising for people and you&#8217;ll save them from have to deal with recruitment agencies because they loathe that exercise.</p>
<p>By no means am I an expert on employment; these are just my experiences and advice. You may be a student on a fantastic university/college course teaching you everything you need to know &#8211; not all courses are crap but sadly, a lot of them are.</p>
<p>If you&#8217;ve got an experience or some advice on getting that first job that you&#8217;d like to share; I&#8217;d love to hear it.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
