Employment History

2010-
Freelancer
Portugal/UK
 
  • Developed (and partly designed) a complex distributed client-server application. (C++)
  • Designed and developed management software for a hairdresser salon. (C++)
  • Developed (and partly designed) Linux-based software for computing the Nash Equilibria of extremely large data sets of several GBs in size, and employing several complicated game theory concepts. (C++)
  • Designed and developed software for a Law firm for recording and managing voice notes and transcripts. (C++)
  • Designed and developed a solution for advanced chart visualization of data utilising the Processing.js library. (Javascript)
  • Modified and extended JomSocial installation. (PHP, Javascript)
  • Modelled data and designed a relational database according to requirements and needs identified. (MySQL)
  • Developed several online billing reports for a leading freelancing online portal according to specifications provided. (Javascript)
  • Developed auto-backup solution of sensitive data. (PHP, Javascript, Bash shell scripting)
  • Modified and extended an Ajax FileBrowser installation. (PHP, Javascript)
  • Developed several interactive Web 2.0-compliant forms. (PHP, Javascript)
  • Developed web application utilising Google Maps API for the visualisation of speed cameras and accidents. (Javascript)
  • Developed a custom slider jQuery UI component. (Javascript)
  • Modification and extension of existing WebCalendar installation. (PHP, Javascript)
  • Custom Twitter search API integration to existing set of web pages. (Javascript)
  • Developed component to allow for users of a website to refer a friends. (PHP, Javascript)
  • Others.
2007-2009
Habitveiro SA
Portugal
Software Developer
  • This was a position at a small family-run construction company.
  • Maintained and upgraded a messy, poorly designed and buggy enterprise application developed in-house by a former employer. This consisted of redesigning the database in MySQL and migrating data; designing and coding most of the application in full compliance with OO principles in C++, using MFC and ATL.
  • Provided technical support to the company's employees.
  • Advised and oversaw the upgrade of the company's hardware and software.
2003-2007
Various
Bolton, UK
Various part-time jobs
  • Studied Software Development at Bolton University. Developed a number of applications during this time as part of the course curriculum, some of which include:
    • an emulator for the G1 machine capable of running and debugging G1 programs in machine code or G1 assembly. First version was developed in C sported a CLI interface and later developed a fully GUI-based one in C++ and utilising the MFC. G1 assembly instruction set was designed by myself and inspired on x86 assembly. This assignment scored 100%, the first time in the University's computing department in over 5 years.
    • a number of web-applications: a personality profiler in ASP/Vbscript, using a Ms-Access database; a somewhat complicated flight booking system for an imaginary airline company in PHP and using a MySQL database; others.
  • Held several non-qualified part-time positions.
1999-2003
Netinha SA
Portugal
Software Developer
  • Participated in the development of a nation-wide integrated management system for a Portuguese car rental company comprised of numerous components/modules in C++, using MFC, ATL and an Oracle database.
  • Worked alongside a team of web designers to develop a new website for the company. Developed website from scratch and designed a new database. It was a full blown dynamic e-commerce website where visitors could enquire, place orders, and customers could even submit bug reports about software products owned, and more; something rarely seen in 2000/1.
  • Eventually became lead developer of the company's core product, a behemoth integrated management software application in C++, utilizing the MFC and ATL technologies and an Oracle database, for small and medium companies, which was constantly in development according to a well defined roadmap.
  • Developed and co-developed many small commercial custom applications.
  • Designed and developed a few tools used in-house.
1997-1999
Criatif SA
Portugal
Junior Software Developer
  • Worked on the company's main software product, an integrated management software application in Clipper for small companies.
  • Upgraded a legacy Clipper application, developing a number of additional modules at the request of a customer, which also involved upgrading the dBase database.
  • Charged with developing a few small stand-alone Clipper applications on my own.
  • Later on participated in migrating the company's main software product to Windows. The application was written in C++ and used a SQL Server database.

Education

2003-2007
Bolton University
Bolton, UK
Studying Software Development Bsc.

Was forced to suspend my course due to a sudden death in my family but am expecting to resume studies next Academic Year on a part-time basis taking evening lessons, hoping to finish by June next year. I have only three modules left to do, which include my final year's project. My course average grade so far is higher than 70% (First Class.)

The self-taught path

I have been learning programming languages and techniques since the age of 9 on a self-taught basis. The very first programming language I learned was BASIC in different flavours – ATARI X800 BASIC, GWBASIC, Basica, Quick Basic, Turbo Basic. Started by developing mathematics-related programs such as simple 2d chart plotters, find common divisor and other simple programs.

About three years later I learned Clipper – Summer '87 and then 5.x – and in time developed a few serious, well structured projects with real world use, described further below. Shortly after, I learned C and 80386 Assembly and played with the languages mostly to learn new concepts like 386 Protected Mode, TSR programs, Interrupt hooking, low level hardware access/manipulation and other little talked about concepts at the time. When Windows finally became a true OS ('95, Chicago) I then embraced it and abandoned DOS for good. Went on to learn C++ and STL, several Win APIs , MFC and ATL, and in time other technologies.

Some of the projects I developed in my teenage years worth mentioning include:

  • DOS application to manage a charity-run day care centre in Clipper and C, which was in use for years until it was finally replaced by a Windows-based application sometime in the late '90s, the latter not authored by myself.
  • two DOS applications in Clipper and C to manage my family's media and book libraries, which years later I fully rewrote in C++ using a Oracle database connected through ODBC, and ran on Windows 95.
  • a 2d Tetris and a Pacman inspired games in ANSI C and Assembler, with a VESA VGA (320x200x8 bit) GUI front end sporting a point & click mouse interface uncommon at the time, for DOS. These were very challenging projects from a technical perspective since I had to code several APIs, which nowadays developers take for granted, such as: low level mouse, keyboard, timer, and VESA graphics support, and others.

At the moment I am considering learning C# and the .NET framework since there seems to be significant market interest.

Did you know?

At first glance my website may look technically simple but actually quite a bit of design and development went into its making. Some of the features include:

  • PHP: back-end was developed entirely in PHP employing Object Oriented design philosophies.
  • SOA and AJAX: currently there are two services deployed. My contact me form is one of such services, as is my online code repository. The contact form itself is an HTML template that is requested by the client-side from my server and dynamically loaded up, and the form submission is carried out by initiating a POST AJAX call and waiting for a response from the server. The online repository service acts as an information provider about the actual contents of the repository by serving information about directory and file structure in XML format, and retrieving the actual contents of files.
  • Interfacing with a MySQL database
  • Logging: server-side script execution exceptions and warnings or other relevant information are logged in a file, client sessions are recorded along with some useful details.

My online repository

I invite you to have a look at my online sample code repository page where you can view actual code developed by myself. Projects are listed under categories, content is served upon request via AJAX calls, and it's easy to view my source files. I've even integrated a syntax highlighter to make the whole experience more enjoyable!