Hiring: Sr. Developer

My day job needs to hire more people to help us grow (and give me a few days off). If you know anyone interested, please send them my way. The position reports to me directly so not only do you get to work for a great company you get to work with me. Tell me that’s not a great perk, eh? I’ve posted the description below. What it doesn’t tell you is that you’ll get to work in an exciting and challenging technical environment with hundreds of millions of http requests/day. Get your hands dirty with things like mod_perl and memcached, geolocation, contextual analysis, search trending and fraud filtering. It’s like drinking from the fire hose every day!

Company: Traffic Engine, Inc.
Job Title: Senior Developer
Description: Seasoned developer (Perl, mod_perl, Linux, Apache, PHP) with experience in a high volume web environment. The right applicant must have strong communication skills and be able to think outside of the box. You’ll need to be familiar with the Perl language and mod_perl. Proficiency with Linux in a server environment is a must.

Location: Irvine, CA (Telecommute)
Starting Salary: $60 – 100K+ (Based on Experience)
Position Type: Full Time Only

The position will works remotely from the corporate office (unless lives within 25 miles of Irvine California).   The developer will work in a team environment and contribute to constant upgrades, maintenance and new development of existing and new applications as required.


•    Develop and maintain Perl modules to be run under Apache2/mod_perl2
•    Develop and maintain Perl scripts for system maintenance and data processing
•    Develop and maintain web applications using PHP, JavaScript, Ajax, and MySQL/PostgreSQL
•    Contribute to the design and development of internal applications, strategies, and methods of improving current and future applications
•    Report and submit status on projects as required
•    Document code and create documentation as required
•    Collaborate with team members efficiently and effectively via telephone, IM, or IRC
•    Provide technical support to internal employees as well as external clients as needed
•    Participate in some marketing functions such as Ad:tech and / or other technical functions.
•    Minimal travel may be required
•    Self motivated and ability to be effective working remotely
•    Other responsibilities as required


•    2-4 years of experience developing web-based applications
•    3+ years fluency in Object Oriented Programming, and PHP5.x implementation
•    3+ years of MySQL and/or PostgreSQL
•    2+ years of Javascript
•    3+ years of Perl
•    2+ years of Linux
•    Ability to write valid and efficient xHTML, DHTML, CSS, SQL, and JavaScript code
•    Experience writing AJAX code
•    Understanding of relational database concepts, including JOIN statements and foreign key constraints
•    Experience using a Version Control System (SVN a plus)

Any of these qualifications a plus
•    Experience implementing third-party APIs
•    Experience developing in MVC environments
•    Knowledge of how paid search campaigns work
•    Knowledge of SEO tactics

About Traffic Engine, Inc:

Traffic Engine’s Search Marketing Technology (SMarT) connects the right people with the right ads, delivering industry-leading exposure and click conversion by utilizing a targeted customer base and more than five years of online ad placement experience to help our publishers realize their full revenue potential.  Recently added is our new AdExchange that enables direct advertisers to bid on traffic in the SMarT Platform to drive quality business to their ads.

Traffic Engine, Inc. offers our employees:

* Technology driven and team oriented environment
* Competitive compensation at all levels
* Company matching retirement program
* Excellent benefits for employee
* Flexible schedules where results are the focus

Interested candidates who meet these qualifications should send a resume and letter of interest via email to careers@trafficengine.net  and include “Senior Developer” in the subject header.  Please also send any examples of work or projects recently implemented

2009 née 2008

2008 is past, replaced by a new year and new hopes.

It was a rocky year, filled with good and bad. Divorce, and marriage, deaths on Andrea’s side of the family. Kittens and a new puppy. A historic election and rocky economic times. We’re still in for a bumpy financial ride but everything else is looking like its trending upward.

