Kirk Lennon

Web Developer for Hire

Are you searching for a junior web developer for a full-time position? Do you want a reliable employee who’s a quick learner? Do you want someone who knows how to give and take constructive feedback? Do you want someone who is friendly and professional?

Hi, I’m Kirk

I live in sunny Seattle and currently work in a professional office doing a job most people have never heard of. I’ve always been interested in web development and am now ready to pursue it professionally. I’ve been making things and putting them on the internet for 20 years but now it’s time to turn hobby into career.

I have recently completed two specializations on Coursera: Python for Everybody and Web Applications for Everybody. The Python courses covered topics such as data structures, accessing web data, using databases, and visualizations. The web applications courses covered PHP, SQL, building CRUD applications, and the use of JavaScript, jQuery, and JSON.


My latest project is in the earliest stage of development. Patent Puller is a Django web application for pulling patent information. User enters a patent number and Patent Puller uses the USPTO assignment API to extract the current assignee from the XML assignment data. It also uses Beautiful Soup to scrape the title, abstract, and inventors from the individual patent's page found using a USPTO number search. You can view the code on GitHub.

My wife is studying Korean and requested a website for her to make her own flashcards. The back end runs as an Express server that saves the English and Korean terms in a MySQL database and provides them as a JSON endpoint. This same data source then powers traditional two-sided flashcards and a quiz where you read the English and type the corresponding Korean. The code is available on GitHub.

I created a photo blog using a custom CMS created with Django (code available on GitHub). It uses the Django ImageKit and Pillow libraries to automatically generate the thumbnail images and supports optional descriptions. Posts are created using the Django Admin interface.

I used Python to build an automatic breaking news page. It uses the Twython library to search for tweets where journalists are asking for permission to share a video, and then embeds the parent tweets with the videos on a page. The code is on GitHub.

Many news sites tweet their articles many times, making their accounts too busy to follow. AbridgerBot follows interesting accounts for me and retweets their links one time only so I can follow the bot instead. To identify duplicates, it follows links through all redirects and stores the ultimate article URL in a SQLite database. View AbridgerBot on GitHub.

I made a family meal-planning web app. It allows you to store and edit recipes, and then insert them into slots for a given week such as “Friday Dinner.” The main code is written in PHP and it uses a MySQL database. The ability to add multiple ingredients to each recipe is written in plain JavaScript. View Meals on GitHub.

Several years ago I dreamed up the original Apple Clickbait Generator, a satirical idea that ended up being widely linked to. I manually curated a small number of sentences that I had culled, adapted, or simply channeled from bad tech articles, and it then used JavaScript to semi-randomly assemble them into a new clickbait article. I have finally created a new Python-based version that automates the process and provides for much greater variety. A helper script uses the Azure Cognitive Services Bing News search API to find new articles that include “Apple” and keywords common to clickbait articles such as “shiny.” It stores the new article URLs in a SQLite database. A second helper script pulls new URLs from the database, requests the article itself, and uses Beautiful Soup to extract paragraphs. Paragraphs are checked for relevance and, if they pass, are inserted into a paragraphs table. Finally a Django app queries the database for ten random paragraphs. One view returns it as a pre-generated HTML file, along with some basic statistics about the database, while another view returns a JSON list. This can be iterated through with some vanilla JavaScript as provided for on this reference implementation page. View Clickbait on GitHub.


Send me an email, or message me on Twitter.