Saturday, May 20th, 2006 10:05 am
A big whole bunch of ideas, not even exhaustive! Feedback on any of them is very welcome. New ideas to add to the list are also very welcome. Job offers are greeted with an angel choir soundtrack and my frantic stammerings of lifelong gratitude.

1. Embedded OS/driver stuff - My resume screams "embedded OS/drivers". That's my most recent experience, a fair bit of it.

Sadly, what this past job has taught me is I no do drivers. Sadly, most anyone who wants OSes wants a lot of driver/firmware work. Can I find OS work without getting THAT far into the hardware? And can I find it near where I live? Alameda is out, so no Wind River.

Given my motivation, possibly embedded OS work is too far removed from the customer. I can't point to anyone whose life is noticeably better because I fixed a timer bug.

I don't know the internals of any big existing OS because we've always written our own. I know zip about Linux internals, for example. Of course, a lot of Linux work out there would likely be porting, which would put me right back in driver land, so that's probably not great.

Who's doing active OS kernel/internals development?

2. UI design and implementation - Another thing my resume has a big pile of is UI design and implementation. I've got a good decade of that.

Sadly, all of it was in X11/Xt/Motif, and no one uses that any more. I'd need to learn... what? MFC? ASP.NET? Java Swing? Plus, it's hard to find employers who respect good UI design skills. Mostly they respect knowledge of the library you're using. Too bad that's the part I don't have. Can I get it? Quickly? My Xt experience will speed up the learning curve.

Motivation is strong here. I know people who use whatever I write will have an easier time of it if I do my job well.

If I choose this path, which UI package should I learn?

3. Tools - One last bit of experience: I wrote some good-sized chunks of a debugger once.

That sort of thing motivates me if I think of the customer as my coworker down the hall. Other random development tools, ditto.

Pretending to be a compiler person is like pretending to be a physician. That's out. But other tools, I can likely do. So: custom debuggers for custom systems. Simulators, probably. With some learning curve, maybe profiling, or join a team doing static analysis. What else is out there in tools-land? What weird development worlds need weird tools written?

4. Spam-killing - No experience there. It sure does pass the "is it worth doing" test for me. What would I need to learn?

5. Apps destined for non-computer-professionals (software for small businesses, etc) - What's out there? Some of this would be way cool to do.

6. Webby stuff a company deploys for its customers to use - Some of this could be cool too. The debug cycle has got to be frustrating as all get-out, and that's something I've got years of tips and tricks for from my X11 work and embedded work.

7. Other - Any other development ideas?

8. QA - Getting farther off the obvious path, how about QA? It likely won't pay what development pays, but I've done it before and I seem to have the mindset.

9. Documentation - At all possible? I have zero training and zero experience, but it appeals, and I believe I could write clearly about complicated things. One unusual trait I have among engineers is that I give a shit about documentation: accuracy, appearance, completeness, etc. I don't even know what I'd have to learn though.

10. Build/release stuff - I've done this as secondary duties; think of the customer as the team down the hall. Again, likely lower pay than development, but if I'm good I can turn a painful process into something almost pleasant.

11. Other Other - What else? Any other ideas?
Saturday, May 20th, 2006 05:09 pm (UTC)
Spam-killing - No experience there. It sure does pass the "is it worth doing" test for me. What would I need to learn?


Two words. Blue Frog.

