Techies Day was originally developed for the purpose of helping high school students become educated about careers in technology. It was first established in 1998 by techies.com with the support of CNET Networks.
This year to celebrate Techies day, Simon Bond, Lead Developer for Ultima Labs shares his career journey.
Who am I?
I'm Simon Bond. I've worked for Ultima for 20 years and I currently work for Ultima Labs where I'm the lead developer of the IA-Connect product. I didn't know what job I wanted to do when I left school, I didn't have a "plan", I changed my mind about what I wanted to do quite a few times, but I learnt a lot along the way.
Introduction to computers
It all started when the doorbell rang on some random day in 1980 and my mum came back with a big cardboard box and said "Um, we've just won a computer as first prize in the Scouts raffle. I don't know what a computer is, do you?". I didn't. Never heard of one. My friends didn't know what a computer was either (they all came round to look at it and prod it) and my teacher said they were some huge noisy things that took up whole rooms, so I couldn't possibly have a computer.
Well, it was a computer… It was a Sinclair ZX80 and it had 1KB of RAM (yup, that's KB, not MB, not GB, not TB) and when you turned it on, there was this little flashing cursor and it wouldn't do anything unless you entered commands in the BASIC language.
I was hooked, and from that point on I was a computer geek (although I'd never heard of "geek" in 1980 - the word everyone used was "square". So I became a "square" in 1980 and a "geek" later on).
Since most computers in the 1980s didn't do anything unless you wrote code, I spent my time learning new computer languages, starting with BASIC, then Z80 assembler, then 6502, followed by Pascal, Delphi, Fortran, C, C++ and on through a whole list of languages, most completely redundant now.
First job as a programmer
My first actual paid job as a programmer was in 1991. I was working for Georgia Tech Aerospace in Atlanta as part of my degree in Mathematics and I spent most of that time down in a bunker at Dobbins Air Force Base. I was part of a much larger team writing Fortan code on Sun Sparc computers which analysed airflow over things I can't talk about and it taught me one thing…. that I didn't want to be a full-time programmer. Sure, it was "interesting" and there were some really cool things down in that bunker, but nobody outside of work understood, or even knew what I did, and I spent 10 hours a day staring at a little screen and hardly talking to anyone about day-to-day things.
I decided that I wanted to use computers to solve problems, but to focus on being a scientist and not a full-time programmer - I'd write my own code to simulate whatever problem I was working on, but not be a programmer in a huge team (I changed my mind later).
Getting into IT
I was pushed (more like shoved) into IT by a friend (I thanked him years later). He came to visit me at York University in 1993 where I was working on my PhD. I'd spent the year calculating the EM signature generated from the heating of particles due to friction in accretion disks in orbit around binary star systems and I was miles deep in code. He asked where the nearest binary star with an accretion disk was (easy question: It's V367 Cygni) and when we might send a probe there (er, maybe in 30,000 years, it's nearly 2000 light years away). Hmm…. I only earnt 4K a year as a research student and my friend suggested I'd "lost my way" and should go back down south and get a job in IT (I didn't even know what that was). He said that he knew people writing code 10 times simpler and yet earning 10 times more, so I quit my PhD and got a job in IT.
I'd already established that I didn't want to be a full-time programmer, so I got into IT training (teaching people how to code) and IT consultancy (mainly networking - Cisco switches and routers, firewalls, ISDN, Frame Relay, DECnet, Banyan Vines, Novell NetWare, IPX, TCP/IP - a lot of stuff that simply doesn't exist anymore, but some stuff that still does).
This is a pretty common thing in IT. Whatever you are working on will be gone in 5 years, but the skills you gained will remain.
I found that I enjoyed teaching people to code and also coming up with solutions to their IT problems, so I stayed in that IT job for years.
Citrix and joining Ultima
I came across Citrix in 1995. They had released a product called WinFrame on Windows NT 3.51 and I started installing this product on customer sites and providing consultancy around this new concept (on PCs at least) of running your applications on a remote server.
I joined Ultima in 2001 as a Senior Consultant because they were hiring Citrix consultants and had all kinds of interesting customer projects with larger customers than I was accustomed to. It also really helped that I did a lot of work with networking and firewalls (Cisco and Check Point) because that was another skill in demand at Ultima. Good knowledge of networking protocols has helped on most projects that I've worked on - being able to debug why computers cannot communicate has rescued me from many situations.
I don't know what happened to the last 20 years at Ultima- it has flown by. I've worked as a Senior Consultant on the networking team, the Citrix team, the DevOps team, the End User Computing (EUC) team and I joined the new Robotic Process Automation (RPA) team in 2017. I spent most of my time at customer sites working as part of the customer's IT team to deliver various projects, mainly around application delivery, networking and Citrix. In general, these projects would last from months to years, so I'd "disappear" from Ultima for extended periods, mainly in London or Canary Wharf, but there were projects further afield (for example I spent 2 years working in Jersey).
I don't think there was a single project where I didn't write a whole load of code or scripts to help with automating the solution, helping to "scale out" the system or make it more resilient. I found that once customers realised that you could write code, they would continually find you extra work, new projects to work on and basically never let you leave…
Throughout this time I wrote a number of programs that become more widely used at Ultima. The Citrix compatibility scripts and uLogon being two examples. These really helped in pre-sales for larger customers because it allowed you to demonstrate that you didn't just dabble in the product you were selling, but really knew your stuff.
Joining Ultima labs
In late 2018 I started working on a new piece of code in my own time to solve the challenge of automating over Citrix ICA or Microsoft RDP sessions, something we were constantly coming up against in our new RPA practice and which the current RPA software (e.g., Blue Prism or UiPath) couldn't handle. This product eventually became IA-Connect and I joined Ultima Labs to focus specifically on developing this product. My main focus this year has been integrating this product with Microsoft Power Automate and for Microsoft and Ultima to take IA-Connect for Power Automate to market, helping customers more easily create process automations.
Where should you start?
If you want to learn how use code to solve problems, I'd suggest a number of areas where you could start:
PowerShell. This is an easily accessible scripting language which comes built into the Windows Operating System and is way more powerful than you might realise. Not only is it a very capable language but you can also write C# and call .NET directly from PowerShell plus call REST APIs which allow you to hook into many 3rd party services (e.g., Azure / Office 365 / ServiceNow / Citrix).
Power Automate. This is a "low code" or "no code" automation system developed by Microsoft and again, very easily accessible. You can perform a huge range of cloud-based automations directly from this platform (or hook into IA-Connect to extend your range further).
Python. This is another easily accessible language which can be downloaded for any Operating System and is heavily used in Machine Learning, Amazon Web Services, data analysis and a common programming language on Linux. Perhaps buy a Raspberry PI, plug it into a robotic skeleton or add some wheels, hook in a camera and sensors and program it to move around and scan the environment. I created a Raspberry PI rover as a project with one of my daughters and all of the code was written in Python (and PHP).
Unreal Editor and Blender. If you want to develop something more visual and interactive, I'd suggest learning the Unreal Editor which allows you to develop 3D computer game levels (or scenes for a movie) and this supports very powerful interactivity using either the C++ programming language or blueprints (which are a form of "no code"). When I'm not writing code for work my goal has been to develop a computer game level for each of my daughter’s birthdays (a bit of a challenge because I have 3 daughters). I've created a few levels so far and am developing another. There's a LOT to learn here and the results can be pretty cool.
I've always been one for using code to solve problems, so I didn't formally learn a language at first - I've never sat on a course - I don't have coding qualifications (hilarious because for years I taught programming courses) - I found a problem, started to solve it and learnt how to code as I went along. Get hands-on - you'll see results sooner. You'll learn more from making mistakes and re-writing the program 20 times as you discover better ways of achieving the goal.
Expected effort and reward
Writing code takes time, effort and concentration. There is a lot to learn, and you will get stuck on problems. If you aren't prepared to put in the effort (and much in your own time) then this might not be for you. But the rewards are huge, and it opens up a lot of opportunities. Luckily there are some very useful websites and coding communities to assist (Stack overflow being a good example). The Web has made learning programming much easier because of the wealth of information available. I learnt to program my first 10 or so computer languages before the Web existed and it was a lot harder (a lot of time spent in the University library).
If you can write code to solve customer's problems then you will be in demand. People will want to give you problems that need solving and you'll always have something "interesting" to do. The definition of "interesting" can vary….