Category Archives: career

On this page:

Reflecting on my growth as a programmer

One of the things I realized from dealing with that programming issue is that I don’t have a mature development workflow for front-end work yet. On previous projects, I focused mostly on back-end development. I had somewhat gotten the hang of test-driven development and code coverage when using Rails before, and I set up an issue tracker for my previous teams. For my main consulting engagement, I shifted to working on mostly HTML, Javascript, and CSS. I’d handled a bit of that before, but we usually worked with designers who did most of the heavy lifting (and the cross-browser fiddliness). Over the past two years,  I picked up more JQuery and Angular, fought with Internet Explorer 7 and then 8, and explored Chrome’s developer tools a bit more.

I didn’t have things quite set up the way I think other people have. I felt mildly guilty about installing programs that were not available from the client’s internal software site, although Emacs was definitely worth the twinge of unease. Even the version control I used was ad-hoc, using Git on my computer to manage snippets for copying and pasting. I still haven’t mastered the Javascript debugger in Google Chrome, much less the tools available for other browsers. (Hence all the grief Internet Explorer gave me.) I didn’t have a test framework set up, so I often committed regression errors and other mistakes. I haven’t yet internalized all the cool development tools in Emacs, like Smartparens and Magit. (I’m slowly getting the hang of multiple-cursors-mode, though!) In terms of workflow maturity, I felt more like someone a few years out of university (or maybe even someone in their final year of classes!), and definitely like someone cobbling things together instead of picking up practices from a well-running team.

My main consulting engagement is coming to a close, but I’m looking forward to learning more about the craft of software development. I have a few personal projects to practise on, and it might be easier to Do The Right Thing when you’re less worried about potentially wasting the client’s time. I’m looking forward to familiarizing myself with more of the nifty features in Emacs. I’m also looking forward to immersing myself in the right ways to do things with popular frameworks, including testing and deployment.

I’d like to become a good programmer someday. What would that be like? For the particular way that I work–a generalist pulling together different things quickly–a good programmer might be one who has a neatly organized library of snippets, and who writes modular code with simple tests that exercise different functionality. Using a debugger, the good programmer would be able to dig into other people’s code, figuring out even things that aren’t documented. That programmer would also be able to quickly prototype and build well-designed interfaces. Things don’t have to win awards, but the interface shouldn’t get in the way. An even better programmer would have the ability to coordinate other programmers, improving people’s results by helping them work on both a tactical and strategic level.

Someday!

2014-09-15 Reflecting on my growth as a programmer

2014-09-15 Reflecting on my growth as a programmer

Thinking about rewards and recognition since I’m on my own

One of the things a good manager does is to recognize and reward people’s achievements, especially if people exceeded expectations. A large corporation might have some standard ways to reward good work: a team lunch, movie tickets, gift certificates, days off, reward points, events, and so on. Startups and small businesses might be able to come up with even more creative ways of celebrating success.

In tech, I think good managers take extra care to recognize when people have gone beyond the normal call of duty. It makes sense. Many people earn salaries without overtime pay, might not get a bonus even if they’ve sacrificed time with family or other discretionary activities, and might not be able to take vacation time easily.

It got me thinking: Now that I’m on my own, how do I want to celebrate achievements–especially when they are a result of tilting the balance towards work?

When I’m freelancing, extra time is paid for, so some reward is there already. I like carving out part of those earnings for my opportunity fund, rewarding my decision-making by giving myself more room to explore.

During a sprint, the extra focus time sometimes comes from reducing my housework. When things relax, then, I like celebrating by cooking good meals, investing in our workflows at home, and picking up the slack.

I also like taking notes so that I can build on those successes. I might not be able to include a lot of details, but having a few memory-hooks is better than not having any.

Sometimes people are really happy with the team’s performance, so there’s extra good karma. Of the different non-monetary ways that people can show their appreciation within a corporate framework, which ones would I lean towards?

I definitely appreciate slowing down the pace after big deliverables. Sustained concentration is difficult, so it helps to be able to push back if there are too many things on the go.

At work, I like taking time to document lessons learned in more detail. I’d get even more of a kick out of it if other people picked up those notes and did something even cooler with the ideas. That ranks high on my warm-and-fuzzy feeling scale. It can take time for people to have the opportunity to do something similar, but that’s okay. Sometimes I hear from people years later, and that’s even awesomer.

A testimonial could come in handy, especially if it’s on an attributed site like LinkedIn.

But really, it’s more about long-term relationships and helping out good people, good teams, and good causes. Since I can choose how much to work and I know that my non-work activities are also valuable, the main reasons I would choose to work more instead of exploring those other interests are:

  • I like the people I work with and what they’re working on, and I want to support them,
  • I’ll learn interesting things along the way, and
  • It’s good to honour commitments and not disrupt plans unnecessarily.

