curriculum-vitae

TLDR

My CV is detailed and comprehensive, better suited to throw at your favorite LLM and ask questions about it than to read the whole thing. For a succinct summary instead, here’s the TLDR:

With more than 20 years of experience in software development, I have honed my skills across a wide range of projects, from my early days at Microsoft to co-founding Hive Solutions and leading development efforts at Tynker. My journey began with a passion for coding ignited in childhood, which I pursued through a Computer Engineering degree and into a career marked by continuous learning and impactful work. I thrive on the challenge of architecting solutions and driving them from ideation to deployment.

Want a quick look at my projects? Check my Portfolio Gallery.

Feel free to connect with me on LinkedIn to discuss technology, share insights, or explore collaboration opportunities.

Intro

Nurtured by the nostalgic screeching sounds of a ZX Spectrum loading games from an audio cassette, my journey into the digital realm began in the pre-internet dark ages, where knowledge was buried in dusty libraries.

By age eight, armed with only my Casio Calculator and my wits, I began crafting text adventure games, lighting the first sparks of a lifelong passion for technology and programming.

Moving on to the Commodore Amiga, a marvel ahead of its era yet tragically unsung, I progressed from hacking video games for infinite lives and ammo, to building them in BASIC, launching a game in Amiga Format magazine by the age of twelve.

When I later got my hands on a PC and a 56kbps modem, with internet access and a voracious appetite for learning, I was off to the races: disassembling executables to bypass trial limitations (allegedly), writing more video games, learning more coding languages, developing web apps, etc.. by the time I got to taking Computer Engineering in university, I was already well on my way.

Across the span of 20+ years of experience, from starting my career at Microsoft, to co-founding Hive Solutions, remote-working for multiple United States clients and finally settling for a long ride with Tynker, I have had the opportunity to work on a wide range of projects, usually in a leading role and covering all facets of software development.

In my latest gig with Tynker, I rode the rollercoaster all the way from it being a very small team, to being acquired for $200M by BYJU’s in 2021, and ultimately going down with the ship. It was a wild ride, full of valuable lessons, where I had the opportunity of being the main contributor to a lot of Tynker’s core products, that were used by over 100 million students and in more than 150,000 schools.

Experience

Tynker

Tynker is a kid-friendly platform used by over 100 million students and in more than 150,000 schools, offering coding education through games and projects from basics to advanced programming languages.

As a Lead Software Engineer, I was the main contributor to many of its core products, namely:

In all these projects, I was responsible for eliciting requirements from stakeholders, researching and experimenting with different solutions, and finally implementing the solution end-to-end, deploying and managing it post-deployment.

RIPE Productions

RIPE Productions, was a company that developed e-commerce solutions for the fashion industry (this company is now called PlatformE).

Developed some core features for the RIPE Core infrastructure, while simultaneously coordinating a development team (defining, prioritizing and assigning tasks, reviewing and merging pull requests, etc.), through the development of the Karl Kustomize project for Karl Lagerfeld.

In a lesser role also contributed as a software developer to the MYSWEAR online store featuring an advanced shoe customization rendering platform, related iOS demo and the adaptation of the customizer to be used in a holographic pyramid at Harrods, a luxury department store in London.

Rocksauce Studios

Rocksauce Studios was a mobile app development company that specialized in creating custom apps for businesses and startups. While working at Hive Solutions, I was contracted by them to work on more than a dozen projects for different clients, always as an iOS developer.

Toptal

Toptal is a marketplace for top developers and companies. It has a very strict screening process, that screens for deep technical skills and high English language proficiency. Through Toptal I worked for multiple companies, in medium to long-term arrangements, receiving excellent feedback from all clients.

Hive Solutions

As a co-founder of Hive Solutions, I was a Jack of all trades, as most startup founders are. At different times I acted as a Software Engineer (my main role), Tech Lead, but also having to deal with sales and recruiting related tasks.

