Mobile e blockchain developer, più assunzioni
Mobile developer, fullstack developer, internet of things developer, blockchain developer: sono queste tra le figure It più richieste dal mercato del lavoro. Il mobile developer è uno sviluppatore di App per il mondo dei devices mobili. Si occupa di sviluppare in linguaggio nativo (app sviluppate utilizzando il linguaggio di programmazione stabilito dal produttore del sistema operativo: Android, iOS, Microsoft) oppure su applicazioni ibride (sviluppo attraverso framework che permettono di interagire con i diversi sistemi nativi). E un profilo che deve avere una conoscenza dello sviluppo di applicazioni per iPhone e iPad utilizzando Objective-C/C++ con Cocoa. Deve avere esperienza nello sviluppo di sistemi multithreading, nella progettazione di Api Restful e nella implementazione di moduli client dedicati in linguaggio Objective-C. Infine, occorre una conoscenza dei principali meccanismi di distribuzione e fruizione di notifiche push, degli strumenti e delle tecniche per l’ottimizzazione delle performance di applicazioni in ambiente iOS/Android.
I Full Stack Developers sono sviluppatori di software che hanno una conoscenza a tutto tondo di sviluppo sia lato frontend, ossia la parte visibile dagli utenti e quella con cui essi interagiscono, che lato backend, ossia del funzionamento lato server e di interventi che non hanno impatti sull’interfaccia grafica, quindi su ciò che gli utenti vedono visitando il sito. Per essere un buon fullstack developer invece è richiesta esperienza di sviluppo software e conoscenza di: Node.js e Javascript lato server; framework per lo sviluppo di applicazioni web e strumenti come React Js, progettazione e coding di servizi web con Rest e Json, framework di test Javascript come Mocha, conoscenza di dbase non relazionali quali ad esempio MongoDB, conoscenza di C, C++, python, java. Occorre inoltre saper sviluppare le applicazioni mobili (Android e Ios), i servizi cloud computing Amazon AWS , Google Cloud , Microsoft Azure , Microsoft Cognitive Service.
Il blockchain developer è uno sviluppatore richiesto prevalentemente in ambito banking, che sviluppa sulla «blockchain», ossia una nuova tecnologia che, per sua natura, garantisce un elevato livello di sicurezza. Nata e legata alla storia del Bitcoin, attualmente, soprattutto le banche stanno adottando oggi questo tipo di tecnologia. Il blockchain developer deve essere laureato in triennale/specialistica in Informatica, Ingegneria informatica o corsi di laurea dal contenuto tecnico/scientifico affine; conoscenza di database relazionali e di quelli non relazionali, quali ad esempio NoSQL; conoscenza delle principali Blockchain open source e non, basi di crittografia e sistemi peer to peer; spiccata attitudine all’innovazione, ottima e diretta esperienza di disegno ed implementazione di metodologie DevOps di Continuous Integration e Deployment (CD) in ambienti di test e produzione, ottima esperienza di uno o più strumenti di Configuration Management e definizione di “Infrastructure as a code”: Terraform, Ansible, Chef, Salt, Puppet, AWS CloudFormation. Deve avere esperienza nel setup e nella gestione di uno o più CI/CD servers: Jenkins, Hudson, Travis CI;- Esperienza nell’utilizzo di SO Linux in ambito di produzione (Debian, Ubuntu, CentOS, Redhat,…); esperienza di setup ed ottimizzazione di Web Servers (Apache, Nginx,..); di setup ed ottimizzazione di stack LAMP. Occorre avere conoscenza ed esperienza di tecniche e sistemi di Caching HTTP (Varnish, Memcached, CDN) e di strumenti di Load Balancing (ELB, HAproxy, F5,….). Infine, deve avere conoscenza ed utilizzo di Database NoSQL (Redis, MongoDB, DynamoDB, ElasticSearch); conoscenza dei principali Database Relazionali: MySQL, Aurora, MariaDB, PostgreSQL, SQL Server,…) e della lingua Inglese.
L’Internet of things developers sono sviluppatori che mettono in relazione software, sensori, macchine, cose, persone e molto altro. L’Internet of things developer deve avere esperienza nell’utilizzo di moderni ambienti di sviluppo, versionamento e build; – Ottima conoscenza della programmazione Java;- Ottima conoscenza della programmazione JavaScript/TypeScript: Angular;- Ottima conoscenza della programmazione HTML5 e CSS;- Conoscenza dei protocolli IoT quali MQTT;- Conoscenza di piattaforme/tecnologie IoT quali Arduino, Raspberry, Beacon, Bluetooth, WiFi;- Conoscenza del framework Spring: Spring Boot, Spring Data, Spring Rest;- Conoscenza delle architetture cloud e della containerizzazione di micro-servizi: AWS, Docker, Docker Swarm;- Conoscenza dello sviluppo di applicazioni mobile.
Internet delle cose è un network di sensori, applicati su dispositivi di uso comune perfettamente integrati e continuamente connessi fra loro, che possono monitorare e gestire lo stato e le azioni di macchine e oggetti, ma anche il mondo naturale e le persone. Dotare di sensori gli oggetti è infatti una cosa che può essere fatta in ogni campo: negli edifici e nelle piazze delle nostre città, negli elettrodomestici, nei dispositivi medici o sportivi indossabili, nelle autovetture e nei mezzi di trasporto in generale, negli impianti e negli stabilimenti produttivi. Internet delle cose porta cambiamenti radicali nel modo in cui le imprese gestiscono i propri asset fisici, i consumatori curano la loro salute ed il loro benessere o come le città immaginano il loro futuro. Con l’introduzione e lo sviluppo di soluzioni Internet of things le aziende saranno in grado di sfruttare nuove opportunità di business e aumentare la quota di mercato. Infatti, la digitalizzazione agisce in modo da sfumare le differenze tra i fornitori di tecnologia e le stesse imprese clienti. Per esempio, coloro che costruiscono macchine, grazie a queste nuove soluzioni, possono creare nuovi modelli di business e trasformarsi a loro volta in fornitori di servizi in una miriade di combinazioni diverse. Intorno a questo tema si va creando una nuova e dinamica industry, sia di operatori tradizionali, sia di nuovi entranti.