Djangocon: growing old gracefully, on being a career programmer - Carlton Gibson

Tags: djangocon, django, python, plone

(One of my summaries of a talk at the 2018 european djangocon.)

He’s a longtime django user. “The web framework for perfectionists”: yes, that’s him.

He has also build lots of backends for IOS apps. For that, he used django REST framework. He got involved on the mailinglist and on stackoverflow. Now he’s a core team member of django rest framework. He also started maintaining django-crispyforms and so. And now he’s the “django fellow”.

So far, so good. He has a job. Nothing million-euro-making, but fine. The problem: he’s getting older. There was a post on hacker news: “before you’re 40, make sure you have a plan B”.

You might get into problem when searching for django jobs: “you’re older, so you’re more expensive, so we’ll take a younger person”. You also might have a family, so moving (especially working abroad) is harder.

There’s a common path: become a manager. But he won’t do that. He’s a good programmer, but not a good manager. He wants to stay productive and creative.

So what if you just want to keep programming? He has some generic strategies:

  • Look outside the tech bubble. The software tech bubble. “Software is eating the world”, so who’s going to program that? Look at traditional industries!

    (Note by Reinout: I’m working in a civil engineering construction firm now!)

  • Always ask “what’s next”? If you’re a freelancer, you can handle an occasional bad project if you have a good pipeline. But if you have a good project and a bad pipeline, you have a problem.

    Also make sure you develop yourself constantly. Become more valuable. Become more valuable to your employer. Make sure he knows how valuable you are (especially how valuable you could be to other companies).

There are also specific strategies:

  • Be diligent. The number one priority is self care. Care about the pace. Don’t do “death march” projects. You cannot do 100 hour workweeks until your pension! Keep a good pace.

    Similarly, make time for your family if you have one.

  • Be diligent: eliminate distractions. If you won’t work yourself to death in 100 hour workweeks, you have to make sure you work hard in the time you do work. Look hard at your distractions. How often do you check your email? Facebook? Your phone?

    Procrastination is a big problem. You might have a big pile of underspecified work. The real job would be to specify/clarify the work, but it is much easier to let yourself be distracted.

    Some apps he uses to prevent distraction:

    Combined, these three tools help him eliminate much of the distractions that would otherwise surely ruin his productivity.

    Regarding his phone? His tip is delete everything. Don’t have all those apps in there that can distract you. News sites you check 20x a day: what is the use to have that on your phone?

  • Be dilligent: develop good habits. By eliminating distractions, you’ve made time for other activities. What do you want to do?

  • Be prolific. Do one thing. And then another. And then another. The individual things you do might not be big of itself, but it all adds up after 15 years.

    He himself is not a superstar developer, but he’s done a lot!

    A tip: contribute to open source. There’s a low barrier to entry (in theory at least). And it is visible! It is stuff you can talk about. Anything you stick on github, you can point to it. If your work-time code is all private, you cannot show it. At job interviews, you might be asked for a code sample. If you’ve got lots of stuff on github, you won’t get that question.

    Contributing to open source is a “slow burner”. It is not something you can do quickly in order to make a good impression at a job interview. It is something you have to do for quite some period of time. Small contributions over time in the end up as a sizable and visible contribution.

Some comments on open source:

  • One thing to watch out for, when contributing to open source: make sure you don’t burn out. People will ask the same support questions over and over and over again. There are risks of “contributing to open source is eating my time” or “is making me sick” or “limiting the time with my family”. You don’t want that.

    That’s the basic purpose of the django fellow: it is a paid job to do the menial work so that it doesn’t burn out the other developers.

    As a regular contributor, limit your time beforehand.

  • Get your employer to help. Open source is often a better alternative than building your own.

    When working on open source code, you’ll also learn a lot. And it will improve you. And it will increase your value for your company.

    They should be funding django, django rest framework, etc. It is much, much cheaper to fund those projects to get your bugs fixed than to hire programmers directly to fix it.

  • Specifically for django: when you contribute a pull request, you’ll get lots of comments. They’re necessary to keep up django’s quality. But it can be a bit discouraging. But don’t dispair! And let Carlton help you work through the comments. That’s his job as django fellow.

To close it off, the secret weapon: be social. Get involved in open source. Talk to people. Go to meetings. Genuine interaction instead of websites-with-an-algorithm.

It will help you find a good employer. As an employer, it will help you find good programmers. There are many good companies that are good for their employees. You’ll find them by talking to people! There are many good programmers looking for a nicer job, you’ll find them by talking to people.

https://abload.de/img/screen_shot_2014_11_30tstx.png

Photo explanation: constructing a viaduct module (which spans a 2m staircase) for my model railway on my attic.

 
vanrees.org logo

About me

My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.

Weblog feeds

Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):