More Advice on running a company

Following on from my post How to run a small company in Australia, here is some more business advice, in no particular order:

  • Keep an eye on cash flow. It can be great to send off thousands of dollars of invoices, but if you don’t have the money today to pay suppliers (or employees) then you’ve got a problem. People don’t like being paid in promises, they prefer cash. I feel very uncomfortable if I have less than a full month’s expenses (including wages) in the bank. I like having two or three.
  • Know the failure rates, and plan accordingly. My business is now almost three years old, and it’s only now that I’m starting to think “you know what, I might just be able to make this work”. A source of mine at the Commonwealth Bank says they see 70% of start up businesses fail within the first year. From my point of view, one of the key success factors is not to dream big before you’re capable. Don’t buy into the Silicon Valley mindset of buying brand new Aeron chairs for every staff member, when you don’t even have a single client (or a product/service, even). Doing so is a guarantee of failure, in my opinion.
  • Ideas really are worthless, and implementation of them is a lot harder than you first imagine.
  • Time management is important, and difficult. “Work” as such never really stops, and work hours are unpredictable. I sometimes start at 7:30am, and I’m quite often working at 10:30pm. On the other hand, sometimes I will work only a couple of hours a day and then go to the beach. But one thing is constant: worrying about the business. Worrying about client work, worrying about bills, worrying that my staff are happy, and so on. I’ve spent a lot of time learning about time management, and I might go into this in more detail in another post, but the key is this: fill your schedule up with big rocks.
  • Ask for help before you need it. Get all the advice you can. Not all of it will be good (indeed, some of it will be awful), but pick out the good stuff. Get advice from your bank before they need to bail you out, they’ll be much happier.
  • If you’ve got multiple directors and/or senior staff, think about who has access to bank accounts.
  • And the most important thing: starting my own business is the most exciting thing I’ve ever done. If you have the inspiration and the opportunity, do it. If you don’t have the opportunity, try to make the opportunity happen. Business ownership is an amazing feeling.

Australian Pomp and Ceremony

As Australians, we’ve always been very uncomfortable with who we are. Descendants of British settlers feel nervous about how Aboriginal people were treated (and to some extent still are). Aboriginal people feel uncomfortable because they have been made to feel like second-class citizens for a large part of our history (because they were). More recent immigrants are locked away in detention centres, despite our national anthem’s promise of having “boundless plains to share”.

It’s no wonder, then, that when Australia Day rolls around, everybody gets a little bit confused. Nobody knows quite how they feel about giving out Knighthoods and Damehoods again, but we’re pretty sure they shouldn’t go to a racist old fart who isn’t even Australian. I feel personally that knighthoods are a great addition to the Order of Australia, and it’s good they are being given out again. However, they should be recommended by the Order of Australia Council with no involvement from the Prime Minister.

Things like the Australian Flag should fill every Australian with a sense of pride in our country. Unfortunately, when I see it I feel a sense of shame, as it has become associated with racism and other forms of bigotry. It’s unfortunate that these things which should unite us instead tear us apart.

A lot of people say we need to talk about who we are as a country. That usually means becoming a republic. That’s not going to help one way or the other. We need to make a lot of small changes, that together will make every citizen feel a part of Australia.

Firstly, we need to live up to our promise in the national anthem: for those who come across the seas, we should share our plains with you. Being more civil to refugees should be top priority. We can’t treat people as sub-human any longer. These people are escaping terrible places. Why else would you get in a leaky boat and sail across the ocean with only a mild hope that you might get to Australia? I understand the need to perform security and quarantine checks on people before we let them into the wider community. But these checks can be done in days or weeks, not months or years. They can also be done on the Australian mainland, not a foreign country. To do otherwise is pandering to bigots, and that’s not something I want my country to be known for.

Our honours system needs some work, as I’ve outlined above. We should have Knighthoods and Damehoods, as they are internationally recognised and bestow a fine honour amongst those people who deserve them. But we should have more conversation about who gets them. I think only Australian citizens should be eligible. I think only the Order of Australia council should be able to recommend to the Queen who gets them, with no political involvement from the Prime Minister or his office.

It’s about time we changed our flag, too. The problem is, to what. I don’t have a solution here. Some people have suggested replacing the union jack with the aboriginal flag, but that then diminishes the contribution given by the British settlers to this nation. Far better, I think, to not acknowledge any particular race on our flag; we are all the same on the inside after all.

Australian flag with the aboriginal flag replacing the union jack.
The proposed replacement flag.

I’m really happy with the trend I’ve been seeing in the last few years of having a  “Welcome to country” by Aboriginal community representatives for formal events. I’ve even been to technical conferences where this has occurred! This seems to me to be a very subtle and inclusive way to acknowledge the history of the land on which this country is built.

One thing that I don’t think is particularly helpful is a discussion about being a republic. There are actually far more important things to get fixed, and we can fix them without spending years fighting amongst ourselves over who gets to be our head of state. Whilst I’m not against a republic, and would probably vote for one if a referendum was held today, I think both the current Queen and her successors are doing a fine job. Whilst a lot of people dislike Prince Charles, I can’t figure out why: he spends a lot of time fighting for good causes. He’s an environmental campaigner, and I like that.

Queen Elizabeth II firing a machine gun.
The queen, meanwhile, is pretty epic.

Whilst it’s uncomfortable to talk about who we are, sometimes these discussions are necessary in order to better ourselves. Every citizen will never be equal (capitalism and human power struggles will team up to prevent that from ever happening). We should endeavour, in any case, to give every citizen equal opportunities, as far as we can. We need to make every person feel included in our country of Australia.