We started with the main premise of building a SaaS Retail POS system called Frontdoor, which was built literally from scratch with most of the stack except Python being built internally. It was a technical success but a commercial failure. We later pivoted to software consulting where we developed a wide range of projects for many clients.

Microsoft

Worked in the Global Development Localization team, in a Tester role, for Microsoft Dynamics AX (an enterprise resource planning software package for finance and operations). Regular work involved performing manual tests, coding and fixing test automation, designing new tests, searching for and investigating application bugs.

Improved internal testing tools to allow scanning for test code coverage across multipler layers, as opposed to just the root of the application’s layered customization stack.

Developed internal tool for database PII anonymization to allow data transfer across internal groups spread around different regions.

Rent-a-Coder

As my first avenue of income, during college, got quite a bit of experience doing freelance projects with worldwide clients via the Rent-a-Coder service (going by the name “ Chronosync Developments”), at the time ranked in the 99% percentile of overall customer rating. Learned a lot of skills, mainly how to properly elicit requirements from clients, manage expectations, and deliver on time.

Education

University of Lodz

Took courses on Genetic Algorithms, Cryptography, Neural Networks, Network Services Programming and an Intensive course of Polish language, completing them with an average grade of 18 out of 20.

The most fulfilling part of this experience was not the academics per se, but that of living in a melting pot of different cultures, with students from all around Europe, and having the opportunity to travel through Poland and neighbouring countries.

I feel this short stay was more enriching on all levels, both personally and professionally, than anything that I could have found in academia. There’s something special about having to live for an extended period in a country whose language and culture are so different, and where no one speaks your language (or English for that matter). You truly have to push through your comfort zone just to get by.

Faculdade de Engenharia da Universidade do Porto

Activities and societies: Participated in ACM programming contests regularly.European Space Agency’s ESMO project

This was arguably the best Software Engineering course that could be found in my country, therefore the entry grades were relatively high. I started high school with a weak foundation in Mathematics, so that complicated things quite a bit. However, I set my mind on that goal, and reversed the trend by the sweat of my brow, and ended up being admitted with excellent entry exam results (2nd best grade in my high school).

The course was very work intensive. Assignments got bigger and bigger as semesters went by, and ended up growing to 80-100h work weeks by the last years. That amount was not required to make the grade, but me, like most people in the course, actually enjoyed the assignments, and wanted to make the most out of them. From making 3D video games to coding and training object recognition Neural Networks from scratch, the assignments were always challenging and interesting.

Projects

Help Agent

Help Agent is a chatbot designed to assist users with inquiries related to Tynker, leveraging Large Language Models (LLMs) and the Retrieval-Augmented Generation (RAG) architecture.

The development of such a system posed numerous challenges, including content scraping and parsing, data chunking and augmentation, embedding, indexing, querying, post-processing, reranking, model selection, and prompt engineering. Extensive experimentation was required to devise a solution that delivered fast, accurate, and reliable answers without compromising on safety or cost-effectiveness.

A backoffice system was also developed to support the chatbot’s operations. This system facilitated the initial scraping of websites to gather data, management of these data sources, and periodic updates from each scraped URL. It enabled the creation of new user-authored documents with the assistance of LLMs, including content generation and summarization, as well as the uploading of additional documents (e.g., PDFs). Furthermore, the backoffice provided tools for reviewing chat logs, managing user tickets (e.g., reports of inadequate responses), and testing chatbot updates.

My role was to elicit requirements from stakeholders, research and experiment different solutions and finally to implement the solution end-to-end, deploy and manage it post-deployment.

Upon deployment on the Tynker’s parent and school pages, the chatbot demonstrated a significant impact on user engagement. Metrics collected post-launch showed a higher conversion rate amongst users who interacted with the chatbot than those who did not, indicating a positive reception and potential for further development.


Block IDE - Arcade Maker

Arcade Maker was an extension to the Block IDE, made as an attempt to provide a simpler entry point into game development where kids could develop and publish games without being forced to do any coding.

