Years of commercial experience
Lines of code written
Agile development works better
with engineering practices.
- Test/Behaviour Driven Development
- Proper use of SOLID principles
- Continuous refectoring
- Code integration and deployment through CI and CD
20 years of coding.
- Angular and BootStrap
- MVC and Web API
- ORM and Database work
Pragmatic team approach.
From coding to management
- Code reviewing
- User management
- Team leading
Here is just a snapshot of what I've been working on the past few years.
I'm a full stack SPA engineer using bootstrap to speed up CSS development. For many years I have used .Net (Mvc / Web API) & ORM's for the middle and back
but more recently I have been veering off into the world of the M.E.A.N stack.
Bootstrap & Angular
Building responsive cross platform rich front ends has never been easier. Creating well structured JS has been a problem for years but the last 5years has seen small revolution with really good SPA frameworks coming of age. When you add Bootstrap themes over the top you can get great looking for minimum effort. I've been doing MVC development for a while now and JS for even longer, so doing them together in the browser with HTML5 is a really pleasurable way to work.
Web API & NodeJS
Forget SOAP, JSON is king now. I started out on OpenRaster a while ago and it did have it's pain point but Web API removed all those. I'm big fan of loose coupling and I'm always pleasantly surprised when an API I created for a rich front end is reused elsewhere. I'm new to Node but it all feels so familiar and I'm hoping to get my first Node addon done soon, maybe for Node Tracker
ORM & No SQL
I hate magic SQL strings, I was made to do it is an ASP classic project. The first ORM I used was SubSonic but I quickly moved onto nHibernate and to be truthful it's still my favorite because, in my humble opinion, I feel I can do more with it, turning, sequencing, etc. My first experience with No SQL was the SterlingDB for Silverlight and loved it. I'm just starting my journey on the MEAN stack but because of my love of maps it wont be long before I hit Neo4j.
TDD & BDD
One thing I hate more than magic SQL strings is bugs. For the love of me I can not understand why more engineering departments are not TDD based, it much more cost effective and just a nicer way to work. Then came BDD, wow. Now I can have a requirement I compile and run against my code. Finally we have a definative definition of done. If my BDD feature passes and I'm committed (and the CI/CD passes) I'm done.
This sounds a bit washy but when done right it really works. Good practices make better code but things like SOLID, KISS, YAGNI and DRY arn't applied as much as they should be, Marry Liskov would not be pleased. Doing this right though is hard, one doesn't always hit the mark but if you start from the fact we all write bad code from time to time and it can be changed you should end up with something that stands the test of time.
No one is an Island. I worked at home in a team of one for 2 years, never again. If you walk into an engineering department and you can hear a pin drop then something is wrong. Engineers need to speak to each other (and I don't mean messaging), that how we solve the impossible, together and normally laterally. We have our own 'Do Not Disturb' signs, normally headphones but if we're not communicating meaningfully we're dead in the water.