Every software engineer is familiar with “Hello, World!". Starting from Kernighan and Richie and the famous “The C Programming Language”, every beginner’s tutorial begins with creating a program that prints this welcome message.
Just like programming journey starts with saying “Hello”, so can a blog.
Personally, I am a huge fan of Scott Hanselman. Scott is a long term blogger. Information sharing aficionado. Ever since I saw his GOTO 2012 • Scaling Yourself • Scott Hanselman presentation, I have been yearning to start writing.
You have a finite number of keystrokes left in your hands before you die.
Hence it is worth sharing technical writing with a broader audience, not just immediate colleagues.
And yet, I have always found it hard to start. I have been telling myself: “It is trivial”, “Everyone knows it” or even “There’s nothing worth sharing here”. Thus always delaying documenting what turned into 15+ years of industry experience.
Why do it then?
Input Objects has been in the business for 6 years. Started in the United Kindom. Eventually moved to Germany. Serving customers in the Finance, Insurance industries and Big Data and Software-as-a-Service vendors.
Before venturing into consulting, I personally worked for the likes of Hewlett-Packard Enterprises, HSBC and J.P. Morgan Chase. Plus a few odd start-ups.
In my journey, I have learned and experienced a lot. But the most profound realization till day is:
Software Engineering is really, really hard.
It is hard because the software we are building is extremely complex. Often made of a collection of intertwined systems with various degrees of reliability, resiliency and frequently of different quality.
In an attempt to tame this complexity, we lean on frameworks, libraries and hosted services. Even more software. More moving parts.
And that’s why we often seek help.
We search for help in online search engines, and we review documentation. But the sheer number of use cases means that there is no one-answer-fits-all scenario. That’s the void that community can fill in. The community being forums, persistent chats such as Slack channels and blogs.
Arguably it is the blog, that is the best tool of information dissemination. It provides a medium that is easy to follow and share. And, unless used as a monetization technique, it can be accessed outside of proprietary Walled Garden.
I am thankful to many bloggers on the Internet that helped me cross some of trickiest chasm when dealing with third-party software and Open Source libraries.
We established that it is worth sharing. But, being introvert and having difficulty to share in public, I needed every bit of help and motivation to start.
Writing a blog is much more than posting on Twitter. Meek 140+ characters of appreciation, angry venting or retweet are nothing compared to long-form publishing.
Fortunately, the Internet and my environment provide ample examples of people doing contributing to the community, either in the course of their jobs or as a passionate member after hours.
I already mentioned Scott Hanselman as my inspiration. But I also want to name two other folks: David Gonzales, my former colleague who co-hosts The Remote Dev Podcast and John O’Nolan, co-founder of Ghost, who recently launched REDIVERGE
// Code // Solve Blog
Input Objects specializes in bespoke software solutions. Our people delivered solutions such as:
- Enterprise Search,
- custom, consumer-facing Search Engines,
- web applications, traditional and SPAs,
- system integration platforms,
… and much more.
Our toolkit includes JVM and related technologies such as Java, Kotlin and Groovy. For integrations, we lean on industry standards such as Spring Framework, thr JEE and other popular platforms.
Over many years we grew expertise in Apache Solr and Lucene based tooling. And we reach for ANTLR and OpenNLP when necessary.
On the front-end, we have a great appreciation of Vaadin and Ember.js. Vastly different solutions that we employ based on the task at hand.
Types and Testing are the most commonly used tools that we employ to deliver reliable and maintainable software.
That’s what we use in the year 2020. And that’s what this blog will focus on.