This extension allows declaratively specifying configuration variables, how they bind to the game code, as well as define the controls available in the user interface to modify those variables. Along with some other upgrades provided by this extension, developers are able to create new game templates that can be remixed by the end-user without having to touch any code.

My role was to architect the solution, develop the core features, and coordinate of the other Software Developer and the Game Design team who developed the game templates.


BYJU’s Coding Cup

The BYJU’s Coding Cup was created as a flagship product to represent BYJU’S role as an official sponsor of the FIFA World Cup Qatar 2022™. Targeted at children aged 7–18, this soccer-themed coding competition was designed to introduce key programming concepts such as conditional logic and debugging in an engaging, interactive format. By coding virtual soccer teams, participants could compete globally, enhancing their coding skills through a fun and educational experience.

From ideation to deployment, this project took around six intense months, with some shortcuts provided by being able to leverage parts of the game engine from Crystal Clash. The soccer matches were simulated as a discrete, grid-based environment, achieving a seemingly fluid game flow through clever interpolation of discretely computed states. The introduction of game mechanics like assigning skill levels to players added depth, influencing probabilistic events such as ball steals.

In my role, I was responsible for ideating the game, architecting the solution, coding the backend engine and APIs, and implementing the whole frontend except for the match rendering and some aspects of the character avatar rendering. This match rendering task was mostly fully handled by another developer, whose efforts I coordinated to ensure integration with the broader game infrastructure. Another key focus of mine was optimizing the game’s performance and layout so it could perform well in lower end mobile devices.

Successfully launched in time for the World Cup, the game was accessible via the web and integrated into Tynker Apps for iOS and Android through web views. It has since enjoyed widespread success, with millions of matches played across numerous rounds and a total prize pool exceeding $20,000 USD being awarded in the first four rounds.


Live Classes

The Live Class platform was a tool that enabled educators to conduct interactive coding classes with students. The platform integrated with Tynker tools such as the Block IDE and Tynker course content allowing teachers to seamlessly transition between live instruction and interactive coding exercises.

This requirement surfaced with the need to create a new product offering where we sold small course packages bundled with a number of scheduled lessons where an actual teacher would assist the student with that content.

My role was to quickly identify what the requirements for such an experience was, architect a solution and implement the full stack, backend and frontend as fast as possible.

The solution was deployed on schedule, with just a few minor hiccups mostly related to the video conferencing solution we integrated and a few cases of PEBKAC (Problem Exists Between Keyboard And Chair).


Quizzer

The Quizzer platform is a versatile quiz platform that supports building assessments that interleave multiple interactive quiz types using a simple unified content authoring format powered by MDX.

The need for building this system stemmed from the necessity of having more enticing and interactive quizzes that could be easily created and modified. Such quizzes would initially integrate into Tynker’s content progression system in the form of placement tests that onboarded new users into the right skill level, and later on as assessment tests that guardrailed if users were able to progress to the next education level.

This was achieved by using MDX for modularity, enabling Quizzer to seamelessly integrate with different components of the educational stack, including interactive coding exercises.

My role was to architect a solution and implement the full-stack, frontend and backend. Having also built a cross-platform native mobile prototype that ran on Android and iOS, built using React Native (the native mobile version was eventually backlogged and shelved due to a shift in priorities).

The solution was deployed on schedule, and remained a core part of content progression for the home user up to the day of this writing, with minimal maintenance requirements.


Coaching System

Combining the Collaborative Learning System features with the Live Classes platform, developed an integrated coaching management system that allowed teachers to monitor student progress, provide feedback, schedule lessons, etc.


Lynker

Lynker was a custom made real-time messaging server for Tynker, engineered to handle a wide range of planned feature releases, from live dashboard notifications to project collaboration and multiplayer game development. It was designed to be scalable, reliable, and secure, with a focus on performance and low latency.

