Posts

Showing posts from February, 2020

What is the single top-priority software engineering problem?

A constantly cycling proliferation of different languages, frameworks, libraries, etc. that all do the same things in a different way and are most often mutually incompatible with each other and have entirely different ecosystems with their own comparative advantages but also major pitfalls. This causes tech workers’ investment in skills to get more out of shallow knowledge and trivia than on deeper concepts, creates silos of employment opportunity based on the trivial knowledge workers have, and hinders the ability for the software engineering field as a whole to have a large pool of shared knowledge and develop and evolve stable, relatively timeless systems and tools of high quality, both as end products and in intermediate tooling toward those ends. I was thinking about the reasons why this happens, and I see two major factors: 1) The tension between abstraction and optimization. To put it shortly, abstraction is about ignoring the details, optimization is about fine-tuning ...

How to Improve Your Productivity as a Working Programmer?

How to Improve Your Productivity as a Working Programmer? Eliminating Distractions Getting into the Habit of Getting into Flow Scheduling My Day Around When I’m Most Productive Watching Myself Code Tracking My Progress and Implementing Changes Being  Patient Take Enough Breaks For the past few weeks, I’ve been obsessed with improving my productivity. During this time, I’ve continuously been monitoring the amount of work I’ve been getting done and have been experimenting with changes to make myself more productive. After only two months, I can now get significantly more work done than I did previously in the same amount of time. If you had asked me my opinion on programmer productivity before I started this process, I wouldn’t have had much to say. After looking back and seeing how much more I can get done, I now think that understanding how to be more productive is one of the most important skills a programmer can have. Here are a few changes I’ve made in the past fe...

Asking: Advice for a new and inexperienced tech lead?

Advice for a new and inexperienced tech lead? Few things I would like to say: It will no longer be about you! It will all be about your team! Make sure you create a great team, nurture them, train them, teach them how to think critically (in doing so yourself). Ask your team to write out everything they plan to do before they actually do it. Reason with them on what they wrote and what approach decisions they plan to take. Teach them to think long term. Writing before actually doing the task helps get a lot of clarity to them and also helps you in assessing what they were planning to build. (It also makes for a great log of what we did and why we did it. This will be the product documentation for your entire product tomorrow.) Treat your team like your family. Do not stress them out with too much work. Be respectful of their time and effort. Give them breaks post completion of major tasks. Every second that you let them rest and breathe is a second you have invested in the f...

What's SAP? And why is it worth $163B?

Checkout - What's SAP? And why is it worth $163B?