128 North Marshall
Cheney, KS 67025
Edward Nolan's Resume
I am always on the lookout for mutually beneficial relationships with new clients.
Specifically, temporary contract style work, with project durations measured in weeks or months.
Repeat business is always desirable and appreciated.
I can telecommute or work directly on-site at your location. Telecommuting via Internet+Phone works for many situations, offering faster turn around times with less expensive rates.
For situations where face-to-face communication and interaction is needed,
my mobile office with living quarters allows me to be flexible, enabling me to live and work
in much of the US. This means that I generally DO NOT require help with travel or
living arrangements. The cost of this varies, depending on location and will be built in to
the overall price of my services.
Communication and Philosophy
Over the years, I've found the following goals invaluable to help me successfully complete projects:
- Strive for a good balance when communicating with people. One sentence is too little, one page is too much.
Focus on making short, accurate and organized messages and documents.
- Issue trackers are worth their weight in gold, but only when people use them correctly. Don't be that
one guy who views them as dead weight.
- Repository based code systems, such as GIT, make life vastly easier, in the long run.
- Optimized code is nice, but READABLE code is FAR more valuable.
- When working on other people's code, write my code to match their style, not my own.
- Try not to re-invent the wheel, but at the same time, make sure the final solution is a good fit and not just
convenient for the developer.
- Do NOT build myself or my services into projects. I'd rather put myself out of work, which often will result
in a repeat customer or good references later on.
Skills and Knowledge
My work experience covers a wide variety of subjects in a number of different areas.
Operating Systems
Linux
- I've installed and used Linux since the early 1990's (back then installs involved piles of floppies!)
I'm proficient with initial setup, day-to-day administration, and in depth troubleshooting of Linux
servers and desktops. I've worked in and set up networked environments
that relied heavily on Linux servers. I've created applications that utilized complex Linux OS
level system calls.
Linux in virtual environments
- I've worked a great deal with VPS technologies, such as Xen, KVM and OpenVZ. I've "rolled my own" hypervisors in the past.
Recently, I've been maintaining sizable farms of VPS servers using commercial providers such as
Digital-Ocean, Vultr, and Amazon-Web-Services.
- Lately, I've been using Docker containers extensively for reproducible development sandboxes as
well as for customizable and isolated server environments.
Microsoft Windows
- I'm familiar with everyday usage of Microsoft Windows desktops and servers, but I'm NOT the
right person if you want in depth familiarity or quick troubleshooting for this OS, especially when dealing with any version
after Windows 2000. Note that I can create desktop applications that will run just fine on Windows.
Programming Languages
- For over 5 years now, Python has been my go-to programming language for nearly all
day-to-day (non-web-based) projects.
- I frequently use, and am very proficient with, PHP. I've used it in countless web-based projects and applications over the years.
- I worked with C, both high and low level, for 25 years. I used it on everything from
simple utilities to complex low-level applications and Linux device drivers.
- C++: Many years ago, I did quite a bit of C++ work. While I'm out of practice, I could get up to speed in short order.
- I have a solid understanding of OOP principles, not just the basic mechanics of a single OOP language. While I don't usually
do any heavy OOP development (with the exception of custom APIs), I can hold my own if the situation requires it.
- I've done numerous projects over the years with languages such as Bash, Perl, TCL/TK, Fortran,
Pascal, assembly, and other more obscure (by today's standards) languages as well.
- I'm OK with client-side JavaScript. It's not a favorite language and my use of has been limited mostly to
ajax calls to connect web-based control-panels to backend API interfaces that I've created.
APIs
- I've created many custom APIs for customers, from simple interfaces to complex communication systems.
- A sample of 3rd party API's I've worked with: Rackspace Opencloud (create and maintain
cloud servers, dbs, and services) , Google (online document and services),
Amazon (product information and S3 storage), Facebook (website login integration),
WordPress (website plugins), financial (stock and currency pricing)
Database Technologies
MySQL
- I've setup many MySQL servers running on Linux from the late 1990s up to present day.
- I've designed, implemented and maintained hundreds of MySQL databases, from small and trivial
to complex multiple-server arrangements.
- I'm familiar with good SQL practices and am comfortable creating large and complex SQL queries -
this skill applies not only to MySQL but to other SQL variants as well.
Other SQL Variants
- I've created numerous standalone applications in C and Python that utilize SQLITE databases.
Some of these included low-level extensions in C, such as custom sorting and validation functions.
- I've also written programs that exported data from MySQL to SQLite and vice versa.
- While I have only limited experience setting up PostGres SQL servers, I HAVE worked on a fair amount of
applications that pull/push data from PostGres databases.
- While not my usual type of work, I have worked on various projects over the years that
access other database variant SQL sources, such as MS-SQL Server, Oracle, and AIX. I do not have
experience setting-up or maintaining these variants.
Networking
Web Servers
- I've setup and maintained Apache web servers, in Linux environments, for many years.
- I've used NGINX web servers for load-balancing, content-multiplexing,
data-caching, and security front-end purposes with
very positive results.
DNS and Email
- I have been setting up and maintaining DNS servers for over 20 years.
- I have setup and maintained Linux based email servers (Postfix, Qmail, Zmailer, POP, IMAP, SMTP) for 20 years. My skills have
evolved over time to include things like SSL-encryption, DKIM, SPF, and RBLs.
- Many years ago, I wrote highly specialized, low-level, SMTP server applications that worked on the
TCP/IP socket level. While not something that one would do in modern times, this
demonstrates my level of experience.
Work History
Aug 2002 - Present
Nolan Data Services
Sole Proprietor
Kansas / Pittsburgh, PA
I offer a wide variety of computer, programming, and network based services.
I can also help teach these things to others.
Being able to offer a wide variety of related abilities and expertise sets me apart from many others.
May 2001-Jan 2002
Xyterra Computing
Software Engineer
Scottsdale, Arizona
I designed and implemented system libraries in C for a large scale high
availability clustering project operating in a completely custom hardware environment.
Also implemented and maintained a network of Linux systems for simulating
this environment. Company wide layoffs left me unemployed.
Oct 1999-May 2001
Creative Communications
Web and Systems Developer
Bloomington, Minnesota
I served several roles at CCI including network admin (implement firewalls,
rewire network, reorganize IP blocks), system/apps programmer (wrote backup,
security, monitoring, communications and customer programs), web developer
(created numerous web interfaces), and tech support (dealt with customers and
their issues). I left CCI to pursue other challenges, but
continued to do occasional special-projects, as a consultant,
for them for another 7 years.
Formal Education
BS in Computer Engineering Technology from Capitol College, Laurel MD - 1996
My courses gave me a solid foundation on which to build a good understand of programming, database,
application, networking, digital electronics and microcontroller/microprocessor fundamentals.
While my education was an important stepping stone, the vast majority of the
skills I have accumulated come from years of real-world practical experience.
Hobbies and Interests
- Micro-controller projects
- Crypto-currencies
- Godzilla Movies
Updated: September 2024