Dudley Craig

Dudley Craig

$54/hr
Front-end software developer.
Reply rate:
-
Availability:
Full-time (40 hrs/wk)
Age:
49 years old
Location:
CapeTown, Western Cape, South Africa
Experience:
8 years
CURRICULUM VITAE OF DUDLEY CRAIG Contents Personal Details Education Character Career Objectives Employment History Development Experience Administration / Support Experience Installations Experience Portfolio Skills Matrix Personal Details FULL NAME DATE OF BIRTH ID NUMBER LOCATION LANGUAGES CELL EMAIL WEBSITE AA/EE DESIGNATION REGISTERED DISABLED Dudley Craig- Sea Point, Capetown English, Afrikaans--functional.org.za white, male no Education 1995 Electrical Engineering - Westlake Tech Maths N4 65% Eng Science N4 52% Electrotechnics N4 56% Electrical Trade Theory N4 46% 1993 Matric - Huguenot High School English 1st HG 53% Afrikaans 2nd HG 41% Maths SG 68% Science SG 49% Agricultural Science SG 43% Art SG 52% Character General Creative, logical, flat-footed. Sports I’ve participated in the Argus cycle tour, gun run, 5fm triathlon and SA champs life saving. At present I keep fit with swimming (well less of this at the moment) and hiking. Hobbies Electronics/3d Printing, Blender/Inkscape/Gimp digital art, photography and an occasional game of pool ;) Career Objectives I've got years of experience with linux and developing within its console (VIM). I've got years of experience with linux based CLI source code management (GIT). I've got years of experience with linux based CI tools. I wish to remain specialized in one language, javascript. I would welcome utilizing my backend language experience (clojure, php, java) within support (sysops) if required. I would welcome utilizing my backend environment experience within support (sysops) if required. Employment History 03/2018 – 09/2018 Freelance/Addhoc Remote eCommerce (b2b) development for Nutritional Supplements based off of a java Hybris api. Client and Admin facing, interfaces utilizing oAuth (hmac JWT’s) for authentication and authorization. My role was to re-implement address and payment methods management on client and administration panels and addhoc work debugging authentication/authorization. Tools and libraries used being React, Redux, JWT’s, Bootstrap, Axios and react-redux-form. Ticketing and source handled via Atlassian (jira, bitbucket). 12/2017 – 03/2018 Cognician White labelled content management for business oriented coaching. My role being the development of stateless, idiomatic web applications utilizing Clojure/ClojureScript and Datomic. I picked up a love for Clojure (Compojure, Hiccup, Specs)/ClojureScript (Figwheel, Reagent (based off of react.js)/Rum), REPL development, and Emacs (Evil mode)/VIM. Systems based off of Amazon Web Services, Clojure/ClojureScript and Datomic. Ticketing and source handled via Asana and Github. 12/2015 – 12/2017 InventCommerce eCommerce work based off of Hybris framework (spring, hibernate, solr, jstl/jsp within a distributed environment) application framework and frontend being react.js and jquery built off of webpack.Implementing new features, maintenance of existing systems and deployments. Work encompassing backend (restful json web services, soap web services, spring (dao’s, dto’s, services, facades) and frontend (jquery, react,.js, bootstrap, node.js (only as tooling env), webpack, mocha, eslint). Typical software lifecycle starts with knocking out a BRD, writing tests and code to match (TDD), pushing code and peer reviews, merging and release notes, containerized (Docker), QA and deployment via CI tools (Jenkins). Most of our interaction with clients and other developers is via video streaming, messaging applications, ticketing and email. The primary clients thereof being clicks.co.za, glanbia and drmartens.com. Build/Development environment being both eclipse or console (vim) with ant/maven on a containerized (docker) environment. Technologies being java (j2ee 7, 8), hybris, ant, maven, spring, hibernate (tho mostly abstracted away), solr, jquery, responsive bootstrap, soap, docker, jenkins, aws/ec2, sonar. Ticketing and source handled via Atlassian (jira, bitbucket). 12/2012 – 11/2015 Indaba Mobile Indaba's business model revolved around a white labelled, multi tenanted mobile chat application consisting of a client (mobile device) and a backend stack (concurrent, distributed, scalable microservices hosted on linux based amazon web services). My responsibilities were originally the architecture and development of version 7's relational data (mysql), the interface thereof (php, react.js, node.js (only as tooling env), webpack), the exporting of data from a relational structure to a distributed database (cassandra) and debugging on multiple concurrent (distributed) nodes on AWS for both virtual machine and RDS instances. Other responsibilities included aggregating, debugging/maintenance, and client facing interface for survey data, resolving/profiling stack issues(load balancers, activemq messaging, akka message queues, internal traffic analysis, tomcat), maintenance of legacy software and identification(wurfl) and distribution of client applications. Later this was expanded to include java development with spring, hibernate, camel, jersey, mina and drools. Technologies used being zend 2, react.js, jquery, jquery-ui, spring, tomcat, activemq, apache, mysql and cassandra. As a company, it was going insolvent, which is why I left. References: Ray - was technical director till December 2014 (no replacement) Heath - was system operations till October 2014 (no replacement) Nelson - was project manager till December 2015 01/2012 – 01/2013 Zapop Although billed as a digital media company, Zapop developed prototype systems. By far my most exciting project was an autonomous robot. The robot would take panoramic images every few meters, pass the image through object recognition software and catalogue the results. My part came in with the user web interface which took the panoramic image and created a 3d environment whereby the user could browse the catalogued objects and get visual information of the state as when the panoramic image was taken. Other projects included a touch-screen notifications panel for varying devices displaying alerts according to sensor data (temperature, database irregularities, no power, etc), and an e-learning/learning-management-system platform based on moodle. Technologies used being Cakephp 1.3, MoSync, jquery, bash, html5, REST, GIT, Redmine. Unfortunately transport became an issue (2 hours by car, 5 hours by public transport) and it was with regret that i left the company. 09/2011 - 01/2012 Freelance The aim was to get my own mobile development project off of the ground while doing small local projects and online freelance projects. My mobile project consisted of an android application encompassing public transit times and up-to-date notifications fed via a REST server built on zend framework. The Android client was written in Java using the Android libraries. The project was abandoned since the freelance work was not keeping me afloat. 11/2008 - 09/2011 Finassets Finassets, a subsidiary of TrinityAssetManagement, is a financial portfolio management company. Responsibilities here consisted of setting up development environment (subversioning, bug ticketing system/tracking, wicki documentation and development/testing/failover server management), project management (scrum), and finally software development process (requirements specifications documents, writing code, subversioning, debugging/stress testing, etc). I was retrenched due the portfolio component of the company coming into trouble. 07/2007 - 11/2008 ViaMedia Viamedia (WASP), a structured, technical environment, catering towards mobiles devices. Here I built in-house web interfaces for data loading, C++ application interfacing, and WAP portals via a rigid software development cycle ... requirements specifications documents, writing code, subversioning, debugging/stress testing, packaging(rpm/make), and finally documentation/release notes. 10/2005 - 07/2007 LiquidLimeStudios A close, personal, web development company. LiquidLimeStudios focused on small to medium websites. Started out by creating a more client friendly/orientated cms for small to medium websites, employing traditional php/html templating. With the advent of Adobe (LiquidLimes flagship project) a more complex structure was used, requiring XML/XSL templating. The project itself involved students submitting digital media, whereupon a judging panel would asses and rate these submissions. The site had some challenging requirements, such as support for 8 languages (managed content), differing media formats, and heavy loads. Left since I needed to expand on my career. 10/1999 - 10/2005 Cybersmart (isp) Joined Cybersmart when the company just started (1999), building physical part of the network (copper cabling). Since Cybersmart was still small, i was taken into other parts of the ISP, from dialup/desktop support (servers, routers), administration, to web development. The company was pursuing primarily administration and my direction was moving towards development, so left to pursue development. 10/1995 - 10/1999 Electrepairs (building and industrial maintenance Completed as a qualified Industrial Electrician 01/1995 - 10/1995 All Security (Alarm Installations) Installation of alarm systems, intercom systems, and access control 12/1993 - 01/1995 Macs sports bar (barman) Development Experience Javascript Working with javascript almost as long as with HTML (1999/2000) so i've been around the block of javascript frameworks with mootools, moving over to jquery for a couple years, jumping between backbone, angular and now (primarily) react/redux/jsx in both prototypal object oriented and functional patterns (primarily ES6) influenced by clojurescript (idiomatic, stateless/immutable, agile REPL development). Projects range from spatial google map interfaces, 3d interfaces (panolens), eCommerce (on Hybris/Spring, oAuth JWT’s), broker portfolio management, mobile chat applications (both websocketted, peer to peer and via server api’s) incl content management, administration consoles and graphs/reporting. Predominant libraries being React, Redux, Bootstrap (with Sass) for building service oriented (incl websockets), SPA’s and multi page, responsive applications which run on a range of platforms. Development, packaging, integration and deployment tools via Eslint, Jest, Webpack, Node, Sonar, GIT, Jenkins, AWS/Buildkite, ZSH, and Bash. Primary editor being vim with linting via eslint and REPL integration via tmux/slime. Clojure It took me a while to shake off the imperative world, and learn to change perspective to an immutable state. Though this is still a very new language to me, it’s fast become my favourite with the whole idea of REPL development, it’s a lisp, idiomatic, functional … all the awesomeness packed into one language!!! My flow jumps between a terminal emacs environment married with tmux and a headed REPL relying on evil-lispy, eastwood, helm, projectile, magit, … to one of VIM based off of fireplace, vim-slime and sexp. ClojureScript Much the same as Clojures’ story except my flow works around a figwheel repl and react (reagent/rum). Java Spring being the predominant framework in conjunction with hybernate/jpa. Tools have been primarily handled via a hybrid of eclipse and vim (eclim) using maven and ant, code quality via Sonar, deployment via Jenkins/Docker. Experience is built up between ecommerce (Hybris, Spring/Solr/Hibernate) and custom microservice architectures based off of Akka, hosted on AWS. Source being managed by svn and git via both bitbucket and cli. PHP This was my primary language since 2005, due a large support base. Predominant servers being linux/BSD based on both apache and nginx. Frameworks I'm most experienced with being Zend2 followed by CakePHP and Yii. Commonly employed patterns being MVC integrating ORM, Factory, Singleton, etc. Currently exploring Symfony and Laravel. Tools range from Compojure, the linux CLI (Bash/Zsh), xDebug, kCacheGrind, jMeter, PHPUnit and Sonar for code quality. VIM being preferred editor/project manager on top of Docker. MySQL I'm well versed in the design/architecture, backup, replication and of course general querying. Tools used being the cli, workbench and sqldeveloper. Cassandra Very basic work, exporting/restructuring from relational data to distributed data. Tools used being the cli, kdm and cql data modeler. Datomic Building of basic queries off of existing data structures within restful api’s. Tools used being a clojure repl. Postgresql Designed user authentication/authorization scheme’s and content management in much the same way as I do mysql without any major hiccups. Tools used being the cli, pgadmin, sqldeveloper and mysql workbench. GraphQL Only worked with it in a purely experimental/personal capacity. HTML/CSS Been using html/css since 2001, xhtml-strict since 2007. Using a range of tools supplied by firefox for validity checks, useragent switching and of course profiling with firebug. Styles predominently from bootstrap and on personal projects, jquery-ui. Pre-processing being SASS via LESS parser. Tooling used primarily derived from node.js being a webpack build environment auto bundling via less/scss parsers. Either Eclipse or VIM being the two major editors used. XML/XSL/XHTML/WAP/SOAP I've used SimpleXML, DOMDocument, Javas' SAX parser back in the day and javascripts' native libraries for parsing rss, atom, soap, configurations and html. Structured usage of XML ranging from XHTML, WAP/WML, SOAP and XSL/XSLT transforms with DOM navigation/searching with either 3rd party libraries or xpath querying, including namespace definitions/dtd's. Image Editing/Design Image editing/SVG/engineering drawing/3d sculpting skills with Blender, Inkscape and Gimp. Bash Writing an assortment of admin tasks ranging from database implementations, application deployment (CI), restful api testing suites (curl), scheduled crontab data ftp'ing, text processing and debug/profiling tools, radio station streaming (for the love of cricket), cli bitcoin tickers, cli cricket score tickers, cli tv remote, rc api for arduino based robotics (toys tbh). Perl Web applications development between 2000 and 2005 before moving over to PHP. Python Adjustments to existing code, extending libraries … ad hoc where required. SQLite A few personal projects linked with Google Maps, Android and Java. C++ In the passed i've worked with C++ on the MoSync framework to develop mobile applications for multiple devices though this skill is once more dormant. Very basic (more C than C++) work with the MySQL++ library for internet café billing systems using Vcc and GNU’s Gcc back in 2004. Arduino C Prototyping of CNC (grbl and RAMPS) 3d printer/laser engraver, hydroponics automation, GPS tracking with spatial services integration. Utilizing ioc (incl Amazons Alexa), bluetooth, and RC integration shields. Administration/Support Experience Servers Main platform being RedHat based distros and others to a lesser degree being FreeBSD and SBS 2003 with more recent (as in 2011) work on Mikrotik routers. Tasks performed being: Managing bandwidth allocation (2004) DNS routing between different gateways (current) VPNs/Bridging (current) Domain registrations and setup. (current) WWW user accounts administration. Apache (current), IIS (2009) FTP access. (2009) MySQL DBMS. (current) DNS administration. DJBDNS, BIND, Shell scripts (2004) Mail accounts administration. Sendmail, Postfix, and Exchange (2004/2011) ADSL accounts administration. (Customized application for Cybersmart, 2004) File Shares. Samba (current) On and Off site backups, commercial software dependant (2011) PABX system management (2011) Desktop/Dialup Support Callout support for Network Administration on Unix systems (FreeBSD), routers(custom ADSL/wireless, Cisco), and general client systems (Win32 and Apple OS ’X’), included software being MS Office and OpenOffice. Support for technical queries regarding Email accounts, ADSL, ISDN, and Dialup accounts. Installations Experience Servers/Desktop Machines Building/Maintenance of standard client machines and servers including RAID arrays. Ethernet/Wi-Fi Networks Installation of telkom lines, cat 5e networks incorporating telephone/intercom systems (cabinet, patch panels, switches, routers, and PABX system), and servers (UNIX/Win32). UPS Systems Installation and management of power systems (<=10kVA) for the server room, including smaller solutions for select clients. Portfolio 2018 - current cognician.com, white labelled client systems. (http://www.ey.com) 2017 - 2017 glanbia.com, b2c ecommerce 2015 - 2017 clicks.co.za/health, b2c ecommerce pharmacy integration 2013 - 2015 in-house development, screenshots available on request 2012 - 2013 in-house development, screenshots available on request 2010 - 2011 finassets.trinityam.co.za 2008 - 2009 http://www.seeff.co.za 2008 - 2009 http://www.etv.co.za 2008 - 2009 http://www.rcs.co.za 2008 - 2009 http://www.player23.co.za 2008 - 2009 http://www.andbeyond.com 2007 - 2008 www.viamedia.co.za 2005 - 2007 www.viridian.co.za 2005 – 2007 www.adaaentry.com 2005 - 2007 www.totalawarenesscoaching.com 2005 - 2007 www.369designs.co.za 2005 - 2007 www.stevenhummel.com 2000 - 2005 www.thunda.com 2000 - 2005 www.businessweb.co.za Skills Matrix Database Skills Skill Datomic MySQL Server SQLite Cassandra PostgreSql Database Tools Skill MySQL CLI MySQL Server MySQL Client MySQL Workbench (Visual Database Schema Design) Cassandra PHPMyAdmin SQLite Designer Development Skills Skill Clojure ClojureScript Java JavaScript Bash/SH PHP Python Perl Months Used 6 >- Proficiency Beginner Advanced Beginner Beginner Beginner Last Used current- current Months Used > 120 > 120 > 120 72 Proficiency Advanced Intermediate Intermediate Intermediate Last Used- 36 84 6 Intermediate Intermediate Beginner - Months Used 6 6 36 > 120 >- Proficiency Intermediate Intermediate Intermediate Expert Advanced Advanced Introductory Intermediate Last Used- current current- C (arduino based) ActionScript HTML/XHTML HTML5 WAP XML CSS/SASS XSL 24 12 >- > 120 36 Introductory Beginner Expert Intermediate Intermediate Advanced Expert Beginner current 2007 current current 2008 current current 2008 Proficiency Beginner Beginner Intermediate Advanced Intermediate Intermediate Intermediate Beginner Intermediate Intermediate Beginner Intermediate Intermediate Beginner Beginner Last Used current current- current current- Months Used >- > 120 36 Proficiency Advanced Intermediate Beginner Intermediate Intermediate Beginner Intermediate Advanced Beginner Last Used current- current- current 2017 - Advanced Intermediate Intermediate - Proficiency Intermediate Intermediate Last Used 2017 current Development Frameworks/Librari es Skill Months Used Compojure 6 Reagent 6 Spring 36 jQuery > 120 Composer (PHP) 36 Zend 2 36 Cakephp 20 Yii 4 React 24 Redux 8 Angular 6 jQuery-UI 12 Backbone 12 MoSync 6 Android SDK 12 Development Tools Skill VIM Eclipse Emacs GIT CLI XDebug kCacheGrind jMeter Firebug RPM Tools (make, tar) Subversion CLI Subversion tortoise Dreamweaver Operating Systems Skill Months Used Docker 24 Ubuntu 60 Centos Fedora FreeBSD Cygwin Windows SBS 2003 Windows NT Windows 95/98/2000/XP/Vista Windows 7 Windows 8 Windows 10 - > 144 Intermediate Advanced Intermediate Intermediate Beginner Beginner Advanced current- current- 12 0 0 Advanced Introductory Introductory current 2013 current Proficiency Intermediate Last Used current Intermediate current Intermediate current Other Skills Skill Months Used Documentation – 60 Manuals (Users, System, Operational) Image Design/Editing > 120 (Gimp) SCRUM/Agile 60 processes Updated 15/01/27, Page PAGE 7
Get your freelancer profile up and running. View the step by step guide to set up a freelancer profile so you can land your dream job.