Desktop programmer or remote work? Part 1

Desktop programmer or remote work? Part 1

I got my first (paid) job as a programmer when I was in college. Since I had to reconcile my student responsibilities: drinking, building a better relationship with my pillow (which missed me so much when I partied), ah! and sometimes some lectures, most of the “work” code was created in the afternoon, at home, during an overdose of caffeine. It was ‘real’ programming.most things were created from scratch, writing in different languages, compiling on different architectures, etc.

This job also required contacts with customers, sitting at the company’s headquarters, repairing equipment-fortunately, this happened occasionally. That’s probably why I didn’t take this job seriously (and looking back at the money I was making, my boss didn’t take it seriously either). Later, after receiving my diploma, I thought, that it would be fun to become a software engineer for a large, prestigious company. I took aim at one of the biggest megacorps, and I was accepted. I was thrilled with the recruitment process, probably because it was my first real one. Until the previous one I was accepted from the kick, they did not have a man who could measure my ‘engineering talent’.

So it happened. Research and development center megakorpo. Beautiful building in the center of Warsaw. Lots of pubs around, RFID access, no parking at all. Wonderful.

The crew was great. A bunch of geeks raised in a time when the world converted from analog to eight bits. It seemed to me that korpo would require more modesty and restraint in rehashing and refactoring code that had more than 10 million lines. I’m actually wondering why I didn’t let cloc go at all… Maybe I’d be done by now (disks, corpo-ware, the enormity of the code = tragic IO). Sorry for the digression. After a few months of digging into the code, the product and the tools, the part of the team that I belonged to, I was given a simple task: helping customers customise their products. It consisted of branching the code back and forth, tweaking the configuration files and editing a few C/C++ headers, adding another batch of #ifdef horrors. I remember one of the headers that swelled to over 100,000. # ifdef’s vomit line.

The task was quite simple (when you already knew what and how to edit). It was boring, tedious and very susceptible to human error. The typical approach-hack-build-test-iterate-could be put in your shoes, as the full build lasted a day (yes, a day-24h). It was easy to sense the change of situation by opening one of the main headers.

My teammate came up with the brilliant idea of doing all these tedious operations in Python. After a few days, the prototype was ready. After a few weeks, we used it instead of waving the sword by hand. The tool was perfect. I had the opportunity to write some code in python, which did something useful and this is still under the eye of a much more experienced coder! We enjoyed the idea of spreading this tool across all megakorpo centers. Thousands of hours and facap saved.

We flew to one of the production centers of the company with a demonstration of our panacea. That was the moment I realized how a corporation works. If there are more than 10 levels above your smiling face in the organizational chart, the chance of pushing your brilliant idea is close to 0. Let’s say there’s an 80% chance that your manager or your manager is going to push your idea up, and you’re 10 levels above you, and at the end of the day it gives you a 10% chance. This 80% chance of ‘per-tier’ is optimistic anyway.

We tried to advertise a tool that put people out of work. Not that anyone would suddenly fire them-there is always a job for people who do not pale at the sight of source code. Instead, we bounced off the wall, which was a conservative approach to work.

It was the first sign that working for the corpo might not be for me.

The next 5 years I was a ball in the management flipper, working as a technical leader, technical coach, even given me a small management team. Then I abdicated. I liked all these classes-I had the opportunity to learn new things, I was responsible for research projects. I shared my knowledge with others and traveled a lot. A lot of fun… until I realized that my love for code was getting more and more stifled with each passing day that me and my team we followed company standards more closely than good engineering values. When my desire for good engineering reached its maximum, I relinquished all non-programming responsibilities. At least, that’s what I thought.

With the growth of the company and our department, the skill level of the people hired flew to the muzzle. The most valuable were the apprentices. Absurd. I had to run. In the jumps.

You remember a friend of mine from the prototype who was beating up poor people? While I was developing my patience, he left the corps. To Linaro, from where he later migrated to canonical. When I started looking for a job, he’d already had a few years under his belt. The idea of working from home, developing open-source software for a company I really respected, sounded like a dream.

My only concern was, ” Am I good enough?”.
Recruitment went smoothly (except for the fact that I was late for one of the sessions, because like this stupid bitch, I miscalculated the time difference)…

Part two here…

Go to our cases Get a free quote