So, theoretically, if we plunged right back into the thick of another project, I didn’t get the time to write about stuff, I didn’t feel right keeping personal notes (and thus I’ll end up forgetting the important parts of the previous project), and no one’s allowed to write testimonials, I’d still be okay with good karma – not the quid-pro-quo of transactional favour-swapping, but a general good feeling that might come in handy thirty years from now.

Hmm, this is somewhat related to my reflection on Fit for You – which I thought I’d updated within the last three years, but I guess I hadn’t posted that to my blog. Should reflect on that again sometime… Anyway, it’s good to put together a “care and feeding” guide for yourself! =)

The power of no: being completely* unhireable until 2017 (and possibly longer)

When I started this 5-year experiment, I didn’t know if I could stick with it. My track record for sticking with interests is not that good. I’m delighted to report that (semi-)retirement gets easier and easier. I am learning to say no.

image

By coincidence, two of my mentors (who had moved on to separate companies after IBM) got in touch with me one after the other to find out if I was interested in some upcoming job opportunities. Good stuff. Right up my alley. Wonderful people.

I said no. Actually, I said something along the lines of: “Thank you for reaching out! That sounds fantastic. However, I am semi-retired and completely* unhireable until 2017 (or possibly later), so I’ll just have to wish you good luck on your search. I’m sure you’ll find someone awesome out there. If I think of returning to work, I will be sure to reach out to you right away. Thanks again!”

*If a significant financial need comes up, I have no qualms about suspending this experiment and returning to the wonderful world of work. I enjoyed working with excellent teams. I’d love to do it again. While I have the opportunity and privilege to work on things entirely of my choosing, though, I should do that. Not everyone can do so, and I shouldn’t waste the chance.

Learning how to say no is amazing. I used to feel guilty about this. I wanted to be in more than one place at a time. Then I realized that I am not a special snowflake and there are other awesome people out there who can make things happen. Sure, they might not bring my particular configuration of skills, but they’ll bring other useful combinations. This makes it easier for me to say no, because it leaves room for someone else to say yes.

Pre-making decisions helps a lot. When I was preparing for my experiment, I thought about the conditions in which I would stop or reconsider. If something happened to W-, I might go back to work. If our expenses didn’t stay in line with my projections, I might go back to work. If, if, if. If everything was going fine, though, then any qualms or anxieties would just be the product of my irrational lizard-brain trying to run back to the safety of the known, familiar, and explainable-at-cocktail-parties. (Not that I go to cocktail parties, and not that “I’m in consulting” was really an explanation. But it checked the right conversational boxes, while “I’m semi-retired” throws people for a loop.) Knowing my lizard-brain helps me work around it.

I often sketch out basic decisions in advance. It’s the programmer way. If this, then that. Check for warnings and errors. Handle exceptions. It means not having to worry as much, which is great. It means knowing when I might need to reconsider so that I’m not blindly following the same plan when circumstances change. In a way, I live through many possible lives.

It’s been a year and a half since I started my experiment with semi-retirement. My living expenses are almost exactly on track. My aspirations are definitely off track. I hadn’t expected to be this comfortable with writing and learning, and I’m excited about where this is going. This is good.

The road isn’t lonely at all. W- has been absolutely wonderful and supportive, and I’m running into more and more people on some kind of sabbatical or early retirement. The path is surprisingly well-travelled, the kind of secret trail that you might not hear about in your guidebook but which gets passed on from person to person in whispers and geocaches. I say no so that I can say yes.

Image credits: Crossroads (Mopic, Shutterstock)

Sketchnote: Managing Oneself (Peter Drucker)

Xiaoxiao asked me to sketchnote Managing Oneself, a classic article by Peter Drucker. Here are my notes. Click on the image for a larger version.

20130822 Managing Oneself - Peter Drucker

Please feel free to share this! (Creative Commons Attribution License)

In addition to sketching a visual summary, I thought I’d reflect on the points discussed in the article.

What are my strengths?

I’m happy, optimistic, appreciative, and resilient. I reflect a lot on what I do, how I do it, and why. I learn quickly, thanks to speed-reading and note-taking skills.  I know how to adapt to many of my characteristics, such as introversion and visual thinking. I’m comfortable with numbers, words, and drawings. I embrace deliberate practice and continuous improvement. I’m good at setting up little experiments, taking calculated risks, and finding ways to improve. I’m frugal and I’m decent at questioning assumptions. I work on being more rational and compensating for my biases, and I’m not intimidated by research.

Feedback analysis: I periodically review my decisions through scheduled decision reviews, blog archives, and other reflections. I’m good at breaking decisions down into smaller ones that I can try out or test. I can get better at involving other people in my decisions. I tend to discount things that are unscientific or that seem dodgy, but that hasn’t really gotten in my way. The main thing that gets in my way is my tendency to flit from interest to interest, although I’m dealing with that by learning how to create value in smaller chunks. I’m planning to improve my feedback analysis process by scheduling more decision reviews.

