Hello and Welcome!
Hello and welcome to Overthinking Code! As the first post of this blog, let’s kick things off nice and simple and cover one, who the heck am I, and two, why I created this blog and the purpose and philosophy for this blog. Between those two things, you’ll get to know a little of who am I, why this blog is called Overthinking Code, and maybe even why I chose this color palette and this particular font of the text you’re reading right now.
Who am I
Well, I am Xinke Chen, the author and webmaster of this blog. As of time of writing, I am a recent graduate of the University of Pittsburgh. I majored in Computer Science (surprising right? 😉) with a minor in Economics. I am currently working for a large healthcare company (If you care, I am on LinkedIn).
In more technically oriented details, I have a large breadth of interests and experiences as one might expect from a half-decent undergraduate education. Just rattling off the programming languages and technologies I experimented or played with, in rough chronological order:
- HTML/CSS
- Nginx
- Git
- Objective-C (iOS)
- Java
- Swift (iOS)
- C
- Arduino
- JavaScript
- Express
- VueJS
- MongoDB
- SQL (Oracle/PostgreSQL)
- Docker
- Python
- C++
- ROS
- Nuxt
Now, I will admit that for some of these technologies, I don’t have as deep of a knowledge as I would like and others I definitely would not try marketing myself in, at least not without a serious review and maybe a project or two. Also, imaginary internet points to anyone who can figure which technologies were used together for projects. Think of it as a massive boggle board.
The Purpose and Philosophy Behind this Blog
So first and foremost, this blog is largely meant as journal for me, albeit a journal with a heavy technical focus. The implicit hope of this little project is that by publishing my thoughts to the great void and expanse that is the Internet (or if you prefer and old enough to remember, the World Wide Web), I will actually take the time to spend to reflect. At the bare minimum, think this blog as a reminder for me to take notes on potentially useful tools and skills to remember, both technical and non-technical.
Why “Overthinking Code”?
Speaking of taking notes on useful tools, that brings us to core idea behind this blog, and to a certain degree the title of this blog. The title of the blog, in a way, reflects a habit and tendency I have had towards projects, both during during the conception of and the implementation of. Many of the languages, tools, and frameworks I’ve picked up are often borne of my habit of thinking “what if…” about a certain task or subject. In a lot of cases, a-lot of the resulting solutions or implementations often to result in implementing things I don’t really need. However, I would argue that more often than not, that asking that question can result in useful and meaningful insights, or in the bare minimum, picking up something that will be useful later on. A number of my personal projects would fall under that umbrella.
Was trying to create an iOS Alarm Clock app that fetched traffic and weather data the most useful and profitable thing in the world? No, but it did give a deeper appreciation of actually reading documentation and interacting with REST APIs, something that came in really handy later on. Was creating a contact sharing single page web application exactly novel? No, but the experience of working with Node and Vue wound up being really useful later on. Lots of the technologies above, e.g. Docker, C++, PostgreSQL, I experimented with them because I decided that the “what if” would be interesting to explore and to gain a deeper appreciation of the tools and the problems they tried to solve, even if in the moment I am regretting my decision from earlier (side note: if anyone can suggest a good and simplified guide to C++ smart pointers and ownership semantics, I would love to see it).
These reasons summed up, is why I settled on “Overthinking Code”. Plus, and to my great surprise, it did not hurt that the domain name was still available 😄.
Welcome Aboard!
So, if you read through all that and some of that resonates with you, I hope you join me and follow along as I documented the various comings and goings of my journey as a developer. With any luck, you might be mildly entertained, and might even learn a thing or two.