Alessandro Iob, Software Architect Developer in Klagenfurt, Austria
Alessandro Iob

Software Architect Developer in Klagenfurt, Austria

Member since July 8, 2013
Alessandro is a top freelance architect and developer with a number of skills. He has designed and developed API services, games, process automation systems, fault-tolerant distributed systems, and multi-platform applications. He has also reverse-engineered PLCs and interfaced with refrigerator systems.
Alessandro is now available for hire

Portfolio

Experience

  • Project Lifecycle 20 years
  • Full-stack 20 years
  • ETL Implementation & Design 15 years
  • Software Architecture 15 years
  • Cloud Architecture 12 years
  • Solution Architecture 10 years
  • Functional Programming 6 years
  • Microservices 5 years

Location

Klagenfurt, Austria

Availability

Part-time

Preferred Environment

OS X, Linux, VSCode, Git

The most amazing...

...software I've built is a multi-platform, multi-user, multi-tier, fault-tolerant distributed platform for process automation.

Employment

  • iOS Game Developer

    2009 - 2016
    Kismik
    • Founded my little game company to publish my own games for iOS.
    • Developed and published my first game, "Be2 - Escape from Pingland," which was featured in the "News & Noteworthy" section of the USA Apple App Store (and almost all the other app stores as well).
    • Created a custom game engine based on Cocos2D, with an integrated Lua scripting engine, in-app purchase support, level auto-reload from the external editor, a networked debugger and control system scriptable in Lua, and integration of various analytics/social libraries (Flurry, OpenFeint).
    • Developed a multi-platform custom level editor using Python and Qt. The editor can connect to a running game instance (simulator or device) and update levels/configurations as the game is running.
    Technologies: Objective-C, C, Python, Lua
  • iOS Developer

    2015 - 2015
    Westwing Home & Living GmbH
    • Integrated with the existing team and successfully converted and extended the company's iPad application to an Universal iOS 7/8/9 application using size classes, Auto Layout, and some magic.
    • Implemented unit tests for UI and business logic.
    • Performed daily code reviews.
    • Handled extensive debugging.
    • Implemented new UI features and animations.
    • Worked in an Agile environment.
    Technologies: Objective-C, Auto-Layout, Size Classes, Facebook SDK, REST APIs
  • Software Developer

    2015 - 2015
    Currency Cloud
    • Created the Python client SDK for the Currency Cloud platform.
    • Implemented unit, integration, and pep8 tests. Integrated with Travis CI.
    Technologies: Python
  • iOS Developer

    2015 - 2015
    Development Agency
    • Developed an augmented reality catalog for a light manufacturing company (Linea Light AR).
    • Handled catalog synchronization with a remote server: optimized updates and enabled downloading of required assets.
    • Implemented searchable catalog content. Used Realm.io for all database related tasks.
    • Handled positioning of augmented reality 3D assets on a 2D image acquired from the device camera.
    • Implemented pattern scanning and linking to a product's 3D asset or catalog entry.
    • Developed an action system to bind the MetaIO AREL scripting system to the internal application catalog API.
    Technologies: Objective-C, iOS SDK, Realm, MetaIO, AFNetworking
  • Software Architect, Developer

    2010 - 2015
    Freelance
    • Developed a multi-platform mobile application (using PhoneGap/Cordova and Sencha Touch) for operational instructions consulting and report input and submission by machine operators.
    • Developed an iOS application for the top soccer market news site in Italy.
    • Designed and developed the API service for a luxury hotel auction site (using Node.js). Supported clustering and managed authentication (local, Facebook), authorization (using roles), real-time auction notifications (via Socket.IO, Apple, and Google push notifications), payment processing, and back-office management. Stored all data in MongoDB and Redis databases.
    • Developed a multi-user ERP system for offer management, final accounting, company analysis, data collection, and visualization from external sources (accounting software, databases, custom APIs , web services, and PLC hardware). Used JavaScript/Sencha Ext JS for the single-page GUI application, and Python/web2py for the server.
    • Reverse engineered PLC code and developed data collection systems.
    • Configured and managed Amazon EC2 instances.
    Technologies: Objective-C, C, Python, JavaScript, SQL, Node.js, Ext JS, iOS, Core Data, JSON
  • iOS Developer, Back-end Developer

    2014 - 2014
    Drawp.it
    • Implemented new iOS client features. Refactored, extended, and debugged the OpenGL rendering system (Drawp).
    • Implemented the iOS asset storage and management system for offline and online modes, with content synchronization within multiple devices and with the back-end.
    • Added multiple signup/login support options (local, Facebook, Twitter) on the client and server. Implemented, refactored, and debugged the UI system and animations.
    • Implemented the shop website using jQuery and Django. Developed the user gallery management system and the product order/editing system. Used external APIs for payment processing (Stripe), tax calculation (TaxCloud), asset management (Parse), and photo/canvas printing and shipping (WHCC). (www.drawp.it).
    • Implemented the back-end administrative interface using Sencha Ext JS. Handled user and asset management, report generation, and usage analytics.
    • Implemented the server's asset management system, including caching, automatic asset generation, CDN support, integration with Parse and S3, and new asset rendering from shop orders (zoom, crop, rotation, color space adjustments, etc.).
    Technologies: Objective-C, iOS SDK, Core Data, OpenGL, Python, Django, MongoDB, Parse, S3, Stripe, Ext JS
  • iOS Developer

    2013 - 2014
    Sibyl Vision, Inc.
    • Developed an iOS real-time data visualization application interfacing with an external API server.
    • Made extensive use of Core Data with custom extensions like circular buffer records.
    • Interfaced with a remote REST service using AFNetworking and JSON data structures.
    • Developed custom widgets, like a hierarchical/expandable UITableView.
    • Created an extensively configurable application ready for branding.
    • Integrated Facebook, Twitter, and Google+ API.
    Technologies: iOS SDK, Objective-C, Core Data, Shinobi Charts, AFNetworking, Facebook SDK, Twitter SDK, Google+ SDK, Git, JSON
  • CEO, CTO

    1999 - 2009
    Startup
    • Designed and developed a multi-platform (Linux, OS X, Windows, Solaris, IRIX), multi-user (with RSBAC security), multi-tier (native graphical client using Python/QT, central configuration server, distributed agents, and collectors), seamlessly distributed (all the nodes were seen as a single machine/API) platform for process automation. Written completely in Python except for a few lines of C.
    • Managed a development team of six people scattered all over Europe.
    • Managed large deployments of our system (>500 retail points) while developing custom solutions like electrical spike prevention, refrigerator control, and remote PLC configuration and data collection.
    • Designed and implemented custom 3D visualization systems (using OpenGL) for real-time display of the operational status of production plants using data collected in real time from the plants' PLCs.
    • Developed a geographically distributed surveillance system featuring real-time video analysis for motion detection (with priority and inactive zones), sensors' data acquisition and analysis, and programmable custom response logic (email, SMS, lock activation, etc.).
    Technologies: Python, C, C++, Perl, SQL
  • Software Developer, System Administrator

    1998 - 1999
    Freelance
    • Developed software to optimize paper production planning and cutting for a paper mill company. Used a customized bin-packing algorithm to manage nine different variables. Reduced the planning process time from five or six hours to around five minutes while enhancing the paper/waste ratio to an almost constant 97% (3% up from the previous manual process).
    • Developed software tools used to control, integrate, and enhance the functionalities of not-interoperable systems like cash counters, electronic scales, and refrigerators.
    • Developed and published several extensions/libraries on CPAN for the Perl programming language.
    • Implemented IT basics and networks and taught programming courses held by European Community projects.
    • Managed a few Windows networks.
    Technologies: Perl, C, Assembly x86, SQL
  • Software Developer, System Administrator

    1997 - 1998
    Network Provider
    • Developed dynamic websites and eCommerce solutions using Perl.
    • Developed network management and data collection utilities used to facilitate network and client administration and billing.
    • Designed, configured, and administered database servers, web servers, file servers, proxy servers, and firewalls used by clients in both the private and public sectors.
    • Configured and managed international VPNs.
    • Configured and managed Linux, Windows, and Cisco networks.
    Technologies: Perl, C, SQL
  • Software Developer, System Administrator

    1992 - 1996
    Freelance
    • Co-developed a 2D graphic engine for the Commodore Amiga using a mix of C and Motorola 68000 assembly language. Used the engine to show advertisements and information.
    • Co-developed software to serve as a driver for the Commodore Amiga to control a massive display used for showing information/advertisement during public events.
    • Configured and administered MS-DOS and Windows 3.1 networks.
    • Developed software to perform data extraction and analysis from proprietary databases using Perl.
    Technologies: Assembly Intel x86, Assembly Motorola 68000, C, Perl

