My name is Ethar Alali and I work as a self-employed software developer and architect in the UK.
My motivation for this blog is that I don't believe that software development should be a 'craft' or 'art' as many people see it. For those that do see it that way, and shy away from a true engineering mindset, it is a call to up your game. Many millions are often ploughed into these projects and to relegate this to a 'craft' is to not do the funders or even the projects any justice at all and when the business value is tied directly to your ability to put food on the table, this becomes a whole different ball game. When you run your own business and are paid by results, it takes a huge amount out of the focus on technical 'shiny' objects and more on the ability to deliver with them.
I started programming when introduced to my classic BBC Master Compact 128 as a child of 9, when my father brought it home as it was going out of fashion.
As well as programming in BASIC and Pascal, I took up electronics in my early teens and went on to work on relatively small circuitry based on 555 timers, Op Amp systems (741), audio amplifiers, digital circuits (including interfacing with opto-electronic devices, specifically LED, bar graph and 7 seg displays) as well as doing some PIC Microcontroller work. This made me appreciate the need to optimise code for memory and processing constraints. Something I still apply now, which gained prominence again in our world of cloud computing, which incurs costs on storage and computing resource. If you pay for a large computing instance when your code could run on a small one, that's a leaner choice.
So whilst application programming was my thing, the other hobbies I had allowed me to put things in context.
I had and still have, a very keen interest in science and technology. I am very mathematically 'biased', so I like to think of things in a very logical way. I have a postgraduate in mathematics but my undergraduate was in software engineering (some would say I did it the hard way round) and so bring those skills to my day job and as the tone of this site shows, I can sometimes get quite frustrated with how mathematical thinking and software engineering (not craftsmanship) is viewed in the UK software development space/community. It is often frowned upon and thrown in a bucket with such luminary terms as 'BDUF', 'Management', 'Analysis Paralysis', 'complicated' etc. but yet it is these techniques that frustratingly for me, form the basis of metric driven work such as those in Lean Startup, Continuous Improvement, performance testing and optimisation. Dare I say it's my mindset, that has seen me improve software and, where accepted, team performance, by several orders of magnitude. Note the fractional percentage points gained through the often technical "we'll just put an index on it" or "we'll throw more hardware at the problem. It's cheap".
In the early noughties (whilst in my early to mid 20s), after my stint in development, I became a software architect in a large blue chip. Some of the systems I was tasked with architecting (and rearchitecting) were responsible for hundreds of millons of pounds of company revenue.
As well as the agile methods of XP and SCRUM, I still happen to like RUP and UML for process and modeling language respectively, having used methods from other schools such as Coad and Yourdon and SSADM. I am very big on the use of patterns (analysis and design), but was never convinced of the ethos 'There are only a finite number of patterns'. We didn't have a finite list of classes of problem, so how was that ever going to be true?
I also work in the enterprise architecture space, so have a keen interest in Agile-EA and amalgamating iterative and evolutionary EA methods such as TOGAF with agile development practises.
These days, I mostly pay the bills by developing Microsoft solutions based on .NET. In the UK, software architecture contracts are few and far between relative to development work, so make do with dev jobs. I still come across legacy technologies now and then such as Delphi. That was my language of choice and I stuck with it until the death... or the sale, whichever better represents its demise :o) That said a lot of Delphi's technological concepts paved the way for .NET. After all, Anders Hejlseberg was the father of both Delphi and C# and many other language environments pre-dating those.
I use SQL Server day to day, but was once an Oracle 9i Associate so am very comfortable in that environment. I happen to like NoSql systems, especially MongoDB and am keen on the idea of Graph Database systems. I have contributed to the Math.NET Numerics OSS project on GitHub and use a lot of open source tech, including those based on the Linux platform and mySQL, but I don't keep as close an eye on those as I should. I run the Fedora distro for my Linux machine (though chop and change that) and have a Knoppix distro on a pen drive for working away from home. Though I don't use that as much as I used to, given I use Oracle's VirtualBOX for a VM.
During my years, I have been a programming tutor and associate lecturer and have had other extra-curricular activities including being a national AAA grade 1 shot-putter in my youth and playing chess competitively, the latter is something I still do at club level.
These days, as well as keeping up to date on technological news, I go to the gym fairly regularly. I read tech and popular science magazines (Linux Format, New Scientist and Scientific American to name but a few). I don't mind the outdoors and really like open expanses with a variety of scenery, such as lakes, mountains and valleys... as long as I can bring a laptop. I also ski once in a blue moon.
I have eclectic taste in music and will listen to anything that interests me. Classical, RnB, Dance, Rock, Jazz, Blues etc. Voluntarily, I was a charity trustee for over 6.5 years, deciding organisational direction, chasing sources of funding, bidding for tenders, dealing with managerial and staffing issues, setting budgets etc. as well as the stereotypical provision of services on a shoestring budget. So whilst it panders to my 'do more with less' or lean mentality, as I hope to demonstrate in this blog, this isn't the only way things in general can be measured.