I was responsible for the full stack development, from the initial architecture to the final deployment and post-deployment maintenance. It was successfully integrated into the Tynker platform, being used to power the Collaborative Learning System, the Live Classes platform and other features that required real-time communication.

In retrospect, it was over-engineered, as it was built to support a much higher throughput than it was ever required to handle, as some high throughput features like multiplayer game development were eventually backlogged and shelved due to a shift in priorities.


Collaborative Learning System

Using the Lynker messaging server I previously developed, augmented the Block IDE to have collaborative learning features, such as the ability to share projects, chat about them, comment on code, and monitor changes in real-time. This application was granted an U.S. patent.


Block IDE - Version 3.0

In a major six-month overhaul of Tynker’s Block Editor, the core of the educational platform, I independently rewrote most of the codebase and developed numerous features from scratch, focusing on scalability and future-proofing. To achieve this, I implemented an extension framework that encapsulated each code functionality into its own extension with a pre-determined lifecycle and declarative specification of dependencies, forcing separation of concerns.

Additionally, I utilized Redux to separate the UI State from the UI itself, which proved to be a good architectural decision alongside the extension framework and Redux Saga. The framework scaled well for new use cases, requiring minimal code changes across extensions to develop new features.

In retrospect, if at the time I was as comfortable with React as I am today, and version 16.8 was available, I would have opted for a PHP (mandatory) + React + EmotionJS + Extension Framework + Redux Saga stack; dropping AngularJS and Redux, and pushing to eliminate Redux Saga if I was able to keep the same level of modularity without it (it’s an amazing framework but has a steep learning curve, making it hard to onboard new developers).


Crystal Clash

Crystal Clash is a multiplayer turn-based battlebots game that allows players to code their bots using Tynker’s block-based programming language for competition in asynchronous matches. The game features monthly seasons, leaderboards, quests, and a shop where players can purchase new parts for their bots.

At its heart, Crystal Clash operates similarly to a complex chess game, set in an 8x8 grid arena where bots can move, attack, and deploy special abilities. Matches are resolved within a deterministic timeframe as the arena size decreases every few turns, aiming to be the last bot standing to win. The bots’ actions are dictated by player-programmed scripts, executed each turn, to navigate and combat within the game environment.

To accommodate the game’s asynchronous nature and the use of Tynker’s block-based programming language, whose existing VM was at the time tightly coupled to browser environments and legacy codebases, I developed a mirror server-side virtual machine with a subset of the language’s features. This VM processed the player’s scripts in order to compute the next game state.

Popular to the time of this writing, several million matches have been played across numerous seasons.


Minecraft Education Edition Integration

Integrated Tynker’s Block Editor into the Minecraft Education Edition app such that users could create and deploy mobs during game time by accessing a side panel with the Tynker Editor.


Mythicraft

Tynker’s Mythicraft is a creative and educational course designed to teach users how to mod their Minecraft world with a focus on mythological themes. It guides learners through the process of creating custom skins, magical items and blocks, and mythical creatures.

This was the first attempt at integrating the Minecraft Editor tool into the structure of a regular Tynker course, interweaving regular intro lessons with lessons that had to be performed in the Minecraft Editor itself. To do so, I had to integrate the tool into the course workflows such that it could be declared in the course data structures, launched when it had to, and inside the course frame, and support lesson completion detection to trigger a jump to the next lesson. Further performance improvements also had to be done in the editor to improve support in the native mobile apps, since this course was also available on them.


Minecraft Editor

Developed a web 3D editor for Minecraft Bedrock Edition, enabling customization of Skins, Blocks, Items, and Mobs. The editor featured texture editing and a block-based coding interface for Mob behaviors, inspired by Tynker’s visual programming language, translating user inputs into Minecraft’s declarative configuration files.

The project presented challenges in optimizing for performance on older iPad Mini models. Issues with low frame rates and sluggish interactions were addressed by reducing CSS layers and implementing stringent memory management strategies to mitigate unpredictable garbage collection impacts. These optimizations ensured smooth operation within memory limits and achieved optimal frame rates.

