The Rants, Raves, Gripes, and Prophecies of Paul R. Potts

Contents by Category

Contents by Date

Favorite Links

My Wiki: main entrance
Boing Boing
Gwydion Dylan
Paul Graham
Richard P. Gabriel

Thu, 29 Jul 2004 What Kind of Job?

I was passed over for the Brown University instructional design position. It is probably just as well; it provided no benefits at all, and I would have needed to finish an initial set of deliverables by the end of September, with the job to conclude at the end of the year. In other words, it would require either a frantically fast move, or temporary separation from my family. I've been so stressed out about the job search and corresponding money crunch that they might consider the separation a nice bonus, though. Maybe it would do all of us some good.

It's 3 a.m. Do you know where your job is?

I promised in an earlier entry to talk about the kind of job I'm looking for. I had to answer this question recently for someone who thought I might be a fit somewhere in his organization, but didn't have a specific posting to refer me to. So here is what I told him.

Something that is implicit in my resume, I think, is that I really value constant learning and mixing heads-down development with writing, training, and design. My dream job used to be DTS (Developer Technical Services) in the Newton group, where I would have a chance to write sample code and help outside developers get their code working, which might include writing library code for them, isolating bugs, etc. That combined the tech part with interaction with other tech people. It doesn't sound like your team will necessarily be supporting other developers, but if there was some equivalent, that would probably be the best of all worlds for me.

That said, I also like working on challenging low-level coding projects. I like to sink my teeth into code, I'm willing and able to do maintenance work and revision of old code, and I've tended to take on the "language lawyer" role as well as writing style guides and setting up processes where there were none. I would be looking for a more senior-level job, doing at least some architecture work and supervising other developers, perhaps managing a build process. I'm comfortable managing a small group, and I like to do XP-style pair programming. I don't really want to be a project manager who doesn't also do at least some serious hands-on coding.


I like the startup environment in part because in startups and small companies I've gotten to wear many different hats and contribute to setting up a whole development culture. If I have a single heads-down assignment to work on all day every day, that job would be less satisfying for me, although I can enjoy that kind of thing for the length of a single project, especially if it is a challenging one.

It seems o me that there are really two ways I could go.

First, I could go down the ladder, to a more entry-level position, and try to acquire some more in-demand paper qualifications, such as an MCSE or some sort of Linux certification, and look for a sysadmin position or low-paying programmer position. The problem being that the low pay might not keep us afloat, and force us into bankruptcy anyway.

I could try to teach myself C# and .NET and more of the J2EE APIs and apply for a job with one of those specific requirements, although it would not result in the various years of experience that various employers are demanding these days. I also usually learn best when given a real task, not when left to my own devices to make one up.

Or, I suppose, to become buzzword-compliant, I could apply for something like this, which I came across in my job hunt yesterday:

As a volunteer software engineer for e-Brainstorm Technology, you will be a key member of a growing organization that delivers high quality, value-added Information Technology services and solutions. Successful candidates should have 1-2 years of application development full life cycle experience. J2EE, Oracle9i, ASP.Net, C#, SQL2000 skills as well as some networking experience are required. Highly self-motivated, self-directed, creative, spontaneous and attentive to details. Excellent written, verbal, and interpersonal communication skills. Ability to translate functional requirements to technical specifications. Thrive in a deadline-driven, multi-projects, fast-paced team environment. Work closely with project manager and sales engineer. Bachelor's degree in Software Engineering or Computer Science is required.

Compensation: Volunteer position with training and career growth opportunity

But that doesn't seem like such a good idea. I'm not sure how anyone with the necessary credentials could consider taking this job, and I certainly don't think this is a trend that should be encouraged. It doesn't seem to be a job posting for a non-profit; if they are delivering "value-added blah blah blah," does it make any sense that the person adding the "value" would not partake of any of that added value?

It seems to me that if I'm going to find anything, I have to be able to differentiate myself from all the people who realized in 1999 that there was money to be made in web development, and so bought themselves a copy of "Teach Yourself Web Programming in 29 Minutes." Where is a good job for someone who has been programming computers since he was ten years old, twenty-six years ago?

Up, then. To a more senior more technical, or managerial position. If there is an "up" in the current job market. And what about sideways? That is, in effect, what I was hoping to achieve with the Field School position.

Paul Graham describes the dilemma I feel quite well:

What do hackers want? Like all craftsmen, hackers like good tools. In fact, that's an understatement. Good hackers find it unbearable to use bad tools. They'll simply refuse to work on projects with the wrong infrastructure.


A couple years ago a venture capitalist friend told me about a new startup he was involved with. It sounded promising. But the next time I talked to him, he said they'd decided to build their software on Windows NT, and had just hired a very experienced NT developer to be their chief technical officer. When I heard this, I thought, these guys are doomed. One, the CTO couldn't be a first rate hacker, because to become an eminent NT developer he would have had to use NT voluntarily, multiple times, and I couldn't imagine a great hacker doing that; and two, even if he was good, he'd have a hard time hiring anyone good to work for him if the project had to be built on NT. [Footnote: They did turn out to be doomed. They shut down a few months later.]


If it is possible to make yourself into a great hacker, the way to do it may be to make the following deal with yourself: you never have to work on boring projects (unless your family will starve otherwise), and in return, you'll never allow yourself to do a half-assed job. All the great hackers I know seem to have made that deal, though perhaps none of them had any choice in the matter.

[/root/news] permanent link

Functional Developer Opens Up!

I found out today that Functional Developer, the flagship Dylan compiler and IDE, has gone open-source. That's exciting news. It even applies to all the extra libraries that Functional Objects used to sell.

Of course, it is a huge project, and it now leaves the Gwydion project in a unique bind: they now have two high-quality, advanced, and extremely large codebases to work with. The two are "compatible" only in that most of the straight Dylan code involved is at least largely portable, modulo compiler and library bugs. Some of it has already been used with the Gwydion d2c compiler. That's something. So, where to start?

I took a shot at compiling the Ravensbrook memory management codebase. This required a few tweaks to suppress warnings, but seemed to work after that. That's just the beginning, though. Functional Developer has a full-blown GUI for Windows, and an alpha-level command-line compiler for Linux. It hasn't been ported to MacOS X yet. They don't even have full build instructions for Linux yet. The MacOS X port would be a great project to work on, but it is also quite intimidating. Porting the IDE would involve a complete implementation of the DUIM libraries. That could be valuable for both compilers. And it appears that someone has done at least preliminary work on generating PowerPC instructions!

But Dylan is already fragmented within the d2c project, because of the separation between the byte-code interpreter, Mindy, and d2c. Mindy's main use these days seems to be in boostrapping d2c. There's another interpreter project, Marlais, which seems to be at least marginally active; it is a true interactive interpreter, but I'm not sure how well it works at the moment. And of course there's the buggy and abandoned Apple Dylan, which won't run in emulation under MacOS X, and is even more unstable than usual under MacOS 9. That one's out of the game, but lives on in spirit.

For the moment, I should just try to finish my somewhat derailed Dylan sample code project, and consider what I could do with a PC running the full version of Functional Developer, together with all the optional libraries, on Windows. I don't have the PC, but maybe a suitable machine will magically arrive on my doorstep. Stranger things have been happening recently. But would it allow me to do anything that would help me find a good job? Would it contribute anything useful to the Gwydion group? Or would it just distract me from my job search? I'll meditate on that and see where it leads me.

[/root/geeky/programming/dylan] permanent link

Creative Commons License

Viewable With Any Browser