Experience

  • Be2 - Escape from Pingland (Development)
    https://github.com/alexiob/Be2

    My first commercial game! It takes the Pong game concept and twists it: you control the ball, not the paddle.

    This simple change opened a whole world of possibilities, as I was able to design levels that were inspired by games such as Breakout, Pitfall, Doodle Jump and many others. And as this was an escape game, I used as a baseline for the plot one of the best escape TV shows ever: The Prisoner!

    To implement all this design ideas I had to develop a custom level editor. Besides letting me draw the levels, it had also to let me implement Lua scripted logic for every single entity in the game.
    I wrote it using the marvelous Python and Python/Qt
    wrapper/library: this choice game me instant platform portability and a really fast development cycle.

    As rebuilding and deploying the game on the device was pretty long and boring, I made possible to control the game from the editor: level uploading, script tweaking and many other things were possible almost in real-time.

    The game become a little core wrapped by a Lua scripting engine with binding for almost every system functionality (graphics, sounds, music, in-app purchase, social functionalities), and a network-attached console to execute commands and load/save data from local or remote sources.

  • BidAway API (Development)
    http://www.bidaway.com

    When BidAway decided to re-design their product infrastructure I was contracted to design and implement an API service that would support the web interface, the iOS and Android applications and the back-office management applications.

    The main design request was that everything had to be managed by the API service only, while keeping the number of moving parts at a minimum.

    Auctions life-cycle, payment processing, real-time notifications (socket.io, mobile push notifications, email), CDN management and more had to be implemented in the API service.

    As the API had to be used by external developers (mobile apps) even before the service was finished, I had to implement self documenting APIs and stub data support. You can ask an API call do describe itself, its security roles, which parameters are required or not, parameters descriptions, etc. You can also perform a call to an API that it is not yet fully implemented, and you will receive some fake but valid data.

    I implemented the service using Node.js for performance, development, maintenance and deployment reasons.

    Some of the features I developed:
    - a persistent scheduler supporting distributed events
    - an attachment management system that is resource independent and that can manage data on different CDN systems
    - a few CDN drivers
    - a protocol independent mobile push notification service
    - an authenticated socket.io server with bi-directional RPCs.
    - payment processor system
    - automatic and transparent database reconnection

  • Devil Framework (Development)
    http://www.python.org/about/success/devil/

    I have architected (and was the lead developer) the Devil Framework as a platform where developers could easily create and deploy systems to collect, integrate, correlate, manage and visualize all information produced and consumed by heterogeneous networked hardware and software technologies.

    It started as a network security data integration system, but when we "discovered" that security is just another process, it evolved to a more general infrastructure for process management.

    It was used to implement management and plant integration solutions for business groups (manufacturing, distribution, etc.) with production and business units distributed all over the country.

    It was designed as two different but tightly integrated applications: the Application Server and the graphical Console.

    The Application Server, written in Python, provided an unified environment for data collection, analysis and archiving in a distributed system where each component was seen as part of a single "machine".

    You could perform authorized RPC calls to any node of the system from any node of the system, transparently. Configurations and plugins could be installed and propagated to any node of the system.
    The system supported permanent and intermittent connections between nodes and all data was transmitted over secure channels.

    The graphical user interface was written using Python and the Python/Qt library. Like the application server, also the user interface was dynamically extensible using plugins, and, once connected to one of the nodes, it become an integral part of the distributed RPC and node discovery system.

    All the custom user interface forms and scripts could be developed inside the console using an interactive graphical UI, like Visual Basic or a SCADA system. Once ready, they could be published live on the system for all the authorized users. The system supported scripts and forms versioning.

