Done.

cea_buddha
Image used with permission of photographer, Flickr user cea. Click for original.

I don’t miss it.

There was a time that it didn’t seem like I ever could. It was all I did. Coding, designing, architecting, playing with new languages and frameworks – it was great. I spent hours upon hours getting good at things that were, in the end, just passing fads.

Passing fads with ‘benefits’, really. The ‘benefit’ being the ability to find work maintaining someone else’s crappy code. Maintenance.

No one looks forward to a career in software engineering maintenance.

But that’s the majority of the industry, and if you’re good at maintenance, they’ll pick someone else to do the new development no matter your experience level. They need you there with your finger in the dyke as you watch them do it all over again – making similar mistakes.

No, I don’t miss it.

CubicleLife

I don’t miss sitting in meetings to watch other people beat their chests and claim credit for things that they didn’t do as political necessity. I don’t miss reading emails written by people more interested in trying to impress each other rather than actually communicate what they need to.

I don’t miss being told I should be at my desk more often when I was one of the few people meeting deadlines, milestones, yardsticks and tombstones. I don’t miss the tiresome code-jockeys who don’t know a thing about process and were graced with writing them. I don’t miss going through undocumented code and figuring things out to rewrite a new iteration that will never be used. Oh, and if you were ever on call…

There’s really a lot not to miss.

And as software engineering goes, that’s pretty much the way it is. That’s a pretty average career, since most work in software engineering is maintenance – and maintenance, after a certain period, shows you everything that was done wrong. But since you’re doing maintenance, you don’t ever get to use it at work. Maybe you do it at home, but honestly, after a few decades you may not want to stare at a computer when you get home.

No, I’m playing these days. I finally got back to why I started it all in the first place.

Except I have a lot more experience. And I can walk away from my desk, I can eat what I want when I want, I can wear what I want…

Cubicles? Offices? That’s for managers.

The Best Programming Language To Know – Ever.

Nobody understands me!Amongst geeks, invariably, the topic comes up eventually – it’s sort of like mentioning Hitler on the Internet. The best programming language. The best framework.

The best… whatever.

I even caught myself getting into a similar discussion recently about the best programming language to learn with, and being drawn into discussion. It shouldn’t even be a topic. It’s downright silly. The best programming language to start with is your native language – in my case, that’s English, in your case it’s likely English too – after all, this post is written in English.

One of the first things I wrote professionally was about how to start learning to program. It netted me $300 U.S. from CramSession.com, now beyond the most extreme measures of resuscitation. 17 years later, I can lay it out in a paragraph. Fortunately, Cramsession.com can’t ask for their money back.

Everyone that can write and execute a shopping list can program. You know what you need from the store, so you write the list – so the first pass is the list. The second pass would require a mental layout of the store for the most efficient path to walk through and get what you need – so you then prioritize the list based on aisles. Then you can get more finely tuned based on which side of aisle things are. You’re a programmer now. Show us your grocery receipt. Frame it. It’s your certificate.

Of course, over time you learn that the store moves things around, so you now have to maintain whatever you wrote by adapting it to changing circumstances. Welcome to maintenance, the most numerous jobs in software development. 

The best solution I ever saw to the Fizzbuzz problem was submitted by a non-programmer who simply drew a flowchart. It demonstrated to me that she – it was a she – understood the underlying concepts and could implement them in any language since she understood the underlying algorithm. Sure, there are a lot of solutions to the Fizzbuzz problem (what a horrible way to measure whether someone can program!) in various languages – from elegant to obfuscated – but programming languages are not the most important tool for tackling a problem. The most important tool is the language the problem comes in. A half-decent programmer, given some time to get their feet under them with a programming language’s syntax, can write a solution in any language.

Therefore, the most important language in programming is your native tongue. Some will argue that it’s English based on demographics, but those demographics have been skewed by economic development and market sizes. If you can’t think clearly, you can’t write clearly – as a programmer, or as a writer. Period.