I did alright on my goals from 2008. Not bad, but the best I could manage under the circumstances:


  • Finalize the divorce
  • Get out of debt
  • Be happy


  • Write 12 new short stories (finished #13 on New Years Eve)
  • Revise and polish 12 stories
  • Submit 12 stories for publication (sent out 21 submissions, 2 accepted (1 electronic, 1 print), 1 pending, 1 anthology in hand)
  • Submit a story to the Writers of the Future contest quarterly


  • Finish migrating out of my hands-on role to more of a managerial one
  • Successfully manage and complete all planned projects
  • Come up with brilliant new projects for people to work on
  • Grow the company

For 2009, I want to continue the good trends I’ve already set. It’s going to be another busy year but I’m more prepared to tackle it. My goals for 2009:


  • Be a better husband (because there’s always room for improvement)
  • Build a better budget and get out of debt
  • Apply for Permanent Resident & move to Canada
  • Lose the weight I gained in 2008


  • Less micromanaging, more delegating
  • Hire, hire, hire.


Home Again

Home from New York City. Short trips like this are always a little tiring. So much activity crammed into a short period of time. This was my second trip to Ad Tech. I’m a techie at heart and don’t consider myself much of a salesman. That puts me in the minority at a trade show like this.

I’ve always had an eye for business. When I wrote software for the tanning industry, I would often talk to salon owners about what they did and what they needed. I even spent several nights working behind the counter, so I understood how their business worked.

Over the years, I’ve become a little more comfortable stepping out of the technical role. It helps that I’m passionate about the work I do and firmly believe we have a technically superior system. I designed it from the ground up and for the last four and a half years it’s been my baby. As the company grows and I step into more of a management role, I delegate more and slowly put the tools into the capable hands of the team we have built and continue to build.

I met many of my clients/partners at Ad Tech or the after party. It’s always a pleasure to put a face to the name. In some cases, there were people I’ve been working with for nearly five years that I met for the first time yesterday.

A good trip, good food, and good people. I passed Diane Neal from Law & Order: SVU on 7th avenue (I’m such a L&O fanboy). I had my first New York style hot dog. I ate my first (and possibly last) oyster. I celebrated Obama’s win in Times Square.

In the Big Apple

I made it to New York City with minimal difficulty today. Court went smoothly and traffic was light, so I made it to O’Hare with enough time to catch an earlier flight. One shuttle and subway ride later, I found the Westin and checked-in.

I met my co-workers for dinner at Quality Meats, followed by 40/40, where we co-sponsored a VIP party for the trade show. A fun night, and I got to meet several people I’d only known via email or instant message.

Feeling a little dead tonight. My original flight was canceled and American Airlines decided they needed to call me at 4:15AM and 4:45AM to make sure I knew about it. Between that and the flight I managed about four hours sleep today and tomorrow’s going to be another busy day. Here’s to hoping the beds here are comfortable.

It also looks like I’ll be staying over an extra day, so home again on Wednesday. I’m already missing Andrea and our menagerie of pets. I hear the dogs have been camping out at the front door all day and night, waiting for my return.

I sent in my absentee ballot a couple weeks ago. If you haven’t already, please go vote and make your voice heard. I think we’re on the brink of seeing some real change happen and that makes me feel pretty damn good.

A beautiful start to the week

I’m in southern California this week for work. I flew in to San Diego on Sunday and met up with some friends from AbsoluteWrite. We spent the day hiking in the mountains east of the city. Exhausting but fun. That evening, after dining on Tapas, I made the drive up to Orange County, where I’ll be until Wednesday.

I’m working from the corporate office, a pair of rented offices in a business park near the Irvine Spectrum. I’m training someone, showing them how the business works and how they’ll be able to help me manage the workload. Delegation, as I am discovering, is a wonderful thing.

We went to the Yardhouse for an absolutely yummy lunch (Mac and Cheese!). When we returned to the office, I found an e-mail from James Gunn waiting for me. I have officially been accepted into the CSSF Writer’s Workshop! I am extremely excited about the opportunity.

I’ll be flying home on Wednesday and sleeping until Friday (or so I wish). These trips to the home office are always productive but tiring.

From the abyss

One of the disadvantages of being self-employed is that there’s always work to be done. One thing I have a difficult time with is separating work from pleasure. I like what I do, which is both a blessing and a curse. It’s good that I enjoy my work, otherwise I wouldn’t want to do it and it wouldn’t get done. The problem is that it can be difficult to stop working.

When I’m on a normal sleep schedule, my generally looks like this: Wake up, take out the dogs, consume caffeine, work, take the occasional break to eat meals, and then sleep. I can easily work fourteen hours in a day.

Things get more chaotic when I’m under deadline. Eighteen hour days become the norm. Not once do I complain, mind you, because I enjoy what I’m doing, for the most part.

The problem is that I don’t take the time out during the day to do anything other than work. I neglect family and friends (frankly, Dena is eligible for sainthood after putting up with my crazy schedule). I neglect myself, too. The few other interests that I have fall by the wayside.

It’s time to throttle back.

I need to not let work consume every moment of my life. I have too many interests and I firmly believe that those interests are critical to making me a good, well-rounded human being. It’s ironic. In the past when I’ve interviewed potential employees, one of the questions I would ask was about their hobbies. I was more likely to hire someone who had hobbies other than work. It showed me that they were more likely to be an asset to the team by not focusing on only one idea to the exclusion of all others. Hobbies, even unrelated ones, give you perspective that can and often will bleed back into your work.

For the first time in a very long time I actually attended my writers group. I’m setting new goals for myself. I want to get back to my original plan of sending out one story per month for publication. That is a completely realistic goal, if I stick to it. If the average short story is 5,000 words and I can easily knock out 500-1,000 words in an hour, there is no reason I shouldn’t be able to write, revise, rewrite, and polish one story a month. Any failure to do so is simply a lack of commitment. One hour a day and in the end I will be happier, the quality of my work will improve because of the mental break writing provides and I’ll have something to show for it.

I’m starting this late in the month, but I will have a draft ready for the group by Thursdays meeting, even if it is a bit rough. In October I will polish one story and send it out somewhere (I have a stack of old stories to pick from and rewrite). November will be an off month, because I am going to have a go at NaNoWriMo again. The cycle will reset in December, once story sent out a month.

I recently had the opportunity to follow up on more non-fiction work, for a popular linux-related website and a publisher of Linux books. While tempting I find it difficult to motivate myself to move in that direction. It’s too similar to what I do when I work, using the same logical, orderly part of my brain. Creative writing stretches the other half in a much-needed way. It’s something I’ve enjoyed doing for longer than I can remember. In fact, I spent a few hours this past week gathering old manuscripts, journals and notebooks where I’d jotted down story ideas. I have drafts dating back more than six years and notebooks with bits of dialog I thought sounded neat, ideas and other assorted story-related fodder going back much further in time.

At the end of the day I have to do what I enjoy. I have never been productive doing otherwise. Stick to what I love doing and the rest will follow. It’s worked well so far.

Technorati Tags:

Where am I?

Just a little bit of code I’ve been working on. Call this a proof-of-concept to test the geo-targetting library that I’m using. Taking that (a commercial product) and combining it with the Google Maps API, I’ve come up with something kind of fun:

Where am I?

It’s not 100% accurate and it only goes to the city level but it’s close enough for most purposes I need it for. It’s some pretty interesting technology, too. My next step is extending it to not only target the city you (or your ISP) is in, but other cities around you in a certain mile radius.

Benchmarking Apache

I’m writing a new web application using mod_perl 2.0. It’s heavy on network I/O so I’m doing some benchmarking and testing with simulated I/O to see just how many requests/second I can expect a single server to handle. While reading through Practical mod_perl I discovered one of the greatest tools ever: ab.

stone@moradin:~ $ ab -n 5000 -c 10 http://localhost/echo
This is ApacheBench, Version 2.0.41-dev < $Revision: 1.141 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 500 requests
Completed 1000 requests
Completed 1500 requests
Completed 2000 requests
Completed 2500 requests
Completed 3000 requests
Completed 3500 requests
Completed 4000 requests
Completed 4500 requests
Finished 5000 requests

Server Software: Apache/2.0.54
Server Hostname: localhost
Server Port: 80

Document Path: /echo
Document Length: 33 bytes

Concurrency Level: 10
Time taken for tests: 2.326156 seconds
Complete requests: 5000
Failed requests: 0
Write errors: 0
Total transferred: 1145916 bytes
HTML transferred: 165132 bytes
Requests per second: 2149.47 [#/sec] (mean)
Time per request: 4.652 [ms] (mean)
Time per request: 0.465 [ms] (mean, across all concurrent requests)
Transfer rate: 481.05 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.7 1 8
Processing: 2 2 1.2 3 10
Waiting: 0 1 0.9 2 8
Total: 3 3 1.2 4 11
WARNING: The median and mean for the waiting time are not within a normal deviation
These results are probably not that reliable.

Percentage of the requests served within a certain time (ms)
50% 4
66% 4
75% 4
80% 4
90% 4
95% 5
98% 7
99% 7
100% 11 (longest request)

This is awesome. Not only does it rock, but it’s included by default with Apache.

Konami.com launches new Game Site

Why is this blogworthy, you ask? Because I wrote it. I can’t claim for the design or graphics. I’m not talented in that area. I did, however, build the custom content management system that allows them to manage their catalog of games as well as integrate that with the HTML from the designer to turn it into a full-fledged dynamic site.

Last February I quit my job to pursue other ventures, this being one of them. There were some nervous moments but overall things have gone well. We’re not out of the woods by any means but at least we can see the path widening before us.

I still have a month or so of work left on the contract and by then yet another venture should be doing well enough to keep a roof over my head for a while. For now though, it’s time to catch up on my sleep. It’s been a long three weeks pre-launch.


I’m still getting used to working at home, for myself. It’s really nice to be able to set my own hours. I find myself working harder now than ever before but I’m also able to make the time to do quality things; taking walks, playing in the park with the dog, having lunch with Dena.

Time management has never been my strong suit but I’m definitely getting better at it. Time is money, especially now, so the better I manage my available time the more work I can do, the more hours I can bill, and the better the payout. It also means that I’ve been able to fit in time for other things that I’ve been struggling to make time for: writing.

I’m getting back into the writing groove. I’ve started carrying around my journal where I jot down thoughts, ideas, and observations that might be interesting. I also found two useful services tonight: The Writer’s Database, a submission tracker and market database, and The Writer’s Hat, an idea-generating exercise. I’ll going to my writers group this week — the first time in a year. God I’ve missed that.