Nev Delap - Software Engineer
Personal Details
Born 26/9/1972
Dual British/Australian National
British (European Union) and Australian Passports
Email: nevdelap@gmail.com
Skype: nevdelap
English (Native) / Spanish
Currently in Buenos Aires, Argentina. Expecting to return permanently to Australia at the end of this year.
"Software development should be treated as an engineering discipline - not as an art. A clean design, as simple as possible and no simpler, refactored judiciously, optimized where necessary, and no more, with everything tested that could possibly break - any lesser goal is a recipe for wasting time and money."
Objective
To work with developers who really know and value good Object Oriented Design, Automated Unit Testing, and Built-In-Test. Developers who understand how it makes for fast, high quality development. Developers who fix problems, rather than working around them. To not work with developers who will get round to all this when they have the time. Because those developers never will have the time, and because my life is too short.
Summary of Skills and Experience
7 years of Python development on Windows and Linux.
15 years of C++ development on Windows and Unix.
2 years of C# development on .Net & and Mono platforms at networking and security APIs level, Cairo, Gtk+. Contributing to Cobra a Python-like language for .Net. Now .Net becomes majorly sexy. Am now writing a book for it.
I have a thorough knowledge of Object Oriented Analysis, Architecting, Design & Implementation, Refactoring and Automated Unit Testing, and Built-In-Test. These are not buzzwords to me. I know this stuff, and I do it. I don't pay it lip service, and I don't put it off until later.
Linux, Apache, MySQL, Subversion, Mercurial - installation, configuration, administration. Just give me ssh access and I will sort everything out for you. Of course I worked with Windows for 15 years too.
XHTML/CSS, Python (Django), PHP, & MySQL I am not a 'Web Developer' - I am a Software Engineer who happens to do some Web Development. The difference? I know what I know at a deep level in a code editor, not the level of using DreamWeaver and being scared to venture out of the GUI. I know CSS and XHTML because I know them, not because I use a tool that knows them. I know OO from long experience with real OO in C++, not half baked OO of languages like PHP, and as a result I know how to do OO properly in PHP.
Long List of Technical Acronyms
This is not one of those resumes and I am not one of those people. You know what I mean. Anyone who claims to be an expert in more than a handful of languages/frameworks/technologies is waxing it.
Other Experience
1½ years technical training & training consultancy - course writing and delivery including C/C++, server administration, networking. Plus, non-IT training experience - 2 years teaching English, and a year as a Skydiving Instructor.
Technical writing - user manuals, technical manuals, system documentation, etc. Writing for Websites, and English-Spanish translation.
Excellent written and oral communications skills, but I call a spade a spade, I don't spin, I don't do sales.
Work History
Lead Engineer, Intelestream
January 2010 - Present
My boss has given me the new title of The guy who seriously knows his shit. I am based in Buenos Aires, working with our software developers and web developers here and in the United States and India. My generic title reflects my wide ranging experience over my colleagues which is therefore put to use in a wide selection of tasks.
My time is split between many tasks including backend PHP programming on intelestream's inteleCRM product, Python scripting to automate build, test, deployment processes, etc, consulting Architecture and Design issues, mentoring developers in various things from Object Oriented Design to improving coding practices and using Subversion correctly, to better testing, solving server issues, admining MySQL, communicating with vendors and helping evaluate their products for integration with ours, creating demo environments for sales staff, creating evaluations for customers, helping out with client support, advising on technical issues such as improving security, and whatever else I see that needs doing, as well as working on a long list of miscelaneous tasks assigned to me in our task tracker.
All of the staff work remotely. While the company has offices in Chicago and Buenos Aires they are not used day to day. And developers, sales, support, finance, etc all work from home. We have ten developers, support people, and a small army of sales people. We use instant messaging, Skype, GoTo Meeting, email, landlines, and various online tools for project management, bug tracking, and so forth. We basically work US Central Time office hours and I work almost entirely in Linux, firing up Windows virtual machines when necessary for testing purposes.
Technical Writer
June 2010 - Present
Independent
I am writing a Programmers Reference. So far in the gathering content/research stage. This takes up a great deal of my free time.
Misc Nerding
June 2010 - Present
I am very actively contributing to the Cobra Language in the form of testing, and intend getting involved in the compiler development.
Miscellaneous Development for Private Customers
October 2009 - December 2010
Various development using Php, Python, Django and MySQL on Linux/Apache.
June 2007 - October 2009
Living, Traveling & Working in Latin America.
Various things including English Teaching, Spanish/Portuguese to English translation of documents and website content, writing original content in English, and some web development. But mainly time off from the world.
Senior Software Engineer (Full time C++ Developer)
February 2001 - June 2004, July 2006 - June 2007
HF Modernisation Project, Space & Communications Division, Boeing Australia, Brisbane
Summary:
Military communications project in C++ and Python on Windows and Unix using CORBA. I developed CORBA components within a traffic stack which provided end-to-end radio communications between military assets. I brought automated xUnit style automated testing to the project before CppUnit existed and at a time when Boeing Australia software testing was (in my opinion) extremely lacking. My work in this regard was one of the turning points in making this project a success.
more...
The project was a large military communications system. It included a large number of distributed CORBA servers in C++, workflow GUIs and maintenance GUIs in C#, running on a combination of Windows XP, Windows NT, and Linux to control communications hardware for analog and digital HF communications.
My responsibility was in writing some of the primary CORBA servers in a traffic stack providing the end to end HF communications between ground, air, and sea based units. The project is classified and so can't be described in any specific detail.
The implementation was in Visual C++ using the ACE/TAO CORBA implementation. ACE/TAO is an open source implementation of CORBA 2.3 designed for high reliability applications such as aviation and military systems.
Aside from C++/CORBA development my main contributions were the championing of CppUnit style testing, Martin Fowler style Refactoring, and the use of Design By Contract and Built In Test as techniques for ensuring high testability, maintainability, and robustness of the software. This was extremely successful.
I developed a very, very easy to use CppUnit style testing framework providing for checking server availability, concurrency testing, memory leak detection, simplified test writing, results report generation, writing of results to database, generating reports and so forth.
January 2006 - June 2006
Holidayed in Australia & New Caledonia.
Windows Software Engineer (Full time C# Developer)
December 2004 - December 2005
Summary:
High performance messaging protocol level development in C# on Unix and Windows with .NET and Mono. I wrote the .NET binding and SDK for the elvin: protocol used to talk to Elvin servers running on Unix boxes. Mantara has since moved it's headquarters to New York where it is seeing great success in high performance trading systems built in C# on Elvin with this product.
more...
Mantara's flagship product was the Elvin Router high performance publish-subscribe messaging server, now the basis for their flagship high performance stock trading systems. The Elvin router is capable of servicing thousands of clients passing tens of thousands of messages per second. It implements the Elvin network protocol identified by the elvin:// url schema. The protocol is implemented in language bindings for Java, Mobile Java, Python, and C/C++. My primary responsibility was the implementation of the .NET binding for the elvin protocol, supplied as an SDK for download from the Mantara website, including assemblies, reference documentation, and programmer's guide. Supporting this internal to Mantara I wrote the build and test infrastructure for nightly authomated build and test on Windows (.NET and Mono), Windows CE (Compact Framework), and Linux and Mac OS/X (Mono) using NUnit, and Clover for Visual Studio.NET.
July 2004 - November 2004
Holidayed in France, Switzerland & Spain.
Senior Software Engineer (Full time C++ Developer)
February 2001 - June 2004
HF Modernisation Project, Space & Communications Division, Boeing Australia, Brisbane
My first stint at Boeing. I returned to this position in July 2006 and the details are found above.
Full time Contract C++ Developer
May 1998 - Febrary 2001
Asset Management Services, Transport Technologies Division, Queensland Transport, Brisbane
Summary:
Digital video system in C++ on Windows and Sun Irix (Unix) platforms for providing digital video of the Queensland road network for engineers, integrated with location data, linkages to road condition data, works planning, etc.
more...
I developed the Digital Video Road system for use by road engineers. Included digitising software, incorporating support for analog video tapes encoded with road data, a viewer supporting display and measuring tools for road/bridge assets and features, an editor for creating and using collections of road videos and data, and an automation interface for integration into Main Roads database road management systems. On Silicon Graphics IRIX 6.2 and Windows clients, when suitable hardware became available I later rewrote it run purely on Windows to reduce user, support, and hardware costs, and updated/improved it to enhance the software as well as provide support for using video on the local area network. It included support to play JPEG stills as video to support data from a new pavement condition data collection vehicle purchased by Main Roads and the proprietry data formats generate by that system. The application was used by Main Roads Districts, Local Government, and engineering contractors and consultants to reduce costs associated with travel to remote locations.
The software was integrated into other Main Roads systems including GIS applications and road condition database tools. It used an ATL COM component for automation in both C++ and Visual Basic applications. The integration was provided to display road condition data in graphs, tables, etc, while viewing the relevant sections of road both playing as video, and displayed on GIS map applications, and more.
I also provided consultancy on object techniques, particularly in training the VB programmers and mentoring them in their learning and application of UML, and the techniques of object oriented design (where they could be applied to the VB of the day), and the use of Rational Rose for analysis and design.
Contractor, System Administration
January 1998 - May 1998
Office of Asset Sales and IT Outsourcing, Australian Federal Government, Canberra
Summary:
For nine weeks I provided all IT services for this temporary ~100 person government department formed especially to administer outsourcing of IT for the largest of the Federeal Government Departments.
more...
Regular duties included providing secure temporary networks for use by staff doing up to $400,000,000 per year contracts tender processes, and administering and providing support to the network used by the ~100 regular staff. I took over this contract temporarily, replacing another person who went on their honeymoon, and additionally - because it desperately needed, I rebuilt their servers to provide disk and server redundancy, put in place a backup regime - previously non-existent, did a security review for the Minister and in my spare moments developed and intranet site for documentation management.
C++ Developer (80%), Systems Design/Integration (20%)
February 1997 - January 1998
LAN Systems, Infrastructure Change, Australian Tax Office, National Office, Canberra
Summary:
C/C++ development for support of network infrastructure management in C & C++ on OS/2 and Windows Servers and Windows clients.
more...
LAN Systems was responsible for the infrastructure development of the Australian Taxation Office logical LAN, spanning 26 offices around the country. A Coax Ethernet LAN with, at the time, approximately 300 NT 4.0 Servers and 17,000 Windows 95 clients.
I was senior programmer responsible for C/C++ development to provide functionality on top of that available in the standard products used on the LAN for both system management and to meet business requirements. I was involved in all development, from design through programming, testing, documentation, installation, and maintenance. Development was using Microsoft Visual C/C++, Borland C++, and Glockenspeil C++ (OS/2), in DOS, Windows 3.1, Windows 95, Windows NT and OS/2 LAN Manager environments writing multi-threaded, multi-session Windows to Unix socketed applications, automated upgrades, rolling out of LAN infrastructure, management of roaming users, policies and profiles, before Windows servers had such support, Microsoft Systems Management Server customization, installation services (before products like InstallShield), across the, for that time, extremely large network infrastructure.
Technical Course Developer & Trainer
September 1995 - February 1997
IT Training, Australian Taxation Office, National Office, Canberra
Summary:
Technical trainer for software development, networking, HTML, and other subjects to developers and network administrators.
more...
I wrote and taught courses in C/C++, HTML, TCP/IP, Data Communications, Windows Server administration, and Web design (Tax Intranet), in Canberra and interstate. User through LAN Administrator level trainer, courseware developer & training consultant. Consultant to ATO staff on Network, PC, Systems and Applications training.
C++ Developer (80%), Systems Design/Integration (20%)
February 1993 - September 1995
LAN Systems, Infrastructure Change, Australian Tax Office, National Office, Canberra
My first stint in LAN Systems. I returned to this position in February 1997 and the details are found above.
Education
Bachelor of Science, Computer Science.
Murdoch University, Western Australia, 1992.
9 High Distinctions & 11 Distinctions in 24 courses.
Personal Interests
My main loves are traveling and languages, and philosophy. Otherwise I'm most often found lying in the sun, or swimming, or doing anything involving sun and water.
Mi vida ahora, afuera del trabajo, está casa totalmente en espaÑol con mi novia guapísima, y mi pasatiempo actual, y por bastante tiempo ya, ha estado aprender arabe. La vida realmente es loca - y chévere!