Now somewhere there’s a geek that is stridently making a case against what I have written, but the beauty of it is that the case they are making is probably in English – the language this is written in. Right now, they are making my point for me.

As AI becomes more relevant, natural language programming will go from a way to create systems that understand natural language to actually programming those systems in your native language. The language of the market dictates.

Suddenly, that Oxford comma may be more important to you than you think.

If you don’t know what an Oxford comma is, now is a great time to use Google to begin your research.

Technology vs. Bureaucracy: a T&TEC Connection

ElectricityOne of the less fun things I get to do in dealing with land ownership is assisting people in getting electrical connections from the Trinidad and Tobago Electricity Commission (T&TEC).  The legitimate way of doing this is the land owner giving permission for the connection to the person getting the connection.

The why of people getting connections on land they do not (yet) own is fodder for another post on Land Laws in Trinidad and Tobago – but take it on faith that it’s done.

In 2008 I did this for someone. 9 years later, I’m doing it for someone else.

First, I’ll tell you how it happens. Then I’ll tell you everything that is wrong with it.

How it ‘Works’

The person getting the connection has to present evidence of land ownership or permission from the land owner. To do this, T&TEC wants to see a deed, and they want a letter from the landowner if the person does not own the land – as well as identification, which they diligently photocopy and probably place in a file somewhere marked, “Kill Trees”. Simple enough, you might think.

To make things easier, a landowner can send a photocopy of their ID and deed along with the person getting the connection.

That gets them ready to get an inspection done. The actual connection requires… all of the above again.

Since I’m not one to send someone running around with photocopies of my ID and deed, all of this means I get the joy of going to T&TEC in San Fernando, where they refer you to an orange desk which is now closer to a pink salmon (I asked a woman with matching nail polish what color her nails were). We sat there for an hour or so, watching frustrated T&TEC employees chained to keyboards of a system that was ‘giving trouble’, got to the desk and – fortunately – I had prepared everything for them so that in 15 minutes of photocopying and signatures, I could move on with my life. I don’t know how long the person getting connected stayed after.

How it Should Work.

A lot of people don’t know that T&TEC, circa 2010, mapped T&TEC poles all over Trinidad and Tobago and has them on a map. They can, with accuracy, tell you where they have their poles. And these are on a map of Trinidad and Tobago that had, or should still have, an up to date list of all the surveys registered in Trinidad and Tobago.

I say this because anyone with a deed can walk in and get someone else connected on someone else’s land. That’s clearly fraud, but it can happen by mistake when a land owner doesn’t know where their boundaries are. Therefore, the requirement of the deed is actually worthless without a survey that shows where the connection will be.

As I recall from years ago, I had to do this for a Water and Sewage Authority (WASA) connection around 2010. In my opinion, this is more in line with Land Law in Trinidad and Tobago, but I am no attorney and do not play one on the Internet.

The registered survey than be searched for if it were linked with the Ministry of Planning And Development, Town and Country Division systems. Then that would, if connected, be able to search the registry of Deeds at the Red House (which does not yet seem computerized).

If this were done, it would be apparent who legally owns the land, whose permission would be needed, etc. It would, of course, require the various databases to be kept up to date and interconnected.

And identification? Does no one see a flaw in accepting photocopies of identification not done on site? I could easily scan something in and alter it, printing it out. No, instead why not just have the T&TEC employee verify the identification is legitimate and enter the relevant information? Why are we killing trees in 2017 over this nonsense?

So, why hasn’t all of this been done? Why should this be hard to do? Why not remove the potential for error and corruption by appropriate use of technology?

There’s a question that should haunt every government administration since Independence. It’s a symptom of the larger problems, the elephants in the room that have ground the fine china into powder. Ministries not working together, a lack of a holistic vision, and a flood of ‘we like it so’.

I now return you to your regularly programmed bureaucracy.