There's an AWful lot to learn.
Saturday, May 20th, 2006 05:23 pm (UTC)
Yeah, Blue Frog is... interesting. I had been thinking more on the filtering end of things...
Saturday, May 20th, 2006 06:39 pm (UTC)
never done it either, but from what i've picked up randomly, it's a bunch of mathematics, statistics and algorithms. nothing you shouldn't be able to learn fairly easily and quickly.
Sunday, May 21st, 2006 12:15 am (UTC)
Sounds intriguing. I should go find a good reference and scope out the learning involved. If I could be good at this, I could enjoy doing it.
Sunday, May 21st, 2006 05:17 pm (UTC)
We've talked about applying our research team to the spam problem - ultimately, it's either a strong authentication and identity problem, or an AI problem, in particular Natural Language Processing (but while there's lots of broad annoyance with spam, there's a lot more money in geography :-)
Tuesday, May 23rd, 2006 03:23 am (UTC)
Yeah, that makes sense. I suppose if I joined one of the filtering groups, they'd be heading (if anywhere) toward the AI/NLP side...
Saturday, May 20th, 2006 05:24 pm (UTC)
my resume has a big pile of is UI design and implementation

Too bad I probably couldn't contract you for the UI part of my research assistantship. Although, if you don't mind, when I have questions here or there I may pick your brain. I know a lot from the ergonomics side, not so much from the coding side. :-)
Saturday, May 20th, 2006 05:35 pm (UTC)
Pick away! Problem is, you're probably NOT working in the X Window System, which is the one I know. What UI tools *are* you working with, out of curiosity?
Saturday, May 20th, 2006 05:40 pm (UTC)
As of now, I still have *no* idea. I haven't managed to pin down my advisor to talk to her since I got accepted other than her letting me know there really isn't much to do until before the fall semester starts. I'm beginning to think I won't know much more about what's going on until August. Given many meteorological tools are not Windows, I don't think X Windows is out of the question, but it could even be mainframe or larger stuff (knowing supercomputers are also employed heavily).

As an aside, I know Avid (the company that bought my former employer) still maintains a large Mountain View engineering team. According to the Avid web site, the only SW or HW position listed today is an FPGA designer, but I know they do drivers and other embedded stuff - you might check 'em out and put up your resume. They're a much better company than my former employer. :-)
Saturday, May 20th, 2006 05:50 pm (UTC)
If it turns out to be X, I can SO help you. Ask away.

Yeah, I just went to visit the Avid site and they list no software positions, at least in Mountain View. Ah well. One would hope they'd at least want tools - but maybe they don't do that in MV or are already full up.
Saturday, May 20th, 2006 05:25 pm (UTC)
We're doing some music downlaoding software that it looks like you could do. Unfortunatley, the job is in NYC. If you want to move to NYC, let me know.
Saturday, May 20th, 2006 05:33 pm (UTC)
*grin* I'm staying put for now, but thanks! Saw that list a couple days ago on your journal. I have a little over half of that.

Sounds like a good company!
Saturday, May 20th, 2006 06:09 pm (UTC)
If you know any C++ programmers who know SQL and web app work woud would want to work in NYC, let me know. We need someone soon.
Saturday, May 20th, 2006 06:11 pm (UTC)
I'll keep my ear to the ground. I know few people already in NYC, but I might hear of someone moving, possibly from elsewhere east-coast-ish.
Saturday, May 20th, 2006 05:48 pm (UTC)
Voice over IP is hot and getting hotter -- at least one major bank that I know of intends to migrate all of its phone systems to it. UIs on phone systems are historically terrible (have you ever worked in or even seen a place where people actually liked the phone system?). Maybe you could improve a manufacturer's UI, or write something that will make things easier for users.
Saturday, May 20th, 2006 05:53 pm (UTC)
Oo, an intriguing idea! Yes, phone UIs suffer from a lack of visual output. Most humans are vision-dominant (in terms of input processing, analogies we make when we think about stuff, etc) and phones just don't have big beautiful screens. So we get to the whole "To hear new messages, press 2; to review old messages, press 3" kind of thing. Nobody likes those.
Saturday, May 20th, 2006 05:50 pm (UTC)
My company making learning management systems. Companies use our software to track and fulfill the training needs of its employees. This activity ranges from making sure that salesguys know how to use major products like Salesforce to making sure that long haul truck drivers have their certifications updated.

