My background and how I got a software engineer role
I’ve been a software engineer now for around 20 months, after months and years of thinking about starting a blog, I’ve finally decided to do it! I’m going to cover topics which I believe are quite useful, such as software development which shouldn’t be any surprise, to some security things, such as how to identify spam emails or hoaxes. I hope that people will find this useful.
In a nutshell, I just wanted to prove that it is possible and within reach, to get a software development job without a computer science degree and into your 30’s!
Although I’ve always had a strong interest in IT, I was never that academic, and I thought that to get into IT you needed various degrees to be able to just get your foot in the door of a company, unless of course you went solo.
Turns out that is just a myth!
When I left school in 2000 at age 16, I had relatively poor exam results, they weren’t bad, but they weren’t brilliant either! The prospect of going to college to do A Levels didn’t appeal, neither did university. So, I went straight out to work, physical/manual jobs to start off with as I didn’t think I’d be able to get anything in an office.
Timeline
2008
After various jobs both in a manual and office environment, I went back to a previous employer and started working again in a call centre (for the 2nd time). Although this isn’t many people’s idea of a perfect job, it’s one of the main employers in the city I live in and was again my ‘foot in the door’ so to speak.
All this time I was learning various bits of coding and software development, initially it was just PHP, MySQL, HTML & CSS.
I moved teams in the call centre after a couple of years due to an organisation restructure, and it was my new manager who really kicked things off for me.
2010
One of my new team colleagues started giving me the nickname of techy shortly after I joined, and then a couple of months later, my manager said there was an opportunity to be involved in an IT project from an inception stage, because he also knew I was into the technical side of things he asked if I’d be interested, of course I jumped at the chance.
The project itself was to look at building a new web based front end system which was able to connect with various old backend systems, some which still ran on mainframe, and one that was VB6 application. I done some analysis and identified that the call centre agents (me included) used on average around 10-15 different systems to deal with customer enquiries on a daily basis, depending on what the customer needed, to add to this, I think overall our department had around 50 overall applications that were probably used at least once a fortnight, if not more.
What we wanted to achieve was building a simple, easy to use and understand system, which anyone could use, our mantra at the time was we wanted call handlers to be customer & product experts, not system experts, that’s where I and 5 other colleagues from different departments came in.
Our job was to be Subject Matter Experts (SME’s), for the product which was to be built by our IT department. We were representing the end users of this new application, what did we need in order to be able to do our job better. Before, there had been a culture of requesting something or other from IT, they built it, then what we got back wasn’t either what was required, fit for purpose or was just completely different to what was needed. Those familiar using the Agile methodologies may have seen this diagram before!
So, the 6 of us were brought in, to sit with the people from IT, this was quite daunting at first, but soon got to know the inner workings of IT Project Management. From Project Managers, Programme Managers, Business Analysts, Solution Designers, Programmers and lots of other people whose roles I can no longer remember.
Over the next 6-9 months, we worked closely with the Business Analysts, where we would tell them our requirements, and ideas as to what we would like our new system to do. This involved mocking up some wireframes and bouncing ideas of one another.
Shortly after this, we found ourselves seconded into the testing teams, me and 2 others were put into a component level test team, while the rest went into the User Acceptance Test (UAT) team.
It was here where I started to learn about different testing approaches, writing test scripts, and test conditions from a set of requirements, writing test plans etc. We were using waterfall and I was introduced to things such as the V-Model paradigm
Fast-forward a couple of years, my job had changed, and I was a full time Software Tester, I’d stayed at the company but was fortunate enough to change my secondment into my permanent role.
2012
We then started to use Agile on more and more projects, and I was lucky enough to get assigned a role within a new sub-organisation of the company which was just for Software Development and testing, unsurprisingly this was called Digital!
I was also more experienced in testing, including picking up some new skills along the way such as automated software testing using Selenium, and was introduced to Behaviour Driven Development. For the first time, I had a decent career, and I knew which direction I wanted it to go.
Working in this agile environment, meant I was embedded in teams of software engineers, so every now and again I would either sit with them, watching trying to turn our user stories into code to make our website do some neat things, so I started to learn C# in some of my spare time.
I ended up developing an application which is now used by our whole testing department, it allows them to query our non-production databases to find and identify test customers who have x or y, or have a combination of x, y and z. They use this by using a website and not needing to know any SQL or what the database schema looks like behind the scenes (and its pretty complicated)!
2017
So, by now, I’ve dropped some big hints to various people I work with about my career aspirations, which are to move into Software Development. I had one of the senior managers tell me there was an internal vacancy coming up to join the software development team and that I should apply, nervously I did, and I waited with bated breath, then, about 2 weeks later, I received an email from our HR department confirming I had got an interview.
So, I start swatting up the best I can, I start asking around some of our lead software engineers what I should be looking out for, what sort of questions I might be asked, what would be good to have under my hat so to speak.
So, now I find myself the evening before my interview for the job I’ve wanted since I’ve left school, however I’m now 30! Would I stand a chance?
I’m sat with my girlfriend (non-techy) trying to fire questions at me, I thought some of them were a little daft or that they wouldn’t be asked in the interview, but I was wrong!
The next day I went into work, my interview not until 10AM. I had a few pointers from other colleagues, however I was still a little nervous, who isn’t on an interview!
So now I’m sat in a room with 2 people I kind of know, but not that well, a Platform Manager and a Senior Technical Architect. They fired questions to me one after the other taking it in turns, some related to software development, others around my other competencies and experiences over my years at the company and why I wanted to make the move.
45 minutes later and the interview is over, I go back and carry on my normal day job, and so it goes over the next couple of days, I was told in the interview that they would like me to do a technical test, which they would send me instructions for.
About 2 days later, I got the instructions, I needed to write a Fizz Buzz application. I was vaguely aware this is what it was going to be, but I had imagined it a little bit too simply.
My manager managed to get me some time to put aside to complete this, I had a set of instructions and was told I needed to complete as much as I could within 2 hours, while committing and pushing to a GIT repository every 10 minutes.
I did my best, but about a fortnight after, I was taken into a room, and was told I had been unsuccessful. It was a little disheartening, but at the same time I was being praised about how well I was doing my current job as a Test Analyst but was also told that it wasn’t a hard ‘No’, but more of a ‘not yet’. As a result of this I was paired with a senior developer to go over the results of my technical test, and what I should’ve or could’ve done better, this was supposed to happen roughly fortnightly however because we both were in different teams scheduling times was never easy.
However, I was still able to learn, I got to know the developers in my team really well, I could always ask them questions and if they had time, they wouldn’t hesitate to help me!
December 2016 - I was approached and was told there was another vacancy in the pipeline, it needed to be signed off by our director, but once it had I was told I should apply. January the role was advertised, I applied, and an interview was scheduled. It was to be the same 2 people that originally interviewed me back in 2015. I asked one of them, whether it was going to be another proper formal interview, I was told it wasn’t going to be, they had become aware of this testing tool that I had written and wanted an informal chat about what it was I had learnt since my earlier interview, and a demo of the functionality of this tool that I had built almost single-handedly for the past 3 years.
February - I received fantastic news, I was given the opportunity I’d always wanted, I’d got the job! I just had to wait for the interdepartmental politics to run its course, by me leaving my testing role I was leaving a bit of a knowledge gap, so I needed to get a couple of others up to speed.
1st April 2017
This is the day I started the job I’ve always wanted since I left school in 2000, although I’m now 33!
I started work in a new team, I was told it was going to be tough, with a steep learning curve but I didn’t care, this was the job I wanted! But boy, they weren’t wrong!
The department I joined was our quote and buy team. It had been separated into 2 team, one dealing with the legacy system which is a .NET MVC application, and the team I joined, using all pretty new technologies which I hadn’t really heard of before, Akka.NET, ReactJS to name 2. This was going to be something that was going to replace the older system one day, so a decision was made to put me into the team building all the new and shiny stuff, even though I’d been teaching myself MVC for the last 3 years!
Now - December 2018
I’m still finding my feet in terms of software development and using AKKA.NET, but I’m getting better and getting a bit more confident with making code changes, although I do still probably ask my tech lead far too many questions!
In some of my spare time I try and invest as much as I can in learning whilst juggling a few personal projects. This is mostly from either YouTube, Pluralsight or Lynda (I’m fortunate that I get currently get a licence for the latter 2 from my employer).
I’m also really liking some of the content that’s now becoming readily available, especially via the medium of Twitch. There are quite a few software development streams that now seem to be popping up, but one channel I would like to give a shout-out to, and one which I stumbled across is a channel hosted by Jeff Fritz (csharpfritz). What I really like about this, is the way that you can ask almost anything development or software related, and Jeff will try and answer, and if not, he might know someone who can as he is also a Microsoft Program Manager. He also manages to get some other big names on from the developer community, and occasionally hosts full day workshops, and if you can’t make those, then they’re normally uploaded to YouTube a little later for OnDemand watching.
Not only that, during the streams, Jeff is working on some real-world tools and applications to help share his knowledge with us, and we’re encouraged to try and help him out if we can. All his code is on GitHub and can be read / downloaded or forked so you can work on it too. All of which, is free. He even makes donations to an organisation to try and help get those that are underprivileged or minority groups into software development. It’s something I’ve been recommending to various friends and colleagues of mine who are also looking to try and get into C# development.