This tool was incorporated into the Tynker App and Mod Creator App, providing a robust platform for Minecraft customizations.

Popular to the time of this writing, several million assets have been created by users.


Tynker - PHP MongoDB ODM

Developed a custom MongoDB ODM for a legacy, unstructured PHP codebase to enforce object-oriented design principles. This initiative addressed significant code redundancy and facilitated the seamless transport of data and logic across the stack, which was previously unattainable due to a heterogeneous table-to-object mapping scheme and numerous database workarounds. Opting to create a tailored solution—completed in just a few days—yielded substantial long-term benefits, demonstrating remarkable return on investment through years of smooth operation with minimal issues.

However, this experience underscored the importance of cautious feature development aimed at masking structural deficiencies. While the custom ODM effectively abstracted certain data model flaws, it inadvertently reduced the urgency to address these underlying issues directly. This approach allowed the data model’s problems to persist and propagate throughout the stack, highlighting a critical lesson on balancing immediate solutions with the need for fundamental structural improvements.


Kaboom!

Kaboom! is a fast-paced revival of the classic “Lights Out” game for iPhone, iPad, Apple TV and Apple Watch.

Coordinated design and development of application. Developed some core parts of the application, reviewed and refactored incoming pull requests, simultaneously acting as developer, project manager and stakeholder.


Karl Kustomize

Karl Kustomize is an online store where the consumer can configure and purchase his own custom sneakers from Karl Lagerfeld (a major fashion brand).

Took on the role of Tech Lead, developing core features, controlling timeline, assigning tasks, reviewing and refactoring pull requests from other developers.


Lugar da Jóia

Lugar da Jóia is a chain of jewellery stores, and this was its first venture into selling their jewellery online.

Acted as both full-stack developer and as a coordinator of another developer and designer. Developed a wide set of features across the site, both in frontend and in backend (the later leveraging the existing infrastructure provided by Hive Solutions’ Budy e-commerce engine).


Windows Dev Center - App Middleware Partners

App Middleware Partners is a section of Microsoft’s Windows Dev Center that serves as a directory where Microsoft partners can advertise their middleware solutions.

In this project I handled communication with stakeholders, coordinated project design and development, and performed core development tasks. The most challenging part of this project was actually the social aspect. There was a lot of red tape to cut through in order to get hold of the required information to be able to integrate and deploy within the existing Microsoft infrastructure. This project started with a lot of unknowns that had to be solved by relentless cold calling different people on the organisational branch, in order to uncover the answer to all the questions. The project was delivered on time and on budget, against all challenges.


MYSWEAR - Harrods Holographic Pyramid

MYSWEAR deployed a stand at Harrods (one of the world’s most famous department stores, in London), where customers could personalize and order their own custom pair of shoes, while simultaneously visualising their customisation on a four-faced holographic pyramid in front of them.

Developed new mode of operation for the customizer already used in the MYSWEAR online store, where client browser instances could remote control viewer browser instances using real-time communication with Websockets. Also developed orchestrator in Python that monitored the communication channel to instruct in which mode the hologram should be at a given time (coordinating the different viewer browser instances).


MYSWEAR - iOS Demo

Single-handedly developed proof of concept native iOS application with the same shoe customization experience provided in the MYSWEAR website, but in a native app. Proof of concept was developed in record time and used for demo purposes successfully.


MYSWEAR - Online Store

MYSWEAR is an online store where the consumer can configure and purchase his own custom shoes from the SWEAR fashion brand.

Website was developed according to pre-existing design specs. Developed core features and coordinated work of other developers (assigning tasks, reviewing pull requests and refactoring code before merging).


SpeakWrite

SpeakWrite is an application where the user can record something he says, and have it transcribed to text within a short period of time (the recorded speech is sent over to human transcribers).

Fixed many critical bugs in several parts of the app. It was a challenging project because the existing code-base was very messy.


Details PAL

