Click here to Skip to main content
14,212,727 members

Dominic Burford - Professional Profile



Summary

Follow on Twitter LinkedIn      Blog RSS
6,499
Author
1,901
Authority
8,625
Debator
8
Editor
95
Enquirer
57
Organiser
2,486
Participant
I am a professional software engineer and architect with over eighteen years commercial development experience with a strong focus on the design and development of web and mobile applications.

I have experience of architecting scalable, distributed, high volume web applications that are accessible from multiple devices due to their responsive web design, including architecting enterprise service-oriented solutions. I have also developed enterprise mobile applications using Xamarin and Telerik Platform.

I have extensive experience using .NET, ASP.NET, Windows and Web Services, WCF, SQL Server, LINQ and other Microsoft technologies. I am also familiar with HTML, Bootstrap, Javascript (inc. JQuery and Node.js), CSS, XML, JSON, Apache Cordova, KendoUI and many other web and mobile related technologies.

I am enthusiastic about Continuous Integration, Continuous Delivery and Application Life-cycle Management having configured such environments using CruiseControl.NET, TeamCity and Team Foundation Services. I enjoy working in Agile and Test Driven Development (TDD) environments.

Outside of work I have two beautiful daughters. I enjoy cycling, running and taking the dog for long walks. I love listening to music and am a fan of Rush and the Red Hot Chilli Peppers to name a few.

 
Articles 13 (Prolific)
Tech Blogs 0
Messages 1,071 (Master)
Q&A Questions 0
Q&A Answers 28
Tips/Tricks 14
Reference 0
Comments 75

Reputation

For more information on Reputation please see the FAQ.

Privileges

Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege. The member types column lists member types who gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilverAdmin
Bypass spam checks when posting contentsilversilversilversilversilversilvergoldSitebuilder, Subeditor, Mentor, Protector, Editor, Staff, Admin
Store personal files in your account areaplatinumplatinumSitebuilder, Subeditor, Supporter, Editor, Staff
Have live hyperlinks in your profilebronzebronzebronzebronzebronzebronzesilverSubeditor, Protector, Editor, Staff, Admin
Have the ability to include a biography in your profilebronzebronzebronzebronzebronzebronzesilverSubeditor, Protector, Editor, Staff, Admin
Edit a Question in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Edit an Answer in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Delete a Question in Q&AYesSubeditor, Protector, Editor, Admin
Delete an Answer in Q&AYesSubeditor, Protector, Editor, Admin
Report an ArticlesilversilversilversilverSubeditor, Mentor, Protector, Editor, Staff, Admin
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubeditor, Mentor, Protector, Editor, Staff, Admin
Edit other members' articlesSubeditor, Protector, Editor, Admin
Create an article without requiring moderationplatinumSubeditor, Mentor, Protector, Editor, Staff, Admin
Approve/Disapprove a pending QuestionProtector, Admin
Approve/Disapprove a pending AnswerProtector, Admin
Report a forum messagesilversilverbronzeProtector, Editor, Admin
Approve/Disapprove a pending Forum MessageProtector, Admin
Create a new tagsilversilversilversilverAdmin
Modify a tagsilversilversilversilverAdmin

Actions with a green tick can be performed by this member.


 
GeneralSimplifying updating data Pin
Dominic Burford21-Sep-17 22:46
professionalDominic Burford21-Sep-17 22:46 
GeneralWhen 100% code coverage is not always enough Pin
Dominic Burford21-Jul-17 5:11
professionalDominic Burford21-Jul-17 5:11 
GeneralThat's the app in the app stores Pin
Dominic Burford18-Jul-17 5:00
professionalDominic Burford18-Jul-17 5:00 
GeneralDefensive Programming Pin
Dominic Burford28-Jun-17 7:23
professionalDominic Burford28-Jun-17 7:23 
GeneralMy first year - How time flies Pin
Dominic Burford19-Jun-17 1:40
professionalDominic Burford19-Jun-17 1:40 
GeneralShould software architects write code? Pin
Dominic Burford16-Jun-17 4:22
professionalDominic Burford16-Jun-17 4:22 
GeneralEnsuring your data is safe with Azure SQL Database Pin
Dominic Burford2-Jun-17 2:24
professionalDominic Burford2-Jun-17 2:24 
GeneralWhat makes a Senior Software Engineer? Pin
Dominic Burford30-May-17 21:53
professionalDominic Burford30-May-17 21:53 
As a Senior Software Engineer of many years experience, I am involved in every aspect of the life-cycle of a piece of software. From the design through to implementation and testing I get involved in every part of the creation and delivery of a software project.

A question that I am often asked by various colleagues is "What makes a Senior Software Engineer?". There is no single or simple answer to this question. I am sure that every Senior Software Engineer will answer this differently. They will consider depth and breadth of knowledge or years of service amongst other traits. Both of these are perfectly reasonable and sensible answers. I would say that it all boils down to one trait.

