Un parere in merito ad un'offerta di lavoro

126 views
Skip to first unread message

Nico Balestra

unread,
Jul 26, 2013, 5:57:38 AM7/26/13
to clojur...@googlegroups.com
Salve ragazzi.. 
Vi scrivo poiche' avrei bisogno di un parere da parte vostra e non posso concedermi il rischio di postere sul london-clojurians per ovvie ragioni (dimenticavo.. vivo a Londra :)

Sono stato contattato da un'azienda di betting (non sono ancora sicuro se sia 100% online..) relativamente alla possibilita' di essere assunto come Java/Clojure developer. Ovviamente questo per me sarebbe un sogno che s'avvera (anche se il mio ultimo contatto col mondo Java risale al preistorico 1.4).
Tuttavia volevo chiedervi: avete idea di che tipo di "challenges" andrei incontro dal punto di vista tecnico?
E soprattutto, (ignorando l'aspetto etico per un momento) sapete o credete se sia "sicuro" lavorare per questo tipo di aziende?

La domanda la pongo anche perche' avrei bisogno di un incoraggiamento e una spinta a rischiare visto che lavoro per un'azienda che da 1 mese é stata acquisita da Adobe e non so ancora se questa sia una cosa buona o no!

Vi auguro una buona giornata!

Nico

"It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures" - A.J. Perlis

Carlo Sciolla

unread,
Jul 26, 2013, 6:49:55 AM7/26/13
to clojur...@googlegroups.com
Ciao,

sembra una buona possibilita, Londra e' proprio la capitale europea per quanto riguarda Clojure!

Il giorno 26 luglio 2013 11:57, Nico Balestra <nicoba...@gmail.com> ha scritto:
Tuttavia volevo chiedervi: avete idea di che tipo di "challenges" andrei incontro dal punto di vista tecnico?
l'esperienza mia personale e' un po' datata, e risale al periodo in cui ancora clojure lo stavo imparando. Ma nel tempo ho raccolto un po' di esperienze da terze parti, e mi sentirei di elencare le seguenti major challanges / rischi (ordine sparso):

- test code coverage: checche' ne dica mastro Rich, i test aiutano molto in qualsiasi progetto non banale. L'approccio REPL based tende a ridurre gli effort spesi in test automatici, con effetti negativi immaginabili.

- clojure come specchietto per le allodole: in realta' il codebase e' al 99.9999% java, o l'azienda non considera di investire su clojure in niente che non sia un prototipo

 - gestire un codebase di dimensioni considerevoli: all'aumentare delle linee di codice, il rischio di avere una struttura non congrua dei namespace aumenta. Non essendoci un framework come l'OO a fare da guida, serve un po' piu disciplina personale.

- architetture esotiche: la disponibilita' ad adottare tecnologie nuove puo' generare mostri

E soprattutto, (ignorando l'aspetto etico per un momento) sapete o credete se sia "sicuro" lavorare per questo tipo di aziende?
i miei amici che lavoravano a betfair (che peraltro usa clojure abbastanza estensivamente, che io sappia) erano abbastanza contenti, come tutti quelli che lavorano in campo real time betting / trading, tecnologicamente molto interessante. Il settore in se' non e' sufficiente a dare una opinione.

My 2c,
c.

--
Carlo Sciolla

--==(A)==--
Linux User #372086
My personal blog: http://www.skuro.tk
Follow me on twitter: http://twitter.com/skuro
Fork me on Github: http://github.com/skuro
My LinkedIn profile: http://nl.linkedin.com/in/carlosciolla
--==(A)==--

Product Lead at Backbase - Next Generation Portal Software for Financials & Large Enterprises (http://www.backbase.com)

Luca Grulla

unread,
Jul 26, 2013, 7:19:06 AM7/26/13
to clojur...@googlegroups.com
ciao,

lavoro con Clojure da circa un anno e mezzo e dato che sono a Londra
pure io mi sembra il caso di condividere l'esperienza :-)

La domanda e': che tipo di problemi vogliono risolvere con Clojure?

Per data transformation e' perfetto, per altre cose non sono ancora
sicuro che sia il suo sweet spot.

Altra challenge e' la reale competenza del team: per aziende di
dimensioni medio/grosse c'e' il rischio che ci sia la decisione
"strategica" di migrare a clojure di un qualche C*O/Architect ma non
ci sono le persone in grado di usarlo in modo sensato. Come
conseguenza c'e' quindi il rischio di avere gia' un mostro di legacy
anche se la codebase ha meno di un anno di vita.

ciao,
Luca




2013/7/26 Carlo Sciolla <carlo....@gmail.com>:
> --
> Hai ricevuto questo messaggio perché sei iscritto al gruppo "Italian Clojure
> User Group" di Google Gruppi.
> Per annullare l'iscrizione a questo gruppo e non ricevere più i suoi
> messaggi, invia un'email a clojure-ital...@googlegroups.com.
> Per ulteriori opzioni, visita https://groups.google.com/groups/opt_out.
>
>

Nico Balestra

unread,
Jul 26, 2013, 7:28:17 AM7/26/13
to clojur...@googlegroups.com
Grazie a tutti per i feedback.
L'azienda in questione é una sorta di startup nel senso che é nata nel 1997 ma si sta ora stabilendo a Londra.
Il team é piccolo, solo un CTO e un Architect e nella job description viene mensionato lo sviluppo di piccole applicazioni interne.
L'architect sembra una persona in gamba e l'opportunita' mi sembra interessante poiche' credo mi darebbe l'opportunita' di riportarmi in carreggiata con molte technologie/metodologie visto che ho fatto il technical consultant per ormai troppi anni!
Onestamente tra tutte le cose citate c'e ne una in particolare che favoreggio ed e' : wilderness dei namespace. Anche lavorando per conto mio su progetti piccoli a volte ho la sensazione che separare correttamente il codebase nei namespaces giusti puo essere non-triviale. Ma questo é un aspetto che riguarda Clojure, non il lavorare in un'azienda di betting :)

Personalmente credo che acquisire esperienza come Clojure developer possa essere un grande passo per gli anni avvenire. Basti vedere l'influenza che stanno avendo i linguaggi di programmazione funzionali su quelli non funzionali (i.e. Java 8 :)

Ciao,
Nico

"It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures" - A.J. Perlis


2013/7/26 Luca Grulla <luca....@gmail.com>

Antonio Terreno

unread,
Jul 29, 2013, 2:10:01 AM7/29/13
to clojur...@googlegroups.com
La mia esperienza: 

Lavoro (a Londra) con Clojure da quasi sei mesi, stiamo riscrivendo un'applicazione java web classica (hibernate/oracle/spring) per uno dei siti di news piu' visitati al mondo.
Non e' molto, forse avrei bisogno di un anno per avere un parere completo, tuttavia posso dire di amare clojure come non abbia mai amato nessun altro linguaggio (in passato ho lavorato con java,C#,ruby,node.js). 

I punti salienti: 

- Fatica non da poco per spostarmi dal paradigma OO al paradigma FP, ma nel giro di un paio di settimane ero a posto
- Fatica non da poco per imparare ad usare emacs (e soprattutto i vari packages come nrepl, magit, etc) ma al momento e' il mio editor preferito, tanto che lo uso per html, css, orgmode (todos), ... 
- O tutto o niente, non credo sia una buona idea usare clojure senza emacs: si fa piu' fatica ma emacs aiuta e non poco
- Ho come l'impressione (molto personale) che per scrivere nei linguaggi sopra citati serva meno 'educazione' rispetto ai linguaggi funzionali, non fraintendermi, per scrivere buon OO ci vogliono anni di esperienza e molti libri letti, ma per scrivere qualcosa di sensato in FP ci vuole un po' piu' di cultura di base, da li a scrivere codice elegante.. beh vedremo... 
- Sono quasi sicuro al 100% che un team che non abbia un buon programmatore funzionale al suo interno non diventera' mai un team FP decente, ci vuole un senior, con cui fare pairing e con cui imparare i patterns/i trucchi/ecc (anche qui potresti dirmi che vale lo stesso per TDD o OO, ma credo che in questo contesto l'impatto sia piu' estremo)
- Clojure per noi sta funzionando molto bene sia sul lato trasformazione dati (leggi legacy db che va a finire in elastic search) che sul lato presentazione dati: sono convinto che la programmazione non sia altro che trasformazione dati, da righe di un db a documenti a pagine html
- apprezzo specialmente la dinamicita' del linguaggio con i vantaggi della compilazione (compile check, code completition) 
- apprezzo che il buono del mondo java sia fortemente presente (la jvm, librerie, memory model) ma allo stesso tempo assente (spring, enterprise fat frameworks/tools) 
- Il discorso Test e' forse OT qui, sono in generale d'accordo con Rich Hickey e noi facciamo molto repl-driven coding ma abbiamo speso molto tempo a scrivere una suite di tests (usando midje & enlive) che controlla che il sito che stiamo riscrivendo abbia la stessa struttura (DOM+dati) di quello vecchio (stiamo cambiando 'solo' il backend)

Chiudendo il discorso Clojure:

- Sull'azienda: se acquisita da adobe e se fa ancora applicazioni in flash, lascerei perdere, il fatto che sia di betting non mi disturberebbe piu' di molto, alla fine per te e' una challenge come hai scritto e un'ottima scusa per spostarti 
- Come ha già' scritto qualcuno nel thread, ho anche io l'impressione che i recruiters mettano la keyword /Clojure per attrarre persone, se non c'e' un piano serio di passare a Clojure ma e' un po' vago lascerei perdere: specchietto per le allodole. 
- Non mi limiterei ad una sola opzione (tempo permettendo), proverei a cercare qui: http://functionaljobs.com/ , non hai esperienza clojure/functional ma puoi sembre provare a cercare per qualche internship program per farti le ossa 
- Iscriviti alla ML di clojure: https://groups.google.com/forum/?hl=en#!forum/clojure c'e' un vecchio post su Clojure in Production che non e' male per capire dove viene utilizzato: https://mail.google.com/mail/u/0/#search/label%3Alists-clojure+production+projects/13f300f8d7c8c4ef
- Londra e' bella, soprattutto quando ci regala un mese di estate come quest'anno ;-) 

In bocca al lupo!

Antonio

Manuel Paccagnella

unread,
Jul 30, 2013, 6:07:22 AM7/30/13
to clojur...@googlegroups.com


Il giorno lunedì 29 luglio 2013 08:10:01 UTC+2, Antonio Terreno ha scritto:
La mia esperienza: 

Lavoro (a Londra) con Clojure da quasi sei mesi, stiamo riscrivendo un'applicazione java web classica (hibernate/oracle/spring) per uno dei siti di news piu' visitati al mondo.
Non e' molto, forse avrei bisogno di un anno per avere un parere completo, tuttavia posso dire di amare clojure come non abbia mai amato nessun altro linguaggio (in passato ho lavorato con java,C#,ruby,node.js). 

I punti salienti: 

- Fatica non da poco per spostarmi dal paradigma OO al paradigma FP, ma nel giro di un paio di settimane ero a posto
- Fatica non da poco per imparare ad usare emacs (e soprattutto i vari packages come nrepl, magit, etc) ma al momento e' il mio editor preferito, tanto che lo uso per html, css, orgmode (todos), ... 
- O tutto o niente, non credo sia una buona idea usare clojure senza emacs: si fa piu' fatica ma emacs aiuta e non poco
- Ho come l'impressione (molto personale) che per scrivere nei linguaggi sopra citati serva meno 'educazione' rispetto ai linguaggi funzionali, non fraintendermi, per scrivere buon OO ci vogliono anni di esperienza e molti libri letti, ma per scrivere qualcosa di sensato in FP ci vuole un po' piu' di cultura di base, da li a scrivere codice elegante.. beh vedremo... 
- Sono quasi sicuro al 100% che un team che non abbia un buon programmatore funzionale al suo interno non diventera' mai un team FP decente, ci vuole un senior, con cui fare pairing e con cui imparare i patterns/i trucchi/ecc (anche qui potresti dirmi che vale lo stesso per TDD o OO, ma credo che in questo contesto l'impatto sia piu' estremo)
- Clojure per noi sta funzionando molto bene sia sul lato trasformazione dati (leggi legacy db che va a finire in elastic search) che sul lato presentazione dati: sono convinto che la programmazione non sia altro che trasformazione dati, da righe di un db a documenti a pagine html
- apprezzo specialmente la dinamicita' del linguaggio con i vantaggi della compilazione (compile check, code completition) 
- apprezzo che il buono del mondo java sia fortemente presente (la jvm, librerie, memory model) ma allo stesso tempo assente (spring, enterprise fat frameworks/tools) 
- Il discorso Test e' forse OT qui, sono in generale d'accordo con Rich Hickey e noi facciamo molto repl-driven coding ma abbiamo speso molto tempo a scrivere una suite di tests (usando midje & enlive) che controlla che il sito che stiamo riscrivendo abbia la stessa struttura (DOM+dati) di quello vecchio (stiamo cambiando 'solo' il backend)


Scusate l'OT, ma voglio ringraziare Antonio per la aver portato la sua esperienza. Per me come credo per altri è molto preziosa.
 
In bocca al lupo!


Quoto!

Nico Balestra

unread,
Jul 30, 2013, 6:21:47 AM7/30/13
to clojur...@googlegroups.com
Grazie per il feedback Antonio.
Credo che l'azienda in questione stia cercando un programmatore Clojure per piccoli progetti interni. Credo che questa possa essere una grande opportunita' per "entrare" nel mondo Clojure. Il Software Architect é una persona molto preparata e lo riterrei uno dei "masters" di Clojure qui a Londra pertanto dal punto di vista dell'adozione di Clojure non avrei nessun dubbio sul fatto che realmente cerchino un programmatore Clojure "puro" (scusate le ripetizioni :).
Sono un po nervoso per il fatto che l'intervista telefonica si basera' sul testare le mie conoscenze di programmazione concorrenziale.. in Java! 
Purtroppo l'ultima volta che ho programmato in Java, Struts era il framework MVC de-facto.. e ho detto tutto :)
Finche' la conoscenza di Java sara' un pre-requisito nella ricerca di un lavoro come Clojure developer, la vedo molto dura.
In tutti i micro-progetti con cui ho giocato, non ho mai sentito l'esigenza di dover implementare niente in Java ma capisco che in progetti commerciali, Clojure rappresenti solo uno dei tanti layers ed é pertanto necessario "sporcarsi le mani" con Java.

Forse dovrei convertirmi ad Haskell visto che in quel caso.. dovrei conoscere solo Haskell :)

Buona giornata a tutti!!
Nico

"It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures" - A.J. Perlis


2013/7/30 Manuel Paccagnella <manuel.pa...@gmail.com>

--

Nico Balestra

unread,
Jul 30, 2013, 9:10:24 AM7/30/13
to clojur...@googlegroups.com
Intervista fatta!
Ovviamente é andata bene sul lato Clojure (anche se avevo dimenticato che il destructuring si possa applicare a tutte le strutture sequential).
Tuttavia.. lato Java molto male (Mai usato l'interfaccia Callable sfortunatamente :( ) e davvero non so se voglio spendere le mie serate di tempo libero a studiarmi Java per poter lavorare in Clojure. Il tempo (libero) é pocco e lo voglio sfruttare per fare cose che adoro (anche se un tempo amavo Java).

Come dicevo prima.. forse mi devo dedicare a Haskell se voglio lavorare con linuaggi FP :)

Buona serata a tutti!!

Nico

"It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures" - A.J. Perlis


2013/7/30 Nico Balestra <nicoba...@gmail.com>

Nico Balestra

unread,
Jul 30, 2013, 9:11:17 AM7/30/13
to clojur...@googlegroups.com
Perdonate la grammatica (uso sempre meno l'Italiano scritto :)
>... anche se avevo dimenticato che il destructuring si potesse applicare a tutte le strutture sequential).

:)

Manuel Paccagnella

unread,
Jul 30, 2013, 4:51:59 PM7/30/13
to clojur...@googlegroups.com
Perdonami Nico se dico cavolate, ma credo che una ragione per cui un po' di conoscenza di Java è utile è che Clojure è progettato per essere un linguaggio hosted e non tenta di nascondere le caratteristiche dell'ambiente di runtime ospitante. Fin'ora non ho lavorato su progetti grossi in Clojure nel mio dayjob ma credo che per trarre vantaggio delle innumerevoli librerie scritte in Java là fuori (magari ancora da wrappare in Clojure) o per interoperare con componenti legacy, conoscere il linguaggio sia utile. Tantopiù se già hai lavorato con Java anche se parecchio tempo addietro, sei avvantaggiato.

E poi, esiste sempre ClojureScript ;)

Ad ogni modo, ti faccio i miei migliori auguri per trovare un lavoro che ti soddisfi appieno!

Manuel
Reply all
Reply to author
Forward
0 new messages