We have a UI group dedicated to fighting the forces of evil, aka, our current UI. If you are interested, send email to me (my user name at livejournal works if you don't know it off the top of your head) and I'll give you the company name and website.
Saturday, May 20th, 2006 06:02 pm (UTC)
Done! :-) I may not have experience with the right UI package for your company, but hey, it's worth a look.
Saturday, May 20th, 2006 06:30 pm (UTC)
Surprisingly enough, we aren't terribly worried about such things. We're more interested in principles of UI design than anything else. We advertise for this position with BayCHI (http://www.baychi.org/) rather than more technical organizations.
Sunday, May 21st, 2006 12:25 am (UTC)
Oh man. I think I see the listing you mean. Um... they wouldn't take someone working remotely, would they? If they would, I know someone who's an even better fit than me. They REALLY want her. If only [livejournal.com profile] jtidwell were on this coast!
Sunday, May 21st, 2006 06:26 am (UTC)
Our CEO isn't much for telecommuting, annoyingly enough. I do it all the time, but that's in the sense of working from home in the morning, driving in around 11am, and spending the rest of the day in the office. Or sometimes I spend an entire day working from home, but not regularly.

Our QA manager lives in Livermore and telecommutes two or three days a week, but he's just that good -- the CEO tolerates it because it's preferable to finding someone else.
Tuesday, May 23rd, 2006 03:39 am (UTC)
Ah, bummer. Oh well. I'm sure she's that good, too, but it's harder to *get* a job like that than to show up and prove you're that good and then *switch to* a telecommuting setup.
Saturday, May 20th, 2006 07:07 pm (UTC)
A bunch of the stuff you mentioned suggests you might be a good fit for my employer, McAfee -- and we're hiring. You can see our current openings here: http://jobsearch.mcafee.careers.monster.com/ We need all kinds of good people from firmware (many of our products are stand-alone appliances) to UI. Our products run under operating systems that include mobile phones, Linux, and NetWare as well as the ubiquitous Windows. Our users range from full-time security professionals to small business people to consumers.

Good things about McAfee are that we're helping the good guys stop viruses, spam, and other nastiness, and it's a pretty good place to work (I've been there for five years). Bad things... well, it's a medium-size corporation, there's corporate politics and stupid management decisions to cope with.

Most of the products I work on these days are written in Java, or a mix of Java and C++, and have browser-based UIs. The most important UI technologies in my area are HTTP, HTML, JavaScript, CSS, and JSP or ASP. Other products, developed elsewhere in the company, use different technologies, but in my area the browser is really taking over as far as new UI development goes. People like being able to access a security product's UI from wherever they are rather than having to go to the computer where the product is installed or install some kind of remote console.

If you're particularly interested in spam-killing you should research mail-based technologies (SMTP, IMAP, Exchange Server, etc.) because most of the coding is in getting the information about the mail and taking appropriate action. Much of what we do involves hooking into the file system, mail server, etc. and intercepting the files/messages as they are stored -- before they can do any damage.

I don't know that I'd recommend changing to documentation as a career for you. It would be a substantial pay cut, and documentation writers don't get a lot of respect. Even though the documentation writers are often in the best position to know what would make the product more or less usable, they are rarely in the best position to make their opinions stick. I was a tech writer for 15 years, and switched to development because I wanted a chance to fix the UI problems I saw rather than just explain how to work around them.
Sunday, May 21st, 2006 12:23 am (UTC)
Thank you! I'll spend a bunch of time looking at McAfee's current openings. (Is there ANY way to say that that doesn't sound dirty? Positions. Whatever!) Looks like they have quite a few in my area, if I count both Santa Clara and Sunnyvale.

Thanks also for the list of topics to go look at. Some of those are not going to be hard to learn, and once I pick a direction it'll be good to have smaller things to get started on right away. Then I can tackle the bigger ones over time. That's very useful.

I think I know what you mean, sadly, about documentation people not being heard. My recent employer has one of the best I've ever met, a doc writer who sits in on technical meetings and actively bugs engineers for explanations, and still people don't seem to pay attention. I don't understand why. If it frustrates me when I'm a developer I can only imagine how buggy I'd be if I were the one doing the docs.
Saturday, May 20th, 2006 08:03 pm (UTC)
I'm a technical documentation manager and can tell you lots about it if you're ever interested.
Sunday, May 21st, 2006 12:26 am (UTC)
I'd be interested to hear about it, definitely. Documentation as a potential career change is something I've long wondered about. (Technical writing was my minor.)
Saturday, May 20th, 2006 08:07 pm (UTC)
I think that our job searches are pretty darned parallel. One difference is that I haven't yet done device drivers, but would like to, that's where all of the jobs seem to be.

I've gotten a lot of job leads from craigslist and kitlist.

I also have a bunch of email from recruiters and such that I could forward to you. There are a couple that seem to be a bit better than others. If you want me to forward you such mail send me a not to lrc at red4est.

Sunday, May 21st, 2006 12:27 am (UTC)
Wow - if you HAD done device drivers already, and wanted to continue, I know where I could send you. A certain company is probably looking for an embedded OS/driver person pretty soon. :-)

I hadn't tried craigslist yet - thanks! I had been perusing monster. Yikes, that's badly organized.

Will drop you a note. Better than others would be a bit of a relief.
Saturday, May 20th, 2006 09:20 pm (UTC)
davidlevine (sorry, I tried a number of times to highlight the name and failed) mentioned Java. I think it's worth picking that up if you don't have it in your quiver. Ditto Python, IMHO.

BTW, it's Saturday -- that's when even working people are supposed to rest ;-) .
Sunday, May 21st, 2006 12:30 am (UTC)
I have only a bit of Java, but enough to recognize that it won't be hard to become productive quickly. C++ experience helps get to that level of proficiency pretty fast.

Hee! I promise I'm doing a lot of goofing off. I've read two junk books already today!
Saturday, May 20th, 2006 10:43 pm (UTC)
About UI stuff... I can offer what I know about the technical end of things. (I'm more interested the design end, as you know!)

The biggest growth areas here are Web and mobile UIs. You would have no trouble finding a job implementing UIs on the Web, especially the richer, more interactive sites that require more programming clue. Mobile is a smaller market, but growing, no question about it.

I can't speak with authority about mobile anything, but here are some Web technologies you may want to learn:

* HTML/CSS/Javascript. You know about HTML; CSS is layout and presentation rules, and Javascript is code. Put them all together and add asynchronous client/server communication, and you get AJAX ("asynchronous Javascript and XML"). Huuuuuge buzzword these days. :-) AJAX is the tech that Gmail, Google Maps, Flickr, etc. are built on, and though it's messy and hackish, one can build some nice UIs with it.

* Flash/SVG/Flex. This is Macromedia's path to building functional UIs on the Web. Flash is the vector-graphics player everyone knows about, SVG is code, and Flex is a full-fledged UI system based on those. Not as hot a market as AJAX at the moment, but impressive tech nonetheless. A programmer friend of mine is building a "big app" with Flex, and he loves it to pieces.

Of course, backend programming for the Web is done in an entirely different set of technologies: classic C/C++, perl, Java, PHP (sorta frontend too), databases, Python, Ruby, etc. Lots to learn! Whee! :-)