Details PAL is an iOS application that interfaces with a Bluetooth activity tracker you can place on your dog’s collar. With it, you can monitor your pet’s activity throughout the days, weeks, and months. It also has nutrition tracking features to help you track your pet’s food intake.

Developed application from top to bottom, playing pivotal role in handling communication with the manufacturers of the Bluetooth collars in China, developing for and testing various prototype versions, as well as giving feedback on required improvements.


Don’t Mess With Texas - Report a Litterer

Don’t mess with Texas is an app that allows you to report litterers to the Texas Department of Transportation’s Report a Litterer Program. You can either insert the details manually or by answering questions by speaking directly to your mobile phone.

Fixed bugs in several parts of the app and implemented new features. Challenging project because the existing code-base was very messy.


Energi Coach

Energi is an app to assist you in improving your work-life balance by suggesting scheduled breaks of different kinds and scheduling them on your calendar.

Work consisted in fixing tricky bugs in existing codebase for the iPhone and the Apple Watch.


TopShelf

TopShelf is an app that lets you order alcoholic beverages right from your phone and have them delivered quickly at your doorstep.

Developed iOS application and backend logic from top to bottom, also integrating with third-party fleet management service for delivery coordination.


TALKiT

TALKiT is a social media alternative to texting where you can share your experiences by making your voice heard. It allows you to share your experience by recording your voice, instead of typing text.


US Likey

Us Likey is a social network where people share the products, places, brands, foods and everything else that they like.

Fixed bugs in several parts of the app and implemented new features. This was a challenging project because the existing codebase was very messy.


WIN Atlas

WIN Atlas is a career guidance application that guides you by having you perform different types of quizzes and showing you career details about each job.

Developed app client-side and integrated with server-side implemented by in-house developers.


Knod

Knod is a media discovery social network where you rate Movies, Books, Songs, Games, etc., and get back recommendations based on your ratings and social circle.

I was involved in the bootstrap of the project and creating some core features for the iOS app. Later on I was moved to a more urgent project, and later came back to help out with other features and bug fixes.


ValetTab

ValetTab is an application that facilitates the valet parking experience in participating stands. With it you can checkin, notify that you’re about to checkout so that your car can be picked up, and pay for the parking right from your phone. Participating stands have the companion ValetStand app, that lets them keep track of parked cars, checkout requests and payments.

Fixed bugs in several parts of the app and implemented new features (mainly related with the payment steps). This project was challenging project because the existing codebase was very messy.


Academy Sports - LIVE FIT

LIVE FIT is a sports tracking application for the Academy Sports + Outdoors sports goods discount store chain.

This application integrated with MapMyFitness’ SDK to store and retrieve activity data from the MMF service. I was blocked by a lot of bugs that existed in the SDK at the time and ended up fully refactoring some sections of the SDK (with MMF’s permission) to be able to complete the application on schedule. They admired the quality of the code and the speed it was developed in and invited me back to develop some features in the official MMF app.


Active Heroes

Active Heroes is a charity helping Veterans, Active Duty Military and their families. With the Active Heroes app you can track your workouts and share them to help raise funds to support the foundation’s activities.

Fixed many critical and non-critical bugs in existing app. Challenging because codebase was very messy.


Furtile

Furtile is a social network that allows pet owners and breeders to connect in order to help pets find their perfect mate. Developed application from top to bottom (iOS and backend). Completed app in record time and released to the App Store.


Map My Fitness - Challenges

MapMyFitness was one of the first activity tracking applications, and ended up being acquired by Under Armour.

Implemented the Challenges feature, as well as the Weight and Sleep sections of the 24/7 tracking feature for the extremely popular Map My Fitness app (now a part of Under Armour). Map My Fitness is a huge app, with an enormous codebase, so it was a bit challenging to dig in and get stuff done, but nonetheless, the features were fully implemented and delivered on schedule.


Project Capture

Project Capture is an app where users can report UFO sightings.

