DEV Community

Pete
Pete

Posted on • Originally published at nocsdegree.com on

From pilot to self-taught software engineer

From pilot to self-taught software engineer

In this interview Devan talks becoming a self-taught software engineer and how he started his own business.

Hey, so can you introduce yourself?

Hi, my name is Devan, and I am the founder of an HR platform for small to medium businesses called ‘HR Partner’. I’ve been a (self taught) software developer for most of my life, and probably written hundreds of apps over the decades, ranging from small utilities, games and mobile applications, to enterprise level business management apps, and now to a worldwide cloud based SaaS.

I currently live in the small town of Darwin, the the tropical far north of Australia, but my wife and I are keen to build a business that lets us live for short stints of time in any country in the world and run things from a laptop, which have pretty much achieved, apart from the fact that the current global pandemic has shut down all our travel plans!

How did you learn coding?

I have been pretty much self taught from day 1. There was a 6 month period where I started doing a Computer Science degree at a local university, but a couple of semesters in, I was just getting so much work via my fledgling business, that I had to quit the course to have enough time to work on client projects. The CS course back then was really rudimentary, and I remember we were learning in lectures about things like punched cards etc., and I could tell that modern computing was already way past that, and that I would probably learn more by being ‘on deck’ and in the field, actually working on real world problems.

There was no internet back then, so I used to subscribe to publications like Byte magazine or Computer Language magazine and Dr. Dobb’s Journal etc. and pore over the code snippets and articles in there.

I was also an avid BBS (Bulletin Board System) user, which really was the precursor to the internet, and I used to have great conversations with other programmers on there and pick up tips etc.

Every language I have learned since then has been self taught. I think I have worked in over 30 different languages in my time. My current SaaS is written in Ruby, and it is the first major Ruby development I have done (currently standing at around 45,000+ lines of code). It is funny because I look at the first bits of Ruby code that I wrote 5 years ago in the codebase, and it is SO different from the Ruby code I wrote last month.

You can improve your coding skills by taking one of the very popular courses by Wesbos. He is a self-taught developer who offers a huge amount of courses including Javascript for Beginners, Learn Node, React for Beginners and Advanced React. (Affiliate)

What were you doing for work before coding?

When I left school, I actually studied and qualified as a commercial pilot! However, flying jobs were scarce back then (in the early 80’s), and I found it difficult to break into an airline. At about the same time, my dad bought one of the first IBM PC’s to ever be released here in Australia for his medical practice, and I immediately became intrigued by configuring it and making it do my bidding via script commands, along with the arcane, almost magical languages used to achieve this.

I bought a copy of Turbo Pascal online (my first ever online purchase), and quickly discovered that I had this strange knack of being able to solve real world problems by using software. I loved coding and learning new things, and that is when I realised that I could actually make money by getting people to tell me about the challenges they were facing in their businesses or day to day life, and using my skills to overcome that. I think the first ‘real’ program I ever wrote was a point of sale and stock management system for a local pharmacy.

That lead me to start my first business consultancy practice where I was the sole developer, and would write code all day using Turbo Pascal, or dBase II, Clipper, and a variety of other tools that were available in those early days of computing.

From pilot to self-taught software engineer

How did you get your first entry level software engineer job?

The IBM dealership that sold my dad his first computer saw some of the stuff I did on that beast when they came over to do some routine support work, so they ended up offering me a job almost straight away. I worked there for an enjoyable couple of years, where I wrote various applications for their customers.

I am lucky enough to live in a small town where word of mouth was the most powerful way to get recognition, and it wasn’t long before I was inundated with requests for business databases to be written. I left that first job of mine to start my own business at 21 years of age, and haven’t really stopped since.

From pilot to self-taught software engineer

What advice do you have for someone without a CS degree who wants to get their first programming job?

If you seriously love programming and get a kick out of writing a good piece of code, then my advice is to just dive in and go for it. I used to worry about not completing my CS degree, but you know what? In the nearly 4 decades since I quit my degree and started working for myself, NOT ONE person has ever asked to see my qualifications. I guess my work stands for itself, and people tend to see real world results over academic qualifications, which is really cool.

However, if you see coding as just a quick pathway to making lots of money, and you don’t really enjoy it, then I would ask you to reconsider. You will likely burn out if you don’t have that passion for problem solving via code. Some of my happiest, and most motivating times have come when I was so frustrated with non-working code, and on the brink of giving up when I came across a quirky solution that worked.