I currently build desktop UIs in Java Swing. It's okay as it goes -- decent language, a fairly mature UI toolkit, and marketable to an extent, but Swing programmers aren't in nearly as much demand as Web people, AFAIK. Check the listings in your area and see what you find.
Sunday, May 21st, 2006 12:38 am (UTC)
Wow, thanks for all this info! This is a wonderful overview of a field I've been away from for so long that it has turned unrecognizable.

So THAT'S what AJAX means! One puzzle demystified!

If I were to pick up, say, Javascript, CSS, and PHP, then I could be somewhat employable as a Web UI person, yes? Given I already have a fair bit of HTML and C/C++/Perl/Java. Three big pieces seems like a lot, but I do have a little time. If I start playing with them soon...

I've seen a few job listings for Swing here. I've also seen -- man, there's one I'd REALLY want to put you in. That's the one [livejournal.com profile] amywithani mentions in this thread. I'll ask if I can forward you the link. If they'd take someone remote... I don't even know if they can, but... you'd be PERFECT. Presuming, of course, you can be pried away from your current employer. :-)
Sunday, May 21st, 2006 06:22 am (UTC)
One warning about PHP: find out what XSS or "Cross-Site Scripting" means. This will put you above 80% of the PHP developers out there - and save you from the embarassment of implementing "yet another security hole".