This app was coded by another developer, and I just ended up doing many bug fixes on it.


Randid

Randid is a social networking app for iOS where users send a picture and get a random one back from other users.

I was sent into the project to help guide it back into a predictable path, and ended up developing part of the client side and most of the server side for the first version of the app.


WeGo

WeGo is a fitness tracking app that can interface with multiple low-budget hardware activity trackers.

Developed iOS application from top to bottom in record time, against every unexpected obstacle imaginable. Had to integrate five wearable devices, from different manufacturers, through Bluetooth and Audio Jack. The project was completely successful from an implementation standpoint, with every standing limitation being attributed to immutable third-party dependencies.


Clockadoodle

Clockadoodle was an iOS Alarm Clock with a lot of advanced features, such as Youtube Video Alarms.

I developed most of the application, however I didn’t end up completing it, as I was moved to a more important project.


China Pro Tools

China Pro Tools is a market analytics solution that provides decision supporting statistics related with exports to China.

Developed application from top to bottom in accordance to existing specs, and delivered exactly on schedule.


Discover Your City

Discover Your City is a travelling app for people interested in architecture, guiding users in various tours of buildings of different styles and architectures.

Implemented application from top to bottom in accordance to pre-existing design specs. The server-side included a backoffice where the application’s contents could me managed.


Rocklobby

Rocklobby is a music social network for artists, venues and fans. In it, you could follow artists, venues and fans, buy tickets for shows, review them, book venues for a gig, chat with people, and many other features. This was reboot of the previous mobile Rocklobby application I created for the same client. Later on he wanted to start the project again from scratch with a bigger and bolder vision.

Took on the role of Full-stack Developer (developed everything from top to bottom), Project Manager (coordinated designer and handled communication with client).


Rocklobby - iOS App

Rocklobby was a music social network for artists, venues and fans.

Developed the client-side (the iOS app), cooperating with another pre-existing developer that was developing the server-side. The iOS app was an existing codebase, but I had to throw it all away and start from scratch because it was in a really bad place. Application was delivered on schedule within estimated budget.


Fresh Deck Poker

Fresh Deck Poker is an online multiplayer Poker game with real cash prizes.

Developed various features for the administration game management backoffice (account management, game and table management, monetization, odds assignement, etc.). Some requests went beyond Django’s capabilities and resulted in me having to do some heavy-duty hacks to add those features (eg: monkey-patching).


Parfois B2B Portal

This was a portal for managing B2B communications and transactions for the PARFOIS handbags and fashion accessories brand.

I was contracted as a consultant to empower the company’s development team, getting them up to speed with the required technologies. I ended up filling the role of Tech Lead, leading the whole development team to finish the project on time, on what was a very tight schedule and a completely underestimated budget, by taking on all possible and available shortcuts I could find.


Bargania

Bargania was a Deal-a-Day service (Groupon clones) aggregation platform, where one could check out the latest deals from all main providers, sort them through different preferences, and receive a personalized newsletter with the offers most suited to the user’s profile.

Developed core features, and did copywriting and translation for the website and all associated media (eg: adverstising).


A La Carte

A La Carte was a restaurant search engine where you could search for restaurants that had a certain food, for a certain price, near your location.

Designed and developed all ETL components for the food indexing and search system. Created software for retrieval of information from wide array of heterogeneous data sources.


Mariachi

Mariachi was a cross-platform Shoot’em Up game aimed at mobile platforms.

Developed and implemented the game’s logic, model importation, and physics engine.


Panzerini

Panzerini was a Battlebots-like game built with Hive Solutions’ Colony Framework (a project I was also involved with) to present at the Sapo Codebits 2010’s 48-hour programming competition. In it, a developer could develop the Artificial Intelligence for his bot (this would be a Colony plugin), and drop it in the Panzerini arena, which lived in the web browser (no installed extensions required, it was just a simple webpage).

Developed some core features and artificial intelligence for some sample bots.


Schoooools