Videos from linux.conf.au 2015

The penguin dinner (the “formal” conference dinner) for linux.conf.au 2015 was held at the Museum of Transport and Technology in Auckland. This was pretty cool epic and amazing. Here are the videos I managed to capture of some of the machinery at work:

Unfortunately, I took an amazing 5-minute video of a triple-expansion steam engine being started up, but I’ve lost the footage – I think my phone might not have saved it. 🙁

On the Saturday after the conference, I went on The Northern Explorer, a train trip from Auckland to Wellington with a few friends. Again, I took a number of videos (as well as literally hundreds of photos):

This is actually the first time I’ve bothered capturing videos as well as photos on a trip. My phone (a Google Nexus 5) has proved that it can do 95% of the job of my dSLR in capturing the essence of a scene, and that’s good enough for me. It helps that I carry my phone everywhere, too. I will definitely be considering buying some sort of small tripod device though; as it turns out my hands are very shaky.

I have the NBN!

It took a long time, and was a complete ordeal to organise (seriously, telecommunications companies have the worst customer service ever), but I finally have an NBN connection at my apartment!

Before:

1.19MB/s down, 0.10MB/s up, 20ms latency

After:

2.98MB/s down, 0.60MB/s, 3ms latency

I’ve chosen a 25/5 Mb/s “Silver” plan from Internode, which provides roughly 5 times the speed of my old ADSL2+ connection in both the upstream and downstream directions, as well as much lower latency. I’m really excited about the increased upstream bandwidth, it should allow me to host services from my house more comfortably.

PyConAU 2014

IMG_20140802_132246This weekend I attended PyConAU , a community-run conference for the Python programming language. Held this year in Brisbane, it was a good excuse to learn some new things, catch up with old friends, as well as make some new ones.

I have a soft spot for Brisbane. In addition to having family live here, I also love their public transport system: a well-integrated system of buses, trains and ferries run on a reliable and frequent schedule to all areas. Their AirTrain is hands down the easiest public transport solution from an airport to a city (miles ahead of Melbourne’s cramped buses). The conference was held at the Brisbane Conference and Exhibition Centre, which is the centre of the city’s cultural district, with museums, theatres and shopping and dining areas all around. It’s a wonderfully laid out modern city.
IMG_20140801_165033
The first keynote was by the director of the National Computer Science School (NCSS), and generally awesome guy, James Curran. My experiences at NCSS back in 2007 helped formed my programming abilities and gave me the knowledge that there was other life out there: an entire programming community, and being in IT was a good place to be.

A highlight of the talks on Saturday was a talk on caching for web services by Tom Eastman. He talked extensively of using HTTP protocol elements to control the cache in proxies and in web browsers. Whilst the examples used Django, the concepts will be useful for my work using ASP.NET.

An interesting part of the conference is talking to people outside talks, and this conference has been no exception. I’ve met many new people, including some stars of the Python world. I’ve also learned that many of the things I do in my daily programming life are wrong, and it’s great to learn more about best practices.

A traditional part of PyCon AU (as well as linux.conf.au, to an extent) is the end-of-day lightning talks. In particular, two talks in the Saturday session really appealed to me. First of all was Josh Deprez‘s talk on “node.hs”, where he talked about implemented Haskell in node.js, but instead wrote a lightning simulator within 5 minutes.

Secondly, and possibly of more long-term consequence, was Russell Keith-Magee‘s talk on Toga, a cross-platform UI toolkit that displays widgets using the operating system’s native widgets. So instead of your cross-platform app looking great on GNU/Linux (where GTK+ is native) and crap on Windows or OS X, it will look good on all three platforms (and possibly more in the future).

The final event of Saturday was the conference dinner, a traditional three-course sit down event with a lovely speaker named Paul Gampe (who worked in ISPs during the early nineties, making me very jealous). He gave a few lessons he learned working with the early FOSS and Perl communities, and why Python should make efforts to avoid these problems.

IMG_20140803_104959After dinner I retreated to my hotel room (I have made the mistake before of staying up with people all night and missing most of the talks on Sunday). However, I didn’t go straight to bed. I instead checked out Toga in more detail, and tried to get it running on Windows (it’s a very new piece of software). After a bit of code wrangling, I managed to get a blank window appearing on the screen (as my excited tweet about this shows). My patched code is now in the Toga repository, which is pretty cool.

Sunday morning’s keynote was given by Katie Cunningham on the topic of accessibility. I’ve heard more and more about this recently (especially through a talk at WebDev42 recently). The gist of her talk was that the tools and support and standards are there, and the only reason developers aren’t building accessible sites is because they’re lazy or don’t know better (her point was a bit more complex than that, but that was roughly it).

Two talks I really enjoyed during the rest of Sunday were Russell Keith-Maggee’s talk on building Python wheel packages (basic information that, being a very junior Python developer, I didn’t know) as well as Josh Hesketh’s talk on database migration testing. While Josh’s talk targeted Python projects and OpenStack in particular, the concepts are useful across basically all programming platforms. I’m lucky in that managing database migrations is something that Entity Framework (my C# ORM of choice) does for me.

After the conference finished, I completed my trip by visiting family for dinner and dropping in on a few Brisbane-based clients, before flying home (via Melbourne, of course, to earn maximal status credits).

As always, attending PyCon AU was a great experience, and I can’t wait for next year (it will be held in Brisbane again next year). In my mind PyCon AU is a very similar conference to linux.conf.au. I go for the same reasons: great community, great people, great content, and great fun!