I think if you are of the mindset that it is OK to find solutions that are outside the norm, and you love finding different ways to approach a problem, and you enjoy things like problem solving and creative strategy, then you could thrive in this sort of industry.

Have you ever had imposter syndrome?

You know, I have been asked this many times either individually, or at conferences, and I always say “No”. It is a concept that is really foreign to me. Before everyone starts lynching me for being arrogant or weird, let me explain.

You see, I think this has a lot to do with my upbringing. My dad, who was a very successful doctor, always instilled in me from a very young age the lesson that: “No matter how much you know, or how clever you think you are, or how good you are at doing something, Every person you meet in this world can do certain other things better and cleverer than you can”.

My dad actually grew up in a poor family in Sri Lanka, and he was the eldest of 12 children. He worked hard at school and won a scholarship to study medicine at Adelaide University, and when he became a doctor, he was always helping out his siblings and other people to get ahead. He lived that mantra he taught me everyday, and even though he was a highly respected professional in his field, I saw him treat people from all walks of life, from bus drivers to shopkeepers or politicians and strangers, with revered respect.

I learned from him that every single person I meet in my lifetime can teach me something, so I approach everything I do with the mindset that while everything I have achieved is great, I can still learn more. I think this goes a long way towards really quashing that ‘impostor syndrome’ mentality, because when you accept that others will always be better that you are at different things, then you will cease to compare yourself against them, but instead openly seek guidance from them.

What does a typical day as a software developer at your company look like for you?

Every day is so different, but I think most days start with me waking up at about 6am and doing a quick stint of checking the support requests that have been handled by our remote team while I have been asleep. I am usually looking for things like feature requests and bug reports that I can add to our roadmap.

Then I log on to our Phabricator system, which is where we manage all our development tasks and bug tracking, and I do some code reviews of commits that our remote development team has submitted during my night hours.

Then I will go ahead and start working on some coding based on our Trello roadmap priority list, and I will post those up to Phabricator for the other team members to review. (We believe in full 2 way code reviews for everything that is added or modified in HR Partner, no matter the seniority of the programmer doing it. I wrote 99% of the codebase initially, but even then, I submit stuff I do for even our newest, most junior developers to review - it is all part of the learning culture we have here at HR Partner).

Then about mid morning, I will usually take a break from working and go engage in some of my other passions, such as music (playing guitar or doing some recording) or chess, or just read a book, exercise, and have some lunch.

In the late afternoon, about 4pm, is the time that my development team members around the world are starting their work days, so I will get back on Slack or Phabricator to discuss the latest code commits, finish reviews and push changes to our staging and production servers. I will usually stay on until about 6 or 7pm when I again take another break to prepare dinner (cooking is another passion of mine) and spend time with my family.

I sometimes do a last minute check in with the team around 9 or 10pm before I go to bed in case there are any other blockers that need to be taken care off, then I hand off to them and go to sleep.

Can you tell us about the process of building HR Partner?

As I mentioned above, I spent about 3 decades working with hundreds of different small businesses solving their problems. A large part of that work was also installing accounting and payroll systems for them, and I used to listen to all their feedback about issues they would have managing their employees.

I took all of that feedback from all those years, and finally in 2015 I decided I didn’t want to write software based on other peoples specifications, but instead wanted to write a software project of my own where I had completely say in what it would be.

So I decided to distill all that knowledge I had learned over the years about what small business owners wanted in an employee management system, and HR Partner was born out of that.

I didn’t really build an MVP or anything like that, but instead went against the normal practice by building the final system based on everything I knew up to that point, then released it. It was at that point that I realised that marketing what I had written was a whole new ballgame! :)

Also, selling an online platform to a worldwide audience was very different from selling bespoke custom written applications to local buyers. This meant I struggled to grow my new business in the first few years.

It wasn’t until I met my co-founder Fiona, who already had experience building, growing and selling her own startup, that we got the marketing really working, and now we are really making big strides, with over 1700 paying customers in 70+ countries around the world.

Once again, that early lesson my dad taught me served me well. Instead of just thinking I was a failed marketer, I started looking for people who actually knew marketing who could help me or work with me. I had to put my ego aside and acknowledge my shortcomings for the business to really grow.

To that end, I love talking to other startup founders to share ideas and learn from them. I welcome any other founder who want to reach out and have a chat. Follow me on Twitter and feel free to check out my musing over at my blog.

Thanks for the interview!

If you enjoyed this article please send it to a friend

And you should totally sign up for the newsletter

If you are job hunting, head over to the job board for entry level software engineers

Top comments (0)