How do I work?

I learn primarily through reading, writing, and trying things out. I find it difficult to absorb information by listening to lectures or talking to other people. My preference for team or solo work depends on the project: for most development project, I prefer to work with at least one other person whose skill I respect, because I learn a lot more that way. I’m also comfortable working on my own. (I’m learning how to delegate, though.) I’m more comfortable making decisions than giving advice. I prefer some order and predictability in my daily schedule, but I minimize commitments. Routines give me a platform from which I can go wherever my interests take me. I enjoyed working in a large organization, but I’m also fine working on my own.

I know that it’s easier to make things happen if I adapt to my idiosyncrasies rather than wish I were someone else. I’m good at passing opportunities on to other people, and helping people see what might fit me.

What are my values?

I value learning and sharing as much as I can of what I learn with as many people as possible, which is why I prefer to share information for free instead of locking it down in order to earn more. I value equanimity rather than excess.

Where do I belong?

Where I am. (Yay!) This experiment is going well, and I’d like to continue it.

I know I worked well in large corporations too, and I think I’d get along with small ones. I definitely don’t belong outside my comfort zone (that time I had to do some Microsoft SQL Server admin? Yeah…) or in high-stress, high-travel, workaholic environments. (Which, fortunately, consulting wasn’t – at least for me.) I do better in situations where it’s okay to ask forgiveness instead of always asking for permission, and where 80% is okay instead of trying to get to 100% the first time around. I do well with some discretionary time to work on useful projects or help people outside my typical responsibilities.

What should I contribute?

I think people could use more examples of this sort of smaller-scale life, because it’ll help free people from assumptions about what they need or how much they have to sacrifice. I’d love to make it work and to share what I learn along the way.

I also care about helping people learn and think more effectively. Visual thinking is one way to do that, so I want to help people who have the inclination for it discover tools and techniques that they can use.

I care about learning in general, which includes learning about different topics and then creating resources or mapping concepts so that other people can learn them more easily.

Books, blog posts, drawings, presentations, and coaching are some ways I can make progress in these directions.

In addition to those five questions, Peter Drucker also gave these career tips:

Taking responsibility for relationships

One of the things I learned as a kid was that you can take responsibility for the way you interact with people and you can help them get better at interacting with you. (Yes, I was the kid reading Parenting Teenagers for Dummies and How to Talk So Kids Will Listen and Listen So Kids Will Talk.) At work, it was great explicitly discussing communication styles and motivational preferences with my managers, who helped me tweak things to play to my strengths.

The second half of your life

… why wait until your forties? Winking smile

I’m a big fan of having at least two good things on the go at any given time. I learned this as a software developer. That way, when you run into a setback or delay, you can always work on the other thing in order to keep yourself moving forward.

For me right now, there’s writing, drawing, and software. In the future, who knows?

How about you? What do you think about managing yourself?

Dealing with professional envy

One of the things that both rocks and sucks about the Internet is that it’s easy to find people who are better than you.

This is great because you’re surrounded by inspiration. It’s easier to figure out what “better” looks like when you can see it. You can try on other people’s styles to see if they fit you, and when you do that, you’ll learn more about your own.

Being surrounded by all these role models can be hard on your self-esteem and your determination. Not only are you surrounded by all these people who have spent decades into being amazing, you’re also getting overtaken by younguns who come out of nowhere.

Such is life. I could get caught up in it, or I could see it for the game that it is, step outside of thinking of it as a contest, and invent my own rules. I’ve gone through this before, and it gets easier and easier to choose a way to see life.

I’ve been learning about drawing in the process of cataloguing the sketchnotes that are out there. It’s difficult to imagine getting to be as good as the people I see, but I make myself remember that they started from somewhere. Besides, the alchemical combinations of life are what make things interesting. Maybe my technical background or my interests can open up other possibilities.

Envy is good as long as it’s useful. Self-doubt often tries to creep in, but the truth is that it’s optional.

Sketchnotes: Dave Ley, Jen Nolan, Leo Marland and me at the University of Toronto Faculty of Information’s career panel

ischool_to

(Click on the image for a larger version)

Kelly Lyons and Isidora Petrovic invited Dave Ley (CIBC), Jen Nolan (IBM), Leo Marland (IBM), and me (… figuring things out! also, formerly IBM…) for the March 12 career panel for the University of Toronto’s Faculty of Information students. People were curious about the job process. They wanted to know what managers were looking for when hiring, and how information graduates could differentiate themselves from people with more technical backgrounds. I was pleasantly surprised to find that I had lots of stuff to share about learning, sharing, working with passion, and getting hired even if you don’t have any actual work experience. It turns out a few people were interested in entrepreneurship too. Yay!

I’ve condensed some of the points from the discussion into this graphic, and the organizers say that the video will be up on YouTube sometime. =)