Haven't posted anything in a few weeks, and that always makes me uneasy, so here come a few of those "whatever springs to mind" posts in case some people I haven't spoken to need to be filled in.
I have a new job. In San Antonio. The commute is long and dreary. Lots of quality time spent with podcasts, however. The job itself is for a simply massive behemoth of a company which is involved with providing banking and insurance services for military veterans. The money is solid and I have full benefits again, although when you price out weekly gas mileage, wear and tear costs on the car, and eating out more often than I'd like, the value of the salary drops considerably.
Also, my official title is "senior developer," and the hiring manager specifically said that this job is training me up to be lead developer on some new projects after six months. So, as much as I hate commuting, I think this was an important move that will give me some more exposure to leading web technologies, while also giving me leadership experience that my career needs.
Lynnea and I are considering getting a place slightly south of Austin, which would work well for her also since she works downtown. This step would not only shorten both of our daily drives, but also mark the "moving in together" rite of passage. Needless to say, we would not take such a step if our relationship status was not fabulous.
I bought a new laptop. The laptop I bought for school in late 2006 gave up the ghost long ago, and I haven't had a working one since I worked at McLane and was allowed to take home my work PC. My desktop is about four years old, which qualifies it not as a dinosaur but more of a trilobite. Sure, it's been tricked out with more RAM and extra hard disk space, but it still creaks with age.
The new laptop arrived on Monday, and... well, DROOL. It was actually a budget item, only running $800. However, the specs (see this item) are still a massive jump forward from what I've had before. It has a dedicated graphics card with 1 GB of dedicated RAM, 4 GB of conventional RAM, 320 GB of hard disk, and Windows 7, about which I currently have no complaints.
Of course I can ramble about how important it will be for getting Serious Work done, but you'd know I'm lying, right? Web surfing and games, baby! World of Warcraft runs smoothly in every environment with the graphics settings cranked up to "high" (though I have not been brave enough to try it on "ultra" yet). Left 4 Dead runs smoothly at full res. The box warmed up a bit after a couple hours of gaming, but it wasn't even uncomfortable enough to remove from my lap while sitting on the comfy couch.
I haven't installed Eclipse yet, but I plan to do some recreational programming with it as well, I swear.
Basically the reason I decided I need this NOW is because I'm planning to save myself some hours of driving time and rent a hotel room once or twice a week. I get home very late and go to bed as soon as I can, while Lynnea works odd hours that bring her home at 11. So frankly, we'd "see" more of each other online if I could stay up a bit later due to not getting up so awfully early.
More to follow...
Showing posts with label my job. Show all posts
Showing posts with label my job. Show all posts
Thursday, October 29, 2009
Tuesday, January 13, 2009
Comedy of coding errors
Nerd alert. You will probably enjoy this post if and only if you are a fellow programmer.
There's a fair amount of horrible legacy code here at my new company. It is nobody's fault -- apparently it was written by an intern at another company, then bought by my company. Which is great, because I can loudly ridicule this code without fear of offending anyone. My cubicle-mate is the senior Java developer. Together, the two of us ARE the entire Java team right now; other people here are coding a little bit of Java, but we're the experts and the commerce project is owned exclusively by us.
I ran into a beautifully horrifying bit of code today. First it gathers a list of objects from a table. Then it iterates over each object, seeing whether the object is "authorized"... and then it removes the object from the array. Not only is this inefficient to begin with -- they should have just filtered out the unauthorized objects in the original query -- but they keep rearranging the entire array every time an object is removed. Like this:
1 2 3 4 5
(object 2 is unauthorized)
1 3 4 5
Obviously this runs in O(n^2) time, when it could easily run in O(n) time just by adding a second array.
Wait, it gets worse. I'm trying to fix it, and I realize the same code that kicks out unauthorized objects appears to be in there TWICE... it's iterating over the array twice and doing approximately the same thing each time. I don't know why, but it appears to have something to do with the magic number "50" that keeps showing up in the code. As in:
Dear God, WHY? What does 50 mean? I don't know, the code doesn't give me a clue. You would think 50 is something arbitrary like the number of items displayed per page, but no... only 12 items are displayed per page. ARGH ARGH ARGH ARGH ARGH.
The bright side is that I don't think I've actually had to solve a genuine programming logic puzzle in like this for many months -- I can't remember a single example at DMi. This is fun! When I'm done, the code will run much faster. And there's probably hundreds of examples of this crummy design lurking around, waiting to be fixed.
Yay job security!
There's a fair amount of horrible legacy code here at my new company. It is nobody's fault -- apparently it was written by an intern at another company, then bought by my company. Which is great, because I can loudly ridicule this code without fear of offending anyone. My cubicle-mate is the senior Java developer. Together, the two of us ARE the entire Java team right now; other people here are coding a little bit of Java, but we're the experts and the commerce project is owned exclusively by us.
I ran into a beautifully horrifying bit of code today. First it gathers a list of objects from a table. Then it iterates over each object, seeing whether the object is "authorized"... and then it removes the object from the array. Not only is this inefficient to begin with -- they should have just filtered out the unauthorized objects in the original query -- but they keep rearranging the entire array every time an object is removed. Like this:
1 2 3 4 5
(object 2 is unauthorized)
1 3 4 5
Obviously this runs in O(n^2) time, when it could easily run in O(n) time just by adding a second array.
Wait, it gets worse. I'm trying to fix it, and I realize the same code that kicks out unauthorized objects appears to be in there TWICE... it's iterating over the array twice and doing approximately the same thing each time. I don't know why, but it appears to have something to do with the magic number "50" that keeps showing up in the code. As in:
for (all items) {
if (curItem < 50) {
do one thing
}
}
for (all items) {
if (curItem > 50) {
do almost the same thing, but slightly different
}
}
Dear God, WHY? What does 50 mean? I don't know, the code doesn't give me a clue. You would think 50 is something arbitrary like the number of items displayed per page, but no... only 12 items are displayed per page. ARGH ARGH ARGH ARGH ARGH.
The bright side is that I don't think I've actually had to solve a genuine programming logic puzzle in like this for many months -- I can't remember a single example at DMi. This is fun! When I'm done, the code will run much faster. And there's probably hundreds of examples of this crummy design lurking around, waiting to be fixed.
Yay job security!
Wednesday, January 07, 2009
A compressed big update
"Let me esplain. No, there is too much. Let me sum up." - Inigo Montoya
There are some things I haven't aired out on this blog because I don't like to use this as a forum for complaining. But now that there's a surprising amount of good news, I'm back with some updates.
After getting my Master's in December, I got laid off not once, but twice. When my contract-to-hire came up on six months at Digital Motorworks, I was told that there was a hiring freeze. They extended my contract hoping to pick me up in December, but then the economy crashed.
I spent a bit over two months unemployed, and it was somewhat scary. I started a new job Monday, though. It's an interesting company, privately owned by one of the few hundred richest men in America. He personally works in the office, (and manages the pro baseball team that he also owns) but I haven't met him yet.
The job has its ups and downs. I'm doing Java Enterprise development, which is something I've wanted to do a lot more of. So far I really like the people I work with directly, and I've already started solving a number of problems after just two days. The work promises to be fairly exciting in a nerdy kind of way, as I may get a lot of creative control over a large commercial web application. And the pay's better than what I was making before.
On the other hand, the office is a remarkably conservative environment. It's the first place I've ever worked as a programmer where there has been a dress code -- business casual, no jeans allowed any day of the week. There's a long commute, but I was issued a fairly awesome high end company laptop on the first day and allowed to take it home. It's said that after I've worked for about a month or so, I'll get to telecommute most days. The senior developer on my team of two also lives in Austin, so we might carpool or get together locally.
Many of the other techies are fairly affable, including my boss. The building is also populated by an awful lot of ex-military guys, as the bulk of the business is about managing military supply chains. (My division is much smaller, and our software app handles commercial retail).
Also, as I obliquely mentioned in my wedding speech, Ginny and I are divorcing. It's on good terms. We had some tension for a while, but I think that situation has eased up a lot since both Ginny and I got employed. Ginny even told me she got a promotion yesterday, which is great news. Ben is handling it well, he's doing excellently in school and is coping gracefully with being in day care for the first time. He's an incredible reader. I hope I'm not overstepping my bounds if I say I think both Ginny and I now see our change as a mutually agreeable one. We've both had dates, which is a fun hobby to be taking up again, but... well, a gentlemen doesn't tell.
Actually, he does, frequently, but not on this blog. If you're one of the select circle who gets to know my private life, you've probably already heard. If not, it's none of your business. ;)
Yesterday was probably the best day I've had in months -- I'm working, it's fulfilling, I'm social. I'm hosting the TV show once a month instead of cohosting. Also, as you might imagine, I enjoy most political news these days. Al Franken appears to have won his race, although there may still be some legal squabbles. Barack Obama will be president in under two weeks. Yay!
There are some things I haven't aired out on this blog because I don't like to use this as a forum for complaining. But now that there's a surprising amount of good news, I'm back with some updates.
After getting my Master's in December, I got laid off not once, but twice. When my contract-to-hire came up on six months at Digital Motorworks, I was told that there was a hiring freeze. They extended my contract hoping to pick me up in December, but then the economy crashed.
I spent a bit over two months unemployed, and it was somewhat scary. I started a new job Monday, though. It's an interesting company, privately owned by one of the few hundred richest men in America. He personally works in the office, (and manages the pro baseball team that he also owns) but I haven't met him yet.
The job has its ups and downs. I'm doing Java Enterprise development, which is something I've wanted to do a lot more of. So far I really like the people I work with directly, and I've already started solving a number of problems after just two days. The work promises to be fairly exciting in a nerdy kind of way, as I may get a lot of creative control over a large commercial web application. And the pay's better than what I was making before.
On the other hand, the office is a remarkably conservative environment. It's the first place I've ever worked as a programmer where there has been a dress code -- business casual, no jeans allowed any day of the week. There's a long commute, but I was issued a fairly awesome high end company laptop on the first day and allowed to take it home. It's said that after I've worked for about a month or so, I'll get to telecommute most days. The senior developer on my team of two also lives in Austin, so we might carpool or get together locally.
Many of the other techies are fairly affable, including my boss. The building is also populated by an awful lot of ex-military guys, as the bulk of the business is about managing military supply chains. (My division is much smaller, and our software app handles commercial retail).
Also, as I obliquely mentioned in my wedding speech, Ginny and I are divorcing. It's on good terms. We had some tension for a while, but I think that situation has eased up a lot since both Ginny and I got employed. Ginny even told me she got a promotion yesterday, which is great news. Ben is handling it well, he's doing excellently in school and is coping gracefully with being in day care for the first time. He's an incredible reader. I hope I'm not overstepping my bounds if I say I think both Ginny and I now see our change as a mutually agreeable one. We've both had dates, which is a fun hobby to be taking up again, but... well, a gentlemen doesn't tell.
Actually, he does, frequently, but not on this blog. If you're one of the select circle who gets to know my private life, you've probably already heard. If not, it's none of your business. ;)
Yesterday was probably the best day I've had in months -- I'm working, it's fulfilling, I'm social. I'm hosting the TV show once a month instead of cohosting. Also, as you might imagine, I enjoy most political news these days. Al Franken appears to have won his race, although there may still be some legal squabbles. Barack Obama will be president in under two weeks. Yay!
Thursday, July 10, 2008
Data Mining news
It's been seven months since I barely pulled off my Master's Report and graduated. Over two years since I took my favorite class, which was Data Mining.
I have every intention of following up on the advice of my reader from the UT Journalism department, Dr. Iris Chyi (thanks again!) and finding some peer-reviewed journals to publish the study in. I'm told that it will take a lot of extra work first, which I haven't been sufficiently motivated to do. What I need to do is apparently read some journals that deal with the appropriate subject matter (i.e., focus on digital media for example) and get a feel for what kind of work they've accepted in the past. Then trim the paper to a manageable length (from 60 pages to, say, 25) and submit something that, in my judgment, they'd be likely to approve with no major changes.
I'm writing all this down so I have a reminder to actually get off my ass and do so, because otherwise I'm afraid I'll forget about it.
Determined to leverage this experience and make people remember who I am at work, on Tuesday I did an hour long presentation for most of the engineering staff (a room full of maybe 30 people) on what data mining can do for my company. I know I am an ultra-nerd, but I love doing presentations. False modesty aside, years of practicing topic presentation on TV and podcast have made me pretty good at it.
I put a Power Point presentation together and now I've uploaded it to Google Docs, so you can check it out by going here. You can't really get the point without hearing me talk, but it will give you a general idea of what I covered. The official topic title I picked was, "Data Mining: How math helps us compare apples to oranges, and shows that ice cream causes shark attacks." (If you care, I can explain that in the comments.)
Anyway, couldn't have asked for a much better result. I managed to hit all the major points I wanted regarding a complex topic in under 90 minutes with time to spare for questions. They laughed at all my jokes in the right places, appeared to follow the point of what I was saying, nodded sometimes, participated where I intended them to, and discussed it after it was over. All four of the company software architects had an animated discussion about what use they could make of it, after everyone else had left. And even today, two days later, I'm still getting IM's and people stopping by to let me know that they enjoyed and appreciated it.
People, please DO NOT FEED THE EGO!!!
I have every intention of following up on the advice of my reader from the UT Journalism department, Dr. Iris Chyi (thanks again!) and finding some peer-reviewed journals to publish the study in. I'm told that it will take a lot of extra work first, which I haven't been sufficiently motivated to do. What I need to do is apparently read some journals that deal with the appropriate subject matter (i.e., focus on digital media for example) and get a feel for what kind of work they've accepted in the past. Then trim the paper to a manageable length (from 60 pages to, say, 25) and submit something that, in my judgment, they'd be likely to approve with no major changes.
I'm writing all this down so I have a reminder to actually get off my ass and do so, because otherwise I'm afraid I'll forget about it.
Determined to leverage this experience and make people remember who I am at work, on Tuesday I did an hour long presentation for most of the engineering staff (a room full of maybe 30 people) on what data mining can do for my company. I know I am an ultra-nerd, but I love doing presentations. False modesty aside, years of practicing topic presentation on TV and podcast have made me pretty good at it.
I put a Power Point presentation together and now I've uploaded it to Google Docs, so you can check it out by going here. You can't really get the point without hearing me talk, but it will give you a general idea of what I covered. The official topic title I picked was, "Data Mining: How math helps us compare apples to oranges, and shows that ice cream causes shark attacks." (If you care, I can explain that in the comments.)
Anyway, couldn't have asked for a much better result. I managed to hit all the major points I wanted regarding a complex topic in under 90 minutes with time to spare for questions. They laughed at all my jokes in the right places, appeared to follow the point of what I was saying, nodded sometimes, participated where I intended them to, and discussed it after it was over. All four of the company software architects had an animated discussion about what use they could make of it, after everyone else had left. And even today, two days later, I'm still getting IM's and people stopping by to let me know that they enjoyed and appreciated it.
People, please DO NOT FEED THE EGO!!!
Monday, May 19, 2008
One reason I like my new job
On my schedule today, the director of engineering will be delivering a presentation with the following topic:
"Solving Sudoku puzzles with recursion"
Knowing this was coming, I started writing an experimental Java solver over the weekend. I had a pretty busy weekend, so I only got as far as reading a puzzle from a file and displaying it. During off-stage time at my two chorus performances, I worked out a possible algorithm in my head, but I'll need a few more days to write it out and debug. I'll probably put it in a Java applet on my web page when it's done, and you'll be able to watch it "think" if it works out the way I'm imagining it.
"Solving Sudoku puzzles with recursion"
Knowing this was coming, I started writing an experimental Java solver over the weekend. I had a pretty busy weekend, so I only got as far as reading a puzzle from a file and displaying it. During off-stage time at my two chorus performances, I worked out a possible algorithm in my head, but I'll need a few more days to write it out and debug. I'll probably put it in a Java applet on my web page when it's done, and you'll be able to watch it "think" if it works out the way I'm imagining it.
Monday, May 12, 2008
Fractal doodling
Since I now work in an environment with regular longish meetings, I've rekindled my interest in the art of doodling. Mostly what I draw is fractals.
I can't remember who gave me the idea of drawing Sierpinski Triangles on paper, but I've been doing that for years, in any situation where I'm bored and have pen and paper available but no computer. The triangle is easy to do, because you just have to keep drawing upside-down triangles on any space that doesn't have one already, and you can pretty much go on forever until the triangles get too small to draw. However, I recently got sick of Sierpinskis, so I started branching out into Koch curves.
I've tried to draw Kochs in the past, but always screwed up... I would freestyle just fine for a while, but then I would always turn a line in the wrong direction and wind up with an ugly asymmetric mess.
So I've been practicing my technique, and hit on the way to fix this. Draw dots that represent the framework first, and then draw more dots closer together, until you've got the level of detail you want; then fill in the curves. The down side to this approach is that unlike a Sierpinski, you can't increase the complexity after you're finished. You have to pick a level and stick with it until you're done, and then start a new one.
By gradually increasing the size and practicing smaller and smaller lines, I've managed to create a vertical square Koch curve against the left margin of a notebook page, which fills up most of the lines on the page and goes to a depth of five iterations. It took me about four meetings to finish. I've also drawn a snowflake which goes to four iterations, but I could probably get five because I still have room on the page to make it about 50% bigger next time.
I've gotten funny looks from people who saw what I was doing, but no comments so far. I wish I could do Mandelbrots, but it seems way too math-intensive to do in real time.
A few other fun facts about my history with fractals. When I was in college, I spent two years tutoring a smart high school kid named Willy in computer programming. One year, we wrote several fractal programs in Visual C++ for a science fair project. He went to state level but didn't win.
I still have several interesting fractal programs which I translated to Java and put on my Java applet page. One of them allows you to generate your own Koch curve, and another shows how you can get a Sierpinski to emerge naturally from pseudo-random rules.
My friend Denis Loubet introduced me to a term that I love to use: "Fractally wrong." This applies to someone whose opinions are wrong in the big picture, and regardless of where you zoom in on any particular detail, it's still wrong.
I can't remember who gave me the idea of drawing Sierpinski Triangles on paper, but I've been doing that for years, in any situation where I'm bored and have pen and paper available but no computer. The triangle is easy to do, because you just have to keep drawing upside-down triangles on any space that doesn't have one already, and you can pretty much go on forever until the triangles get too small to draw. However, I recently got sick of Sierpinskis, so I started branching out into Koch curves.
I've tried to draw Kochs in the past, but always screwed up... I would freestyle just fine for a while, but then I would always turn a line in the wrong direction and wind up with an ugly asymmetric mess.
So I've been practicing my technique, and hit on the way to fix this. Draw dots that represent the framework first, and then draw more dots closer together, until you've got the level of detail you want; then fill in the curves. The down side to this approach is that unlike a Sierpinski, you can't increase the complexity after you're finished. You have to pick a level and stick with it until you're done, and then start a new one.
By gradually increasing the size and practicing smaller and smaller lines, I've managed to create a vertical square Koch curve against the left margin of a notebook page, which fills up most of the lines on the page and goes to a depth of five iterations. It took me about four meetings to finish. I've also drawn a snowflake which goes to four iterations, but I could probably get five because I still have room on the page to make it about 50% bigger next time.
I've gotten funny looks from people who saw what I was doing, but no comments so far. I wish I could do Mandelbrots, but it seems way too math-intensive to do in real time.
A few other fun facts about my history with fractals. When I was in college, I spent two years tutoring a smart high school kid named Willy in computer programming. One year, we wrote several fractal programs in Visual C++ for a science fair project. He went to state level but didn't win.
I still have several interesting fractal programs which I translated to Java and put on my Java applet page. One of them allows you to generate your own Koch curve, and another shows how you can get a Sierpinski to emerge naturally from pseudo-random rules.
My friend Denis Loubet introduced me to a term that I love to use: "Fractally wrong." This applies to someone whose opinions are wrong in the big picture, and regardless of where you zoom in on any particular detail, it's still wrong.
Wednesday, April 30, 2008
Big-ish personal update
I've been a bad blogger. :( My wife silently reminded me of this when she wrote a new post updating our son's blog, which had no posts since this February. This month, I've written several posts over at the Atheist Experience and gotten involved in some enjoyable arguments over there. (I personally think my new Star Trek rule should be considered an instant classic, but I'm hardly the one to judge). Meanwhile, my own blog has lain fallow.
I guess what I love most is blogging about three topics: religion, politics, and entertainment. Since the AE blog gets more eyeballs than mine, thanks largely to Martin Wagner's tireless regular posting, I find it more gratifying to put religious musings over there these days so as to reach a wider audience.
Politically, nothing is happening. The primaries are now officially freakin' boring, and I'm yearning for the Obama vs. McCain smackdown match to get started in a hurry.
On the entertainment front:
It's a really interesting company I've found myself in, and a great bunch of people. I was the first arrival of four new hires, so in a way I kind of got "seniority" for a few weeks. I had a project assigned before any of the others, and I had to go through getting accounts and bugging the IT department and such (since they hadn't dealt with a new person for years previously). I have a name plate on my cubicle wall, although I don't have one of the little plaques that say "One/two/three/N years of service". So anyway, that means that I had to blaze the trail and then teach the other newbies what I learned to make their hiring smooth. I enjoy that role.
I've essentially completed my first project and gotten my feet wet with the company data system, which is huge and intricate and proprietary. I'm proud of the work I've done so far, and now I have a bit of a lull. I am spending it by updating our internal documentation, which is in the form of a wiki. I'm good with wikis, and nobody else really seems to "own" the company docs, so I figure this will (1) establish me as an expert at something, and (2) give me a more solid overview of the whole business. I think those are good things.
The project I finished has to do with email addresses. Now, I won't name any names, but there is a company out there whose job it is to find your email address and sell it to people. I just need to know your name and home address, and I send it to this company, and they scour the web or do some other kind of black magic, and they tell me every email address that is associated with you. The price is seven cents per successfully located address. Success rate is supposedly about thirty percent, but bear in mind that this includes addresses for any person in the United States, including people who may not be on the web much. For YOU, the person who actually reads blogs, I bet it's well over 95%.
This caused some consternation between me and my project partner, because on some level we view this as evil behavior. This company does not spam people themselves, but it's very obvious that their whole reason for existence is to enable spam. And spam sucks.
I don't think that my own company is doing anything particularly bad. We are, however, using this tool to provide email addresses to specific companies that already do business with the people in question. The assumption is that those customers "forgot" (wink wink) to provide their email to the company in the first place. That's as specific as I want to get, because I don't want to get accused of sharing my company's business model.
We are, however, giving our business to this other company, which has great potential to use their powers for evil. As a card carrying spam hater, I have mixed feelings about this.
Even so, the data development process is fairly interesting, and I see good opportunities for some really cool work at this company. Maybe some of you just read my job description and thought "Boy, that sounds boring." I don't see it that way, but of course, I've spent years developing a specialization. I mean, my sister Keryn works with sick and dying old people, and is downright enthusiastic about her job. I listen to her talk about her work and am tempted to think she's just crazy, but that's what she likes to do. I like the internet and powerful databases. So there you go.
I guess what I love most is blogging about three topics: religion, politics, and entertainment. Since the AE blog gets more eyeballs than mine, thanks largely to Martin Wagner's tireless regular posting, I find it more gratifying to put religious musings over there these days so as to reach a wider audience.
Politically, nothing is happening. The primaries are now officially freakin' boring, and I'm yearning for the Obama vs. McCain smackdown match to get started in a hurry.
On the entertainment front:
- I'm still reading Ken Follett's World Without End. People often assume that I read books very quickly, and I don't. When I'm at home, I like being on my computer, either playing games or catching up with news via blogs. When I'm out driving, I usually listen to shows on my iPod. So although I know it's good for me, I rarely just sit down and read.
- We recently saw The Ruins. It was a passable horror flick. Ginny read the book and didn't think it was a good adaptation. I didn't read the book, but I read stories indicating that the author wrote the screenplay himself; so I have to assume that he was satisfied with the elements that he had to change.
- I've nearly leveled a second World of Warcraft character to 70. "Rupert Thrash" the warrior is sitting at level 66 right now. I was going to write some more about Warcraft in this post, but then I realized it was a digression. I think I'll put it in a separate post, so that you non-gamers can skip it at your convenience.
- My chorus is getting ready to perform Beethoven's 9th. What a pleasant change that is from last season! I didn't like doing St. Paul, I find the English lyrics distasteful and borderline anti-semitic, and the music mostly didn't impress me. But you can never go wrong with "Ode to Joy." My concert will be in three weeks. Ginny and Ben will attend. I encourage other Austinites to drop in also; it's going to be a great show.
- I bought Ben a Wii for his birthday next month, plus the latest Mario and Metroid games. He doesn't know yet. We're planning a party at our house. Ben's birthday is on the last week of school; the party is the prior weekend.
- I got a coworker and his wife hooked on Kingdom of Loathing. They not only both started playing last weekend, but also donated $40 between them. Bwahahaha. Game companies should totally pay me referral fees, I'm very good at hooking people.
It's a really interesting company I've found myself in, and a great bunch of people. I was the first arrival of four new hires, so in a way I kind of got "seniority" for a few weeks. I had a project assigned before any of the others, and I had to go through getting accounts and bugging the IT department and such (since they hadn't dealt with a new person for years previously). I have a name plate on my cubicle wall, although I don't have one of the little plaques that say "One/two/three/N years of service". So anyway, that means that I had to blaze the trail and then teach the other newbies what I learned to make their hiring smooth. I enjoy that role.
I've essentially completed my first project and gotten my feet wet with the company data system, which is huge and intricate and proprietary. I'm proud of the work I've done so far, and now I have a bit of a lull. I am spending it by updating our internal documentation, which is in the form of a wiki. I'm good with wikis, and nobody else really seems to "own" the company docs, so I figure this will (1) establish me as an expert at something, and (2) give me a more solid overview of the whole business. I think those are good things.
The project I finished has to do with email addresses. Now, I won't name any names, but there is a company out there whose job it is to find your email address and sell it to people. I just need to know your name and home address, and I send it to this company, and they scour the web or do some other kind of black magic, and they tell me every email address that is associated with you. The price is seven cents per successfully located address. Success rate is supposedly about thirty percent, but bear in mind that this includes addresses for any person in the United States, including people who may not be on the web much. For YOU, the person who actually reads blogs, I bet it's well over 95%.
This caused some consternation between me and my project partner, because on some level we view this as evil behavior. This company does not spam people themselves, but it's very obvious that their whole reason for existence is to enable spam. And spam sucks.
I don't think that my own company is doing anything particularly bad. We are, however, using this tool to provide email addresses to specific companies that already do business with the people in question. The assumption is that those customers "forgot" (wink wink) to provide their email to the company in the first place. That's as specific as I want to get, because I don't want to get accused of sharing my company's business model.
We are, however, giving our business to this other company, which has great potential to use their powers for evil. As a card carrying spam hater, I have mixed feelings about this.
Even so, the data development process is fairly interesting, and I see good opportunities for some really cool work at this company. Maybe some of you just read my job description and thought "Boy, that sounds boring." I don't see it that way, but of course, I've spent years developing a specialization. I mean, my sister Keryn works with sick and dying old people, and is downright enthusiastic about her job. I listen to her talk about her work and am tempted to think she's just crazy, but that's what she likes to do. I like the internet and powerful databases. So there you go.
Thursday, March 06, 2008
My new job
Okay, I admit it: I deliberately avoided posting that I lost my job. It's not that I wanted to hide anything, and I'm sure I would have gotten a lot of supportive comments. But I know there are also a small contingent of people (hello, Amway distributors?) who would have enjoyed the opportunity to make snide remarks. And since I was a little down about losing the job in the first place, I just didn't want to deal with it.
So I didn't post that I lost my job, but I'm definitely posting that I got a new one. This past Monday evening I found out that I've been hired to start next Monday. I won't identify the company -- not because I'm paranoid but because I don't know the company culture well and can't be sure if they'll approve of being blogged about. I'll just say that it's a medium sized company, much smaller and hopefully less bureaucratic than IBM. The company manages data about cars. Enormous database which keeps track of cars and parts being purchased from lots of dealerships, all of which has to get passed around quickly in real time. There's a lot of emphasis on efficient data management algorithms, and I believe my data mining education served me well in the interview process.
This job is a raise for me -- not as much of a raise as I was hoping for, but still pretty substantial. Unfortunately I'm not a salaried employee yet, but since it is contract-to-hire, if all goes well then I'll have a salary and benefits right around my birthday this September.
I will immodestly state that I did an outstanding job in the interviews overall, which consisted of a half-hour phone call followed by a four hour on-site interview. I met four people and they all liked me. The interview involved solving a lot of logical puzzles, such as "Tell me what kind of code you would write to match a certain number of buyers and sellers in a reasonable amount of time." I'm really good at those. However, in the end they expressed some reservations about how I lacked recent professional (non-school) experience with SQL databases.
It came down a choice between me and another person who had a stronger background. The feedback I got from my recruiter was "They really like you, they think you've got the best educational background of any candidate, and if they had two positions they'd hire you on the spot." I really wanted the job, so I pestered my recruiter to see if there was anything I could do to sway them further. She suggested something vague about studying more and telling them what I was learning.
I went one better. I said "Tell them I'll write a Java program that solves one of the interview questions and shows off my ability to use SQL." And I did, in two evenings, and also wrote a rudimentary design document for the thing. (Thank you, Suzanne Barber, for your Software Requirements class!)
Anyway, it worked. They still hired the other guy, but apparently they created a second contract position just so they could, in fact, bring us both in. If I hadn't decided to write that program, I might not have gotten it.
So as I said, I'm starting Monday. I'm excited and nervous, because I still have a lot to prove. But I'm glad that I only spent a week unemployed.
I've already emailed a bunch of people, but in case I missed any: Heartfelt thanks to everyone I wrote or called asking for job leads. A lot of the help I got was not just with new jobs, but also with meetings I attended that helped me get my confidence, morale, and presentation straight. Everything was a big help.
Besides which, last Friday I was treated to lunch at the County Line BBQ and got a really nice send-off. My team and I left on good terms. It was understood when I was getting my Master's that I was planning to look for more fruitful work after school, and I only lost my job at this point due to budget cuts within IBM.
And finally, having the week off is pretty nice. I'm doing the very Serious and Important Work of getting a second World o' Warcraft character to level 70.
So I didn't post that I lost my job, but I'm definitely posting that I got a new one. This past Monday evening I found out that I've been hired to start next Monday. I won't identify the company -- not because I'm paranoid but because I don't know the company culture well and can't be sure if they'll approve of being blogged about. I'll just say that it's a medium sized company, much smaller and hopefully less bureaucratic than IBM. The company manages data about cars. Enormous database which keeps track of cars and parts being purchased from lots of dealerships, all of which has to get passed around quickly in real time. There's a lot of emphasis on efficient data management algorithms, and I believe my data mining education served me well in the interview process.
This job is a raise for me -- not as much of a raise as I was hoping for, but still pretty substantial. Unfortunately I'm not a salaried employee yet, but since it is contract-to-hire, if all goes well then I'll have a salary and benefits right around my birthday this September.
I will immodestly state that I did an outstanding job in the interviews overall, which consisted of a half-hour phone call followed by a four hour on-site interview. I met four people and they all liked me. The interview involved solving a lot of logical puzzles, such as "Tell me what kind of code you would write to match a certain number of buyers and sellers in a reasonable amount of time." I'm really good at those. However, in the end they expressed some reservations about how I lacked recent professional (non-school) experience with SQL databases.
It came down a choice between me and another person who had a stronger background. The feedback I got from my recruiter was "They really like you, they think you've got the best educational background of any candidate, and if they had two positions they'd hire you on the spot." I really wanted the job, so I pestered my recruiter to see if there was anything I could do to sway them further. She suggested something vague about studying more and telling them what I was learning.
I went one better. I said "Tell them I'll write a Java program that solves one of the interview questions and shows off my ability to use SQL." And I did, in two evenings, and also wrote a rudimentary design document for the thing. (Thank you, Suzanne Barber, for your Software Requirements class!)
Anyway, it worked. They still hired the other guy, but apparently they created a second contract position just so they could, in fact, bring us both in. If I hadn't decided to write that program, I might not have gotten it.
So as I said, I'm starting Monday. I'm excited and nervous, because I still have a lot to prove. But I'm glad that I only spent a week unemployed.
I've already emailed a bunch of people, but in case I missed any: Heartfelt thanks to everyone I wrote or called asking for job leads. A lot of the help I got was not just with new jobs, but also with meetings I attended that helped me get my confidence, morale, and presentation straight. Everything was a big help.
Besides which, last Friday I was treated to lunch at the County Line BBQ and got a really nice send-off. My team and I left on good terms. It was understood when I was getting my Master's that I was planning to look for more fruitful work after school, and I only lost my job at this point due to budget cuts within IBM.
And finally, having the week off is pretty nice. I'm doing the very Serious and Important Work of getting a second World o' Warcraft character to level 70.
Subscribe to:
Posts (Atom)