Schoooools provides personal and social learning spaces that empower collaboration between learners and their educators, namely parents and teachers. All school work is stored digitally, so parents can follow their children work, organize, and save it forever, so they can revisit it later, to learn, share or simply show it to the rest of the family or friends.

Developed core features (action tracking and analytics, as well as some classroom management features), and created mobile cross-platform application for the service (using PhoneGap).


Take the Bill

Take the Bill is an online invoicing solution that was to be a public service but ended up being used only in private clouds (including being the billing app used at Hive Solutions).

Developed some core backend features and frontend features.


Frontdoor

Developed back-end logic for online Point-of-Sale SaaS product using Python with the Colony Framework and its respective MVC stack. Also developed front-end for same system through extensive usage of JavaScript and jQuery to create a productive user experience.


Colony Framework

Colony is a modularity container where plugins can be deployed, loaded and unloaded in real-time, without rebooting the container.

Developed core technology for the framework, wrote technical documentation, designed marketing videos (storylines), comic books (storylines and sketches), and other copywriting efforts.


MCH Workflow Helpdesk Innovation

Worked in an academic-enterprise relationship to provide a functional knowledge management system for this organization’s helpdesk support team.

Part of a peculiar team of 11 people, hand picked for different personalities and skills. Assumed the role of “Coach”, bridging the gap between management and implementation.

Acquired great insights into management, social, and development workflow issues. Learned to embrace the different types of motivation strategies that guide the focus and work of different personality types.

The final product was successfully completed and deployed in the partner enterprise’s installations.


Nihonaid

Nihonaid was a tool I developed to assist in my learning of the Japanese language, namely to memorize the Kanji character set.

It presented the user with each character in order of complexity, and asked him for the meaning. The user then saw the meaning, and had to select how well he remembered it. The application would use this feedback and feed it into a Neural Network that kept track of how well the user knew each character, and decided when was the best time to present it to the user again.

This way, the software would only present the user with characters he didn’t know, or that the application predicted he would probably had forgotten by then. For example, it would present a character the first time, and if the user said he didn’t know the meaning at all, it would decide it would display it again in the next training session. In the next session the user could say he remembered it, and the application would decide to show it again in two days. In two days if the user remembered it again, then it would show it again in one week, and so on and so forth.

With this system in place, memorizing the characters was as easy as simply doing a daily session with the app, since it would make sure you didn’t forget the characters you had previously learned, by progressively building a model on how your learning and forgetting curve were.


Clube de Karate da Maia

Established the club’s presence in the World Wide Web, providing a way to get it closer to it’s members and the general public.

Solution was provided via a website implemented using the Joomla framework, using the PHP scripting language, and a MySQL database.

Learned to customize the Mambo/Joomla Content Management System to provide the functionalities a regular community website needs.


NeuralJ

NeuralJ was an open-source software project that aims at providing an efficient and user-friendly Neural Network library for Java.

Improved my knowledge on Neural Networks and Genetic Algorithms, as well as the skills in Java programming, and software architecture.


Clube do Paiva

Handled entire backend production of a website, web application and database programming. Solution was provided in the form of a web application implemented in the PHP scripting language, interfacing with a MySQL database.


European Student Moon Orbiter

Coordinator of the Software subteam, part of the On Board Data Handler team, for the European Student Moon Orbiter project.

This project is a part of the European Space Agency’s SSETI programme (Student Space Exploration & Technology Initiative), and aims at the deployment of a satellite in lunar orbit.

Amongst the lessons learned, the personal revalidation of the power of effective teamwork stands out.


Computer Capers

Computer Capers was a video game I developed when I was 12 years old and sent for a monthly competition on the Amiga Format magazine.

The whole game plot was incredibly dumb, which was natural for my age. The mechanics were very simple, you just walked around a tile-based world, talking to people who were looking for certain items, and when you found and gave them those items, they rewarded you with other items that other people were looking for, which let you advance the plot. The game graphics were created by me as well.


Misc