I’ve been writing for more than 2 years now, and I realised that I never told you much about my professional job. Let’s start with a brief summary of how I started…
Beginning of professional career
I started working a few months after I graduated in 2002. I had a science degree in applied mathematics and computational science, but that didn’t stop me from applying for the software engineer, software developer, application programmer, systems analyst and other confusing variants of the job title. I like programming.
Once, I worked in a startup company, writing software to deal with patents. One of the requirements was “must know regular expressions”, used for searching through the patent text, so I put my mind to learning it. I got the job. The funny thing was, the CEO handed that part of the coding to an intern. Oh wait, a PhD intern. Maybe I wasn’t qualified to touch regex…
Somewhere in that career history of mine was a software development house. The team I was in, was assigned to develop an enterprise product for a Japanese company. It’s an internal website, and handled work flow processes, task assignment and other enterprisey functions.
Half the time, I was helping to complete some sections of a business class. A third of the time, I was doing the testing, because I seem to be the only (expendable) one with more than coding skills. Because I had experience talking with users, coming up with specifications, database design, setting test environments and oh yeah, coding.
They even offered me a role in translation, after they heard I knew Japanese. Correction I told them, I knew a little teensy bit of Japanese. They had an overflow of programmers I guess… (it was a team of 10 programmers. Or was it 12?).
In the present
Currently I’m working in a telecommunications company in Singapore. Actually, I started my first job in the same company too. After the first few years, I joined the startup. Then left and joined the software house. Then left, and rejoined my current company, but in a different team (still in the billing support department though).
The interesting thing is that I’m dealing mostly with satellite data, not mobile phone data (one of the core business of telecommunications companies). And my users are like a complete company, albeit on a small scale.
They have their own departments on customer service, marketing, sales, and to a certain extent, their own IT team. And that IT team is composed of 3 people. And I’m one of them. I have a supervisor and a colleague who handles the backend programs (mostly C and C++ on Unix).
Me? I’m the frontend guy, and the everything-else guy.
Because of the unique service (compared with the rest of the company) dealing with satellite data, my team is involved with everything from the call records of the customers, to the configuration of their price plans, to billing the customers, to settling profit with the satellite providers. The satellite business is quite interesting, and I’ll tell you more in a future article.
The other team mates focus on collection of the raw file containing the call records, processing them, calculations of the bills and other backend stuff. I handle all the stuff that users will see and interact with, like Windows applications and web applications. And I manage the Windows servers the web applications are running on. And there’s the updating of the SSL certificates for the web applications. Once I was at the data centre during a power maintenance, because someone needed to be there to flip the on-off switch of the servers and check on the equipment.
My work is seen by a lot of people, which includes the customers, the sales staff, the marketing staff, the product managers, the administrative staff and the customer service officers. This means I get a lot of queries.
If a number doesn’t tally with the total, someone sends me an email.
If the font size is too small, someone sends me an email.
If the Excel download fails, someone calls me.
If the data cannot be found, someone calls me.
If they can’t open an FDF file, they call me.
If the offshore Chinese colleague have questions on business logic or web design or code design, he/she calls/emails me.
If [something happens], someone [calls/emails] me.
In short, I get interrupted a lot. Nice private offices? Not a chance.
And I still have to write code so the projects actually ship before deadlines.
There was once where I had 1 month to come up with a new website for the customers to view their call records (brand new .NET web application, new user interface, completely new database schema). That was a December (the sales people had to move fast to get that contract before the start of the next year, which meant I had to work fast). And another colleague from another team was reassigned, and his work was handed to me (basically I was covering for 2 teams). And I received calls and queries from the users of both teams.
And the new website was out in the world on time. *whew*
Do programmers who work in a corporate environment go through similar experiences? Do they handle many non-programming related work? Are corporate programmers also polymath programmers?
I’m stumped, since I probably have this naive notion of programmers just programming (to a large extent). My friend once asked me what I do at work. I didn’t know how to answer, so I rattled off a few tasks mentioned above, and he’s surprised I do so many different tasks. Particularly when I sometimes have email correspondence directly with customers, which I try to avoid for business reasons. The sales and customer service teams are supposed to be the frontline, not me.
Helping corporate programmers on time management
This brings me to a personal project. I’m creating a product about time management for corporate programmers, working title “Time management for corporate programmers – Handling interruptions, removing distractions and getting the Flow”. Or some such.
All the writings and articles on this site will continue to be free. I’m writing an ebook to help fellow corporate programmers (maybe even programmers in general) with what I know. And this endeavor might just be able to support this site. The articles are fun to write, and I love the brilliant comments by you (even the ones that tell me I’m wrong. Those are awesome).
Actually “time management” is too specific. I’ll be writing on discipline, control and health. There will be some quick tips on data migrations and doing your miscellaneous tasks with free tools (because you know, companies are always cutting the budget). My notes actually look like a jumbled mess, but maybe that’s the nature of polymaths… or just me.
So do you have any questions about time management in a corporate setting? Or even time management in general? What are the typical tasks you do? How can I help you do your job, the tasks you really want to do (it’s coding and shipping software, right?), better?
*whispers* Psst, it’s ok if you’re a student/coder. I was a student/coder once. Just ask.
I’m really excited about this project.