For a quick dive into AJAX stuff, you might take a look at openlayers.org (open source project run by a coworker, to produce a common toolkit for ajax mapping apps - if nothing else, it's a fair place to see what all of the issues are.) You definitely need javascript and CSS to be able to do useful stuff with AJAX, but there's not much depth to either of them, just icky special cases - and, well, you handled Motif and traversal, these should be *easy* :-)

oh yeah - 37signals just put up a ruby-on-rails job board - no idea how it's going, but if you want to look in that space as part of picking up a new language (rails has some helper tools that make writing ajax apps easier - or rather, makes writing certain kinds trivial so everyone just writes those :-) it might be worth a glance.

Tuesday, May 23rd, 2006 03:38 am (UTC)
Oo, good info (esp. the tip about XSS)! Thanks. If I do do this, I want to do it *right*.

but there's not much depth to either of them

Ah, thanks. I had that impression (particularly about CSS: all icky special cases) but it's good to hear a second opinion.
Monday, May 22nd, 2006 10:13 pm (UTC)
Whoops. Change "SVG" to "Actionscript" in the above post. I hate it when I mix those up...
Tuesday, May 23rd, 2006 03:37 am (UTC)
Thanks! I *really* appreciate all the info. Seriously. Mucho mucho thanks.
Tuesday, May 23rd, 2006 04:25 am (UTC)
Yer welcome!

And by the way, thank you for being someone who gives a shit about documentation! It's so important to get it right. Plus, I've found that in most of the places I've worked, my best sounding boards and allies are people who do documentation and training -- they see the UI from the user's point of view better than anyone else in the organization.
Tuesday, May 23rd, 2006 04:46 am (UTC)
Aw, thanks! I usually hope to be the doc writer's ally. I'm willing to explain and willing to proofread. It works better for BOTH of us.

my best sounding boards and allies are people who do documentation and training

Absolutely. Similarly, the documentation folks I've worked with recently have been able to tell me when an API published by our OS is b0rked, either directly ("Are you sure...?") or indirectly (a page of total confusion where the doc should be).
Saturday, May 20th, 2006 11:05 pm (UTC)
UI ... QA ... Documentation ...

Hm, I know a project that needs a bunch of that done... it's too bad that we don't have any money at the moment. And that you're on the wrong coast.

One unusual trait I have among engineers is that I give a shit about documentation: accuracy, appearance, completeness, etc.

Yeah, too many of us don't, at least to a first degree. I give a shit about the fact that we don't give a shit, for what little that's worth. :-) It sucks that documentation and doc people don't get more respect. I worked with one doc guy once who really deserved it... knew his stuff, and wasn't afraid to dig into code to figure out what we'd done when we didn't do a good job telling him, and he'd come bug us about it for details.

I also know a doc person who was told to stop bugging the programmers at a previous job; she pretty much had to play with whatever software they gave her to figure out what they'd changed, and what new buttons or menu items did. And hope that the product they shipped actually matched what she'd been given to document.

Doesn't sound like a great option, unless you find one of those unusual places where they actually care...

Spam-killing

Definitely worthwhile, and it could be fun if you get to learn a bunch of new techniques. Quite a bit of competition, I imagine, including from the free stuff like spamassassin and crm114.
Sunday, May 21st, 2006 12:41 am (UTC)
HI!!

