Unless you didn’t pay attention, you should know by now that I left my 12-year job at Canon and started working for Cadasta since March. The update of my profile on Facebook and LinkedIn should have made that abundantly clear. And it should also be obvious that this career shift was what I alluded to in my post last year, though I didn’t expect back then that I would eventually end up where I am now.
In my previous work, new employees are requested to provide an essay describing their experiences with the company after being with it for three months. Cadasta does not request something similar so I decided to post my three-month essay here in my blog instead.
But before I share my thoughts on the past few months, let’s backtrack to late last year. I had actually set my sights on joining a different company whose office was closer to home, where the line of work was similar to my previous job, and where company policies were vastly more relaxed. I had even gone on an initial interview with my potential boss with the mutual understanding that we would eventually work with each other—the salary being the only negotiating point. Unfortunately, business conditions with that company’s parent corporation prevented us from inking the deal.
As many people say, when a door closes, a window opens. And what an opening that was. A friend of mine shared that Cadasta had a couple of slots for a remote web developer position, which greatly appealed to me. While I didn’t think that I had a good shot because I didn’t have the relevant experience in the major technologies used by the company, I nevertheless grabbed the opportunity. Fortunately, I passed the general and technical interviews and was invited in December to join Cadasta, besting over a hundred other applicants. (I later learned that it also helped that I came from a developing country as Cadasta values diversity, but I was assured that I got in primarily on merit.)
So how is working for Cadasta? I will admit: it is really cool. I can work wherever I want (or at least where there’s decent Internet access) and whenever I want, just as long as I get the job done and provide value to the company. I get to contribute to open source software, something which I really appreciate, and the nature of working with a diverse team of people scattered in different timezones is challenging yet refreshing. If I’m feeling sleepy, I can take a quick siesta without feeling guilty and I can take a half-day off without needing to get prior approval. Moreover, receiving a very competitive salary is the icing on the cake.
Comparing the working environment between the previous and current job is like night and day. Not that working at Canon was a nightmare—I wouldn’t have stayed there for 12 years if that were the case. My work there was intellectually stimulating and fulfilling. I got to learn a lot and was able to impart my knowledge to other people. My superiors were all very supportive. And my colleagues were some of the best people I’ve had the pleasure of spending most of my day with. The difference is not between bad and good, but rather like the difference between black and white.
For instance, many friends were surprised to learn that smartphones are strictly prohibited in my previous office and that Internet access is allowed only in limited instances. Being an R&D subsidiary and developing technologies that would provide competitive advantages in the consumer and enterprise market years in the future, my previous company understandably takes information security very seriously. Technical and policy measures, such as NDAs, were put in place in order to prevent leakage of trade secrets and other confidential intellectual property. (This led to in-jokes on social media where we used references like “Company Confidential” when talking about our employer.) Contrast that with Cadasta where the cloud platform we are creating is open source and our development is visible to everyone through GitHub.
As another example, I mentioned that I can now take leaves without needing explicit approval (we just use sensible judgment to warn our colleagues ahead of time and avoid inconvenience). In my previous work, there are very elaborate leave approval policies and procedures. And even if you comply with them, it is not a guarantee that your leave will be approved, something that a friend of mine bitterly learned and eventually led to his resignation. I myself had to jump through multiple hoops (i.e., levels of approval) in order for my London trip to push through.
Warning: This post becomes quite a bit technical from here on out.
For Cadasta’s cloud platform, we are developing it in Django which uses Python as its programming language. Before Cadasta, I have zero experience with Django (though I experimented with a different, Perl-based web framework before) and have never really programmed in Python. I once customized (read: mangled) a Python script to produce a GPS-driven animation for an OpenStreeMap event in 2010, but that was the extent of my Python experience and I didn’t really study the language—only learning enough of it to be able hack the script to do what I want.
Python is actually quite a big contrast from Perl. Perl famously has the motto “There’s more than one way to do it” (lovingly abbreviated as “TMTOWTDI”), while the Zen of Python states: “There should be one—and preferably only one—obvious way to do it.” Nevertheless, I’ve grown to love programming in Python and I definitely believe that being exposed to Perl and Python with their contrasting philosophies makes me a better developer. (Cue in the Lisp/Haskell/Erlang geeks.)
As for Django, I am amazed at how powerful, yet very customizable, it is. I’m actually now considering using it for developing future websites. Its object-relational mapping (ORM) is the best I’ve seen (though I haven’t really seen a lot), and I like how the platform provides an optional admin interface that let’s you quickly populate and edit the tailored content for your website, letting you put it up quick and easy.
In my previous work, we use an in-house proprietary version control system for holding all of our source code. We also access a network of servers where we would run all of our software. Contrast that with Cadasta where we use Git via GitHub for version control, and a virtual environment on our own computers that was setup using Vagrant+Ansible. (The VM taxes my laptop, so I’m planning to get a new one soon.) The only major similarity between my two jobs is that the development OS is Linux. Of the other Cadasta technology choices, I’ve only ever used Git/GitHub so it was not a total start from scratch for me. (BTW, I really, really love Git. I remember seeing a presentation explaining how Git works from way back and I instantly loved its overall elegant design.)
Working with a distributed development team scattered all over the world presents some challenges. (Of course.) Unlike in my previous work (and in most other companies) where you can turn to the person next to you to ask a question, you can’t do that in Cadasta. So we work asynchronously and use Slack as our primary collaboration and communications tool and Trello for tracking non-development issues and tasks.
The development team also has a weekly online meeting (using Zoom) to help keep us all on the same page. That obviously presents timezone challenges. In our current meeting schedule, I attend the meetings at night while those on the west coast of the United States wake up early in the morning. Being in a tropical country, I never had to worry about daylight saving time, but now I have to be aware of DST switches in Australia, Europe and North America. Aside from the weekly meetings, the whole staff also has a weekly pair-call system where we get randomly paired-up each week in order to have a half-hour online chit-chat about anything. This is to help us get to know each other in lieu of the proverbial water cooler talk.
So that’s what I’ve been up to professionally for the past three and a half months. I’m quite happy having the opportunity to contribute to Cadasta’s success and I look forward to finally meeting the rest of the staff—I’ve met our CTO, Kate, through OpenStreetMap before (she’s the current Chair of the OSM Foundation and former Executive Director of the Humanitarian OpenStreetMap Team)—when we have our staff retreat in Germany this August. (Hopefully I won’t have any problems in getting a Schengen visa.)