32 years young, technology enthusiast, coffee addict.
Hello, My Name is Glen.
Glen Thomas, 32 years young, born and grew up in England. I am a full stack .NET developer with excellent creative, problem solving skills and a passion for delivering cutting-edge software solutions that make a difference.
I currently work at BGC Partners in London, where I spend most of my time crafting and working on awesome projects.
I live technology. I'm excited about high performance systems running big data, magnificent UX, mobile computing, web applications and virtual/augmented reality. When I can put my computer down I am passionate about fitness and healthy eating.
A lot of my commercial experience has been in producing desktop applications. I first began in my early teenage years, making homebrew applications in Visual Basic 6. I love the power and freedom that modern technologies like WPF provide in building beautiful yet powerful and high performing software.
Working in a large enterprise, there are huge quantities of data to be processed, workflows to be performed and automation to be carried out. This requires building fast and reliable server-side technology and is something that I have become greatly skilled in. I have built many web and Windows services using REST/SOAP protocols, advanced multi-threading and message queuing systems including the highly acclaimed RabbitMQ and Apache Kafka.
Mobile applications have always been an area of special interest for me. For my personal project in my computer science degree I created a bluetooth networked application written in J2ME and since then have gone on to create application across various development platforms. I am very interested in cross-platform technologies such as Xamarin and NativeScript.
In previous roles I have lead database programming and administration for software projects involving large numbers of users and vast quantities of data. Having since worked with full-time SQL developers has allowed me to gain additional database skills so that I can work effectively on large database systems.
Being a lead developer in an agile environment requires good organisation and management skills in ensuring that the right software is delivered on time and works without any issues. My varied experience in software development, my deep enthusiasm and being thrown in at the deep-end early on have earnt me the skills required to guide, assist and manage other developers in achieving the end goal to the highest possible standard.
At present I am working within Sunrise Brokers LLP; a market leading inter dealer broker providing OTC broking services in derivative products for capital market clients. We cover equity, commodity, credit and interest rate derivative markets in Europe, North America, Asia and Emerging Markets. My role is within the front office technology team with the main focus on the development of our strategic front office derivatives trading platform. The platform provides order management, price distribution, trade capture, derivative price discovery and pre\post trade analytics.
As a C#/.NET developer at Win Technologies, I was responsible for developing and maintaining in-house customer management applications using a range of technologies. Primarily, this involves WPF development in C#/.NET, across all layers of the applications, from presentation to data access. It also involves heavy service development for both internally created and maintained services and integration with external third party functionality. Working in an Agile methodology, we have created a strong team-driven development environment where we are encouraged to guide the design and implementation of business led enhancements based on their changing requirements.
At Lindenhouse Software (now part of the Reckon brand) I used a wide range of development skills, including C#.NET, WPF, WCF and SQL Server development. The majority of my time was spent on the development of Lindenhouse's own document management solution; Virtual Cabinet. As a leading member of the desktop application development team I was able to provide a large input on the design and implentation of new and pioneering features of the Virtual Cabinet application and work to tight schedules in order to produce a class leading product. As a senior developer I am responsible for managing the development lifecycle of the Virtual Cabinet product, organising and training junior developers and liaising with developers working on other integrated products.
After graduating from university, an opportuniy of employment arose as a developer with a small IT business in Jesery.
Working throughout the entire development lifecycle, I would be involved with making on-site visits to client’s businesses to establish requirements and create designs for software solutions. Once the requirements of the project had been established and the software architecture devised, I would work in a small team to develop the project using various technologies, including C#, ASP.Net and SQL Server. When the implementations were complete I would assist in deployment, testing and routine maintenance.
Some projects also involved setting up new hardware systems as required by the client.
At Lloyds TSB I spent 14 months in the Credit Systems and Databases team. My main responsibilities involved managing complex and critical mainframe systems and reporting to the Financial Services Authority on the data used by Lloyds TSB for credit risk analysis. This position required extensive use of mainframe systems, SAS programming, SQL programming and MS Office.
During my time in the position I was assigned several large projects, in which I was required to manage timescales, design, implement, test and deploy solutions to business requirements. I had the freedom to choose which technologies to incorporate into the projects and made use of many including SAS data analysis technologies, SQL, mainframe processing and Visual Basic for Excel automation programming. I attended an accredited SAS course at the Marlow SAS institute as well as an SQL course provided by NCR. I also taught myself the latest SAS features by reading documents from SAS conferences and was able to use these features to revolutionise the way SAS was used in the department.
Towards the end of the placement I had responsibility for training new members of the team in use of mainframe systems and analytical programming. I also created a number of technical documents for the systems used by the business for maintenance and development purposes.
This course involved in-depth training in software-hardware interface design, equipping me with the skills and knowledge to take on the technological challenges of the future. In the third year of the course I choose to take a paid professional placement in industry, working for LloydsTSB. The course is accredited by the British Computer Society, the chartered institute for IT professionals.
With the opportunity to begin specialising in my education, I chose the subjects close to my heart and that complimented each other perfectly.
The majority of my professional work has been around building Windows-based client-server applications using the .NET framework. I have also had in-depth involvement in database development. Web and mobile development is a special interest as I get to make good use of my creative skills and so far is something that I tend to work on outside of my employment.
Learning new skills is not only part of my work, but also a hobby. One of my favourite methods of learning is through Pluralsight.com, which gives me just enough means to get started on a small project harnessing a previously unfamiliar technology and from there I can find my own way. Reading blogs of other developers such as Scott Hanselman provides great info on the latest happenings in the development world. Contributing to StackOverlow helps to discover lots of unusual programming scenarios and the best solutions to working around them.
I also like reading books on programming when I want to dive deeper into a topic and gain a thorough understanding of how something works and best practices in using it.
The ratings that I have given myself in technologies that I work with are a reflection of how much of the topic I think that I have covered and how much is still left to learn.
The process that I follow when developing software varies depending on the type of project, but in every project I make sure to achieve the highest possible level of efficiency. There is little more frustrating than having to spend time on work that could have been done correctly the first time round.
The first step is to gather a complete set of requirements that have been thoroughly discussed with the relevant stakeholders and to record them in a format that is easy to understand for everyone involved in the project. When working on a full-stack or front-end project that will result in graphical interface components for users to interact with, I will endevour to have a prototype front-end ready as soon as possible as this can be extremely useful in verifying with the stakeholders that the requirements are correct and final.
Before development commences, the requirements can be translated to technical tasks that can be allocated to members of the team, with the original requirements attached as acceptance criteria.
Once development is in progress, all source code in contained, versioned and shared within a suitable source control system such as Git. Feature brances, continuous integration using automated build systems, unit tests and code reviews and are used to ensure that a stable build is always available for a quick route to deployment.
After development is completed QA engineers can weed out any remaining issues before the software is deployed to the production environment.
© 2015 Glen Thomas. All rights reserved.