Hey, where are you these days, anyway? I lost track after the whole Red Hat thing and your transition to MIT. You still there?

My recent employer has the best doc person I've worked with, and I firmly believe she's that good because she bugs the programmers until she has what she needs. No other way she's going to get it, after all.

The more I think about it the more I like the spam filtering idea.
Sunday, May 21st, 2006 01:29 am (UTC)
Hi! :-) Long time, no see in person... Yup, still back at MIT, still doing Kerberos, still wishing we had more manpower and money for it.

Spam filtering has got a lot of interesting possibilities. I think maybe the toughest problem is dealing with spammers who are making a point of trying to get around your tool, and probably have more processing power to throw at the problem than your individual customers, unless you can do some interesting p2p thing for sharing data or something... and p2p networks have a whole bunch of other interesting things going on....
Tuesday, May 23rd, 2006 03:27 am (UTC)
Too bad there isn't more money for it -- there are enough people trying to *use* Kerberos!

You're absolutely right that spam will be a losing battle. I suspect it *always* will, at least until the rules change drastically (eg charging a fraction of a penny for every mail sent, or some other landscape-altering thing). That sense of "always on the losing end" may be a morale-killer. Not sure.
Sunday, May 21st, 2006 05:09 am (UTC)
One area you might not have considered is Cell Phone apps or Console game work. People who are used to embedded systems understand about constrained systems (and cell phones & console machines are constrained systems), so the cross-over is pretty good. BREW cell phone apps are in C/C++, and those people are hard to find. Cell phone apps are also a pretty strong growth market right now.
Tuesday, May 23rd, 2006 03:34 am (UTC)
Hi! Just talked to you in person. I didn't get the mail you sent -- maybe my spam filter ate it? :-( Try sending to me at me dot org, where me is the obvious name. I *think* my spam filter is NOT ALLOWED to eat anything that is addressed there.
Tuesday, May 23rd, 2006 06:12 am (UTC)
I resent it. I hope that you got it now.
Sunday, May 21st, 2006 02:58 pm (UTC)
Whole bunch o' thoughts here -- so probably a bit sketchy:

1. adding to whoever mentioned voice over IP: phone stuff in
general. Lots of jobs related to one-or-another sort of
phone stuff (or "voice" stuff..... hard to tell where the
line is as to what is "phone".)

2. agree that doc people don't usually get to have much
say. Ditto QA. Some exceptions, but they are exceptions.

3. regarding "Given my motivation, possibly embedded OS work is too far removed from the customer." -- very good point.
I like looking at BAjobs.com because it gives the EMPLOYER'S
job listing page. Places like monster often don't tell you
who the company is or even what SORT of thing they make.
I care about this. I care about what kind of software it
is, what it does, whether they make anything I consider
even vaguely useful, whether the software is something I
can "relate to" (if so the job is "easier") and so on.
It is very slow (compared to say, monster) to look
at one company at a time, but big advantage is that there
is some context about the job.
http://www.bajobs.com/BrowseList.aspx

4. I liked reading your thoughts about tech writing.
I have sometimes thought of tech writing (for myself), but
really haven't pursued the idea, as experience generally
counts MUCH more than aptitude. (I'd think we would both
do fine on aptitude for it.)
I've stayed with what I have a track record for. Call it
practical or call it lazy or whatever.


Good luck, of course.
Tuesday, May 23rd, 2006 03:36 am (UTC)
1. My previous (er, now once removed) employer did voice over IP. Wonder how much that knowledge would help in any way whatsoever. (Guessing not. But you never know.)

2. Yeah, that's definitely my experience in QA, and lots of acquaintances say the same about both QA and docs.

3. Cool! Thanks for the pointer!

4. Hey, lazy's just the sneering word for practical. I like practical. And I sure do know what you mean about experience versus aptitude...

Thanks!