AAA_____
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Valentin Padurean<br />
Fullstack developer (Scala and JavaScript).<br />
38 Viitorului<br />
Sacele 505600, Brasov<br />
Romania<br />
(+40) 723 674 708<br />
vpadure@gmail.com<br />
https://github.com/padurean<br />
EXPERIENCE<br />
BITSoftware.eu, Brasov — Fullstack Scala & JavaScript<br />
developer (backend & frontend)<br />
January 2016 - Present<br />
Working on Paydemic.com (payment gateway + platform for magazines<br />
and newspapers to sell digital & printed content and subscriptions) and<br />
Plotto.com (web app for video surveys and online marketing campaigns):<br />
Coding AWS Lambdas in Scala behind API Gateway on the backend,<br />
SPAs UX design and implementation using JavaScript and React on the<br />
frontend.<br />
Eloquentix.com, Brasov — Scala developer (backend)<br />
May 2014 - May 2016<br />
- Working on a "Virtual Power Plants" (VPPs) web application for<br />
trading & dispatching of electrical energy on the german energy market<br />
& grid.<br />
SKILLS<br />
Functional programming<br />
Scala<br />
JavaScript<br />
LANGUAGES<br />
English (fluent written &<br />
spoken)<br />
French (needs some practice)<br />
German (beginner)<br />
- Due to legal & technical limitations of the markets (e.g. a minimum<br />
required energy production capacity of the plant), it makes sense for<br />
energy providers to associate and sell energy from several power plants<br />
as if a single plant was producing it. This tool allows one to create VPPs,<br />
which are abstractions of several real power plants into a single one.<br />
Application has a microservices architecture, components<br />
communicating with each other through REST APIs. I was mostly<br />
involved on three components:<br />
- DB Service<br />
- provides CRUD operations on a PostgreSQL database, but (not so<br />
fortunately) also some business logic.<br />
- Event Service<br />
- receives events from various other components, persists them<br />
through DB Service and dispatches them to subscribers using<br />
WebSockets<br />
- Notification Service<br />
- receives notification events from the Event Service component and<br />
transforms them into Email and/or SMS notifications based on
configured rules (e.g. based on user role notification type mapping)<br />
- Also got in contact (small tasks) with other components like:<br />
- Asset Engine<br />
- component responsible with monitoring and steering real power<br />
plants<br />
- featured a power plant state machine (e.g. in outage, delivering,<br />
returning to normal, ...), implemented at first with Akka FSM and then<br />
rewritten using just Akka Actor’s become / unbecome.<br />
- VPP Engine<br />
- component dealing with virtual power plants e.g. receiving<br />
commands to raise/lower the energy production, dividing the requested<br />
value unequally among real power plants and forwarding those<br />
commands to the real power plants.<br />
- All components were built on top of Scala & Play framework and were<br />
built using RX (Reactive Programming) concepts in order to have them<br />
as horizontally scalable as possible. To achieve this, any io-bound<br />
processing has been implemented as much as possible by "tell don't<br />
ask" asynchronous non-blocking principles and techniques, using<br />
Scala's Futures or RX based on the Monix framework or Akka actors.<br />
- Idiomatic functional programming in Scala was applied as much as<br />
possible to leverage the type-safety, conciseness, maintainability and<br />
readability of the codebase<br />
- For Scala coding style, we used guides / rules like the ones described in<br />
Scala best practices (https://github.com/alexandru/scala-best-practices)<br />
(also some from Databricks Scala style Guide -<br />
https://github.com/databricks/scala-style-guide)<br />
- The development methodology was Scrum & Kanban, adapted as<br />
needed for remote teams, using tools like Redmine, ScrumDo.<br />
- Continuous integration was achieved using Jenkins CI. Also, there were<br />
some ongoing changes which aimed to lead the deployment process to<br />
Continuous Delivery, using Docker-based deploys.<br />
- Technology:<br />
- Scala<br />
- Play framework<br />
- Akka<br />
- Hibernate<br />
- PostgreSQL<br />
- Flyway (for database migrations)<br />
- Monix (for reactive programming)<br />
- Junit, Specs2, ScalaTest
- sbt<br />
- Git, GitLab<br />
- Intellij Idea<br />
- OSX<br />
Siemens, Brasov — Java Developer (backend)<br />
December 2013 - May 2014<br />
- Worked on Soarian project for the healthcare sector, in a team having<br />
the main task to deliver medical data & in-app tools to manipulate it<br />
(e.g. synchronize the medicines list in the system with the latest list<br />
emitted by official entity in US each month)<br />
- Technology:<br />
- Java<br />
- GWT<br />
EBS Romania (meanwhile acquired by NTT Data), Brasov<br />
— Java developer (backend)<br />
December 2012 - November 2013<br />
- Java developer for EBS Romania & NTT Data Germany on the "Daimler<br />
CRM" enterprise integration project (middleware providing integration<br />
between several CRM systems among which SalesForce.com).<br />
- Technology:<br />
- Java EE 6<br />
- IBM WebSphere Application Server 8.5<br />
- Oracle Database 11g<br />
- "Extension Platform" proprietary enterprise integration framework<br />
(similar to Apache Camel)<br />
- WebServices<br />
- JMS using ActiveMQ<br />
- Maven<br />
- Jenkins CI<br />
- JUnit<br />
- Mockito<br />
- Eclipse IDE<br />
- Mylyn<br />
- SalesForce.com Enterprise & Partner APIs (SOAP).
Awinta GmBH, Brasov — Java developer (backend &<br />
frontend)<br />
March 2009 - November 2012<br />
- Ecommerce development (online pharmacies) using Java (Customized<br />
Apache Ofbiz framework), PostgreSQL, SOAP Web Services (Apache Axis<br />
1)<br />
- Development of JUMP n-tier application for pharmacies using<br />
proprietary J2EE framework based on JBoss & Sybase as RDBMS.<br />
- A desktop Java Swing-based client application addresses all business<br />
needs for pharmacies, like selling, stock management, price conditions<br />
and ordering medicines at suppliers.<br />
- Development of IntelliCleaner desktop application which allows the<br />
user to import data records either from files (csv, fixed-width format,<br />
excel), either directly from database tables (MySQL, PostgreSQL,<br />
HSQLDB supported) and then to perform fuzzy search operations on the<br />
imported data in order to find and eventually eliminate possible<br />
duplicate records.<br />
- Technology:<br />
- Java<br />
- Swing<br />
- MVC architecture<br />
- Apache Lucene<br />
- Spring<br />
- PostgreSQL<br />
- MySQL<br />
- HSQLDB<br />
- Hibernate<br />
- Development of Blistermed web application used in hospitals to create<br />
orders containing medication plans for various patients.<br />
- The client (frontend) communicates with backend processes which<br />
forward the orders containing medication plans to a robot which<br />
prepares the medication doses (also splitting pills) for each order.<br />
- Technology:<br />
- Struts 1<br />
- JDBC<br />
- DB2
LMS Intl. (meanwhile acquired by Siemens), Brasov —<br />
C++ developer (desktop app for CAE - simulation of structures)<br />
March 2006 - March 2009<br />
- Development of the simulation software L MS Virtual.LAB used in<br />
mechanical engineering for the pre & post-processing phases of<br />
structural FEA (Finite Element Analysis) .<br />
- Technology:<br />
- C++<br />
- CATIA V5 API / framework (app built on top of CATIA V5)<br />
Cambric Consulting (meanwhile acquired by Tata<br />
Motors), Brasov — PHP developer (backend & frontend)<br />
September 2005 - March 2006<br />
- Design & Development of intranet web applications used internally for<br />
resources management.<br />
- Technology:<br />
- HTML/CSS ○ JavaScript ○ PHP<br />
- MySQL<br />
- Photoshop<br />
Cambric Consulting (meanwhile acquired by Tata<br />
Motors), Brasov — CAD & CAE mechanical engineer<br />
January 2003 - September 2005<br />
- CAD (" Computer Aided Design") : mechanical design for automotive<br />
industry<br />
- Technology:<br />
- Pro/Engineer<br />
- CATIA V5<br />
- CAE ("Computer Aided Engineering") i.e. Finite Element Analysis<br />
(FEA): preprocessing, static and dynamic analysis and post-processing<br />
- Technology:<br />
- BetaCAE ANSA<br />
- MSC Patran<br />
- MSC Nastran<br />
- MSC Dytran<br />
Hip Media, Brasov — Web Design & integration<br />
March 2000 - December 2000<br />
- web & print layouts & ads/banners
- Technology:<br />
- Photoshop<br />
- Fireworks<br />
- Flash<br />
- integration & maintenance of web layouts (html/css/javascript)<br />
- Technology:<br />
- HTML<br />
- CSS<br />
- JavaScript<br />
- PHP<br />
EDUCATION<br />
Product Design @ Technological Engineering faculty,<br />
Transilvania University, Brasov, Romania<br />
www2.unitbv.ro/dpm<br />
1998 - 2003<br />
Mathematics & Physics @ ”Andrei Saguna” highschool,<br />
Brasov, Romania<br />
1994 - 1998