Skills

  • Languages

    JavaScript 6, TypeScript, Python, JavaScript, Elixir, Objective-C, C, Domain-specific Languages (DSLs), HTML5, SQL, Bash, SQL-99, Erlang (OTP), Lua, Assembler 68000, Perl, Erlang, Smalltalk, Go, Swift, Assembler x86
  • Frameworks

    Mocha.js, Phoenix, Express.js, XCTest, Core Data, iOS SDK, Ext JS, Cocos2d, Qt, Django, Web2py, Sencha Touch, RestKit, Flask, Phaser.io, Hapi.js, PhoneGap, Spark, Hadoop, Zope, Flutter
  • Libraries/APIs

    Redis Queue, Stripe API, Socket.IO, Node.js, CardConnect, Stripe, HTML5 Canvas, CocoaPods, jQuery, PyQt, AMQP, Vue.js, Slack API, Pandas, Vue.js 2, Core Animation, Twitter API, Facebook API, Google+ API, SpriteKit, ØMQ, PySpark, React, Apigee
  • Tools

    AWS SDK, GitHub, Docker Compose, Auto Layout, Pytest, Xcode, Git, Ansible, Vagrant, VirtualBox, Packer, RabbitMQ, Docker Swarm, AWS ELB, Subversion (SVN), Nginx, Adobe Photoshop, Gimp
  • Paradigms

    Back-end Architecture, Test-driven Deployment, Microservices, REST, Functional Programming, Continuous Deployment, Agile Software Development, Continuous Integration (CI), Event-driven Programming, Cross-platform, Model View Controller (MVC), Asynchronous Programming, Object-oriented Programming (OOP), Unit Testing, Test-driven Development (TDD), ETL Implementation & Design, Event Sourcing, Agile, Azure DevOps, ETL, Agile Workflow, Lambda Architecture, Distributed Programming, CQRS
  • Platforms

    Linux, iOS, Docker, Amazon Web Services (AWS), Heroku, Amazon Alexa, OTP, AWS Lambda, Nerves, Kubernetes, Parse, MacOS, AmigaOS, Apache Kafka, Azure, Windows
  • Storage

    AWS DynamoDB, Elasticsearch, AWS RDS, Redis Cache, Redis, AWS S3, SQLite, Realm, PostgreSQL, MongoDB, Cassandra, Memcached, Minio, EventStore, HDFS, Riak
  • Other

    Back-end, Billing Systems, NMI Payment Gateway, WebSockets, Network Programming, Unix Shell Scripting, ETL Development, ELT, Enterprise, Software Architecture, Apogee, Secure Containers, Code Reviews, Agile Deployment, Agile Sprints, Solution Architecture, Project Lifecycle, Interviews, Cloud Architecture, Full-stack, Trifacta, Trifacta API, Data Architecture, Industrial IoT, EventBus, User Interface (UI)
  • Industry Expertise

    Internet of Things (IoT)

To view more profiles

Join Toptal
Share it with others