Posted in Development, People, Work Styles

Victoria University of Wellington ICT Careers Expo

In early May, a sizeable chunk of Powershop’s delivery team made a bright pink appearance at the ICT careers expo at Victoria University’s Kelburn campus. We were a diverse group of former and current Vic Uni students, dev managers and our almighty CTO. We set up our stall in the morning, and set out to make a lasting impression on every student we talked to. Our goal with this event was to spread the word about Powershop’s delivery work and culture, and to meet some awesome people. Powershop has had great success with finding interns through Summer of Tech (SoT) in the past; we’ve hired 14 interns through SoT over the last four summers! Nine of these interns are now working as permanent full-time software developers (including myself), and the current batch of interns are with us part time while they finish their studies. Our internship programme aims to give students an all-encompassing experience of […]

Posted in Development, People, Work Styles

Fear and Coding at Powershop

Starting a new job is an experience that falls somewhere between ‘somewhat stressful’ and ‘utterly terrifying’. When I started at Powershop 10 months ago I was very anxious, not least because it was my first job as a Software Developer. My mood one week after starting at Powershop was the polar opposite. I still felt like the ‘new guy’ in a lot of ways (I didn’t yet feel comfortable coming to work in jandals and shorts, for example), but my anxiety had been replaced with confidence and excitement. This transformation can be largely attributed to the unique training program that all new Ruby on Rails developers go through at Powershop called the “Devtrain”. This blog post explores the Devtrain experience, in particular as it pertains to employee fear and anxiety. Before we get into that, though, let’s take a quick look at where I’d come from prior to joining Powershop: Hospitality Construction Agricultural Contracting Sales Evangelism […]

Posted in Development

Our journey to TDD

Steven and I came to Powershop in late 2013 to work on the company’s Android application. The original application had been built by a third-party and had no test coverage at that stage. Neither Steven nor I had experience writing tests other than what we had learnt during our formal education. Jason, our product owner, would do manual testing for both the iOS and the Android applications. We had a considerable number of incidents back then, some of which forced us to make patch releases from time to time. Soon the amount of effort involved in manual testing increased. To release Jason from (part of) that burden, Jess joined our team as a dedicated tester for both apps. After gradually polishing our development and testing process, the number of bugs that made it to production significantly decreased. We still had a similar amount of bugs in our code, however most of them were now being […]

Posted in Design, Development

My road map to refactoring CSS in large code bases

For any organisation working on a large code base over a long period of time there will eventually be a point where the code has become unwieldy and it’s time to do a clean up. In the last few years we’ve seen CSS3 standards roll out, some great tools and preprocessors such as SASS, the Rails Asset Pipeline (sprockets), and new standards for images such as SVGs. We’ve also seen how necessary responsive layouts are for the (ever growing) mobile user-base. We’ve all seen how CSS files can quickly get unwieldy and the cringe moment of finding code comments that say things such as /* Temp fix */ and it’s still there four years later. Let’s think about the timescale of front end technology…I imagine it being like aging in DOG YEARS. So that makes a seven year old code base like 40-50 human years. By this age people tend to have accumulated a lot of stuff. It’s […]

Posted in Development, Work Styles

Reflections of a new Powershop software development manager

Hi, I’m Emma and I’m a software development manager with the team here at Powershop. My role is a little different around here compared to the technical focus of developers. I am one month in and would like to give you a fresh insider’s glimpse into this special place. What does that look like in practice? What impact does it have on how people work? I have condensed these into five things that have resonated with me in these first weeks. I’ve been a Powershop customer for five years. I hadn’t previously been excited about electricity, let alone paying for said electricity. A colleague had recommended Powershop when I moved house. Everything was suspiciously easy and awesome. My interest as a conscious consumer grew into a professional interest in following years: their mobile app kicked ass; they did fun, playful, smart things in the tech community; people smiled with their eyes when they talked about working at Powershop. Something […]

Posted in Development

Diagnose SSL certificate issues (with openssl)

Lately I have been confronting issues with various sites’ SSL certificates. Here’s a quick guide to how to work out the issue so that we can resolve the problem at hand. SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed You might see the above error while connecting to https://example.com. What does that mean? In simple terms, it means that your SSL client has probably failed to verify that the certificate for the domain is ultimately issued by a “root” Certificate Authority certificate. [1] It might also be possible that the certificate has expired. Currently, there are some fantastic online resources that can check all aspects of a SSL certificate for you. I find these two sites to be very valuable. These would be my first port of call: https://www.sslshopper.com/ssl-checker.html https://www.ssllabs.com/ssltest/analyze.html Google Chrome also shows a lot of useful information about the certificate if one clicks the padlock icon on the left of the […]

Posted in Development, Hack Days

Dev Talk: Helix Pi, A way to make games with no code required

Helix Pi is a side project I’ve been working on over the last two months, outside of work and during hackdays. It’s a browser based tool to allow anyone to make, mod and share games with no coding knowledge required. I gave a talk at Powershop about how it works and what I’m trying to achieve. Check it out. If you want to have a play around, you can try it out at helix-pi.net. Helix Pi is open source under the MIT license. You can check out the code on Github.

Posted in Development

Ruby gems: Writing one for Powershop

During the last two weeks at Powershop I wrote and published one of my first gems as part of a development task. The gem is called Stopwatch and can be found on GitHub and RubyGems. For a bit of context, recently we had a performance issue with a couple of pages that made them take a few seconds to load. The performance issue was O(N), proportional to how long a customer has been with us. When trying to fix the issue, we also want to prevent it from being introduced again—that’s where Stopwatch comes in. The gem allows you to write automated tests that assert the run time of some task (e.g., loading a page). The idea was that we could write a test as follows: expect { get :index }.to run_for < 0.5.seconds The gem’s RSpec matcher, run_for, will 1) discard a warmup run of the task, 2) time multiple runs of the task and 3) average the run times. While this worked as expected, we have so far encountered […]

Posted in Development, Events

RubyConf AU – Legacy Code

A bunch of us from Powershop went to RubyConf AU 2015 – held this year at sunny Melbourne. There were heaps of excellent talks and we have had lots of opportunities to mingle with the local developer community. One talk was given by Keith Pitty in which he charts out how to deal with Legacy Code. This is an interesting talk for those who really love maintenance. OK, that might be a unicorn in the forest 🙂