A Junior Software Engineer builds using frameworks and architectures. A Senior Software Engineer builds the frameworks and architectures.

I think this statement cuts to the core of the difference between Junior and Senior. A Junior will take the frameworks and architectures that are available to them, and build applications with them. A Senior will build the frameworks and architectures used by the Juniors. They enable the Juniors to do their day-to-day job by building the tools and providing the structure they need.

Where I currently work, we have developed a mobile app for the car fleet sector. The mobile app needs to consume various services to retrieve and / or update data. These services need to be highly secure, available and scalable. The services also needed to be consumed by web applications as well as the mobile app, so they need to be ubiquitous by all devices that are capable of using the HTTP protocol.

The final solution utilised a service bus architecture in conjunction with ASP.NET Web API. The service bus was bound to a web enabled listener which monitored new service requests as they were created, and routed the service request to the appropriate endpoint. The mobile app sent many different types of data to these services, so the services needed to be flexible enough to handle any type of incoming data, and be extensible enough so that additional data types could be added later downstream.

It should be obvious that creating such an architecture is beyond what a Junior would be capable of producing, which is why a Senior should instead be tasked with creating such an architecture. Only someone with sufficient knowledge, design and architectural skill would be capable of architecting, designing and implementing such a complex piece of software. There are many moving parts requiring a deep understanding of the system and its interactions with the various other components. Appropriate abstractions need to be created, coupled with suitable design patterns, base classes and structure.

When I first started out as a software developer all those years ago as a novice straight from university, such a challenge would have scared me half to death. I wouldn't have known where to start. Now I relish such challenges, and enjoy building the frameworks and architectures which are used by the rest of the team. It takes time to gain the requisite skills, knowledge and confidence. Over time, you are slowly able to create bigger and more complex software systems. From your first "Hello world" to building an entire framework or architecture takes many years of continued learning and mastery of your craft.

So to become a Senior you need to enable other software engineers. By enabling other software engineers is the path to becoming a truly great Senior Software Engineer.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare

Home | LinkedIn | Google+ | Twitter

GeneralMore Software Interview Skills 101 Pin
Dominic Burford25-May-17 6:03
professionalDominic Burford25-May-17 6:03 
GeneralSoftware Interview Skills 101 Pin
Dominic Burford12-May-17 5:44
professionalDominic Burford12-May-17 5:44 
GeneralBeat the Thrashing Pin
Dominic Burford5-May-17 6:03
professionalDominic Burford5-May-17 6:03 
GeneralWorking with Azure Blob Storage Pin
Dominic Burford27-Apr-17 2:29
professionalDominic Burford27-Apr-17 2:29 
GeneralWrestling with Apple Pin
Dominic Burford20-Apr-17 3:37
professionalDominic Burford20-Apr-17 3:37 
GeneralTwo unit tests, zero integration tests Pin
Dominic Burford10-Apr-17 22:39
professionalDominic Burford10-Apr-17 22:39 
GeneralThe Mediocre Mindset Pin
Dominic Burford29-Mar-17 1:10
professionalDominic Burford29-Mar-17 1:10 
GeneralHow much code coverage is enough? Pin
Dominic Burford21-Mar-17 5:14
professionalDominic Burford21-Mar-17 5:14 
GeneralThe Mythical Full Stack Developer Pin
Dominic Burford14-Mar-17 3:18
professionalDominic Burford14-Mar-17 3:18 
GeneralCreating your own private NuGet server Pin
Dominic Burford2-Mar-17 0:36
professionalDominic Burford2-Mar-17 0:36 
GeneralConsuming a dependency using NuGet Pin
Dominic Burford28-Feb-17 6:05
professionalDominic Burford28-Feb-17 6:05 
GeneralCoding Standards Pin
Dominic Burford24-Feb-17 6:02
professionalDominic Burford24-Feb-17 6:02 
GeneralSoftware Architecture Challenges Pin
Dominic Burford17-Feb-17 1:31
professionalDominic Burford17-Feb-17 1:31 
GeneralGetting the Most Out of Your Unit Tests Pin
Dominic Burford9-Feb-17 9:21
professionalDominic Burford9-Feb-17 9:21 
GeneralBuilding a strong development team Pin
Dominic Burford8-Feb-17 6:31
professionalDominic Burford8-Feb-17 6:31 
GeneralLast pieces of the mobile app in the Web API puzzle Pin
Dominic Burford27-Jan-17 5:03
professionalDominic Burford27-Jan-17 5:03 
GeneralSerializing .NET types that contain DateTime Pin
Dominic Burford22-Jan-17 18:53
professionalDominic Burford22-Jan-17 18:53 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Advertise | Privacy | Cookies | Terms of Service
Web01 | 2.8.190619.2 | Last Updated 20 Jun 2019
Copyright © CodeProject, 1999-2019
All Rights Reserved.
Layout: fixed | fluid