Senior Java Developer on Keycloak (3 months): Keycloak was a project responsible with authorization and authentication of partner stores of an online bank. Worked on Java plugins with the purpose to enrich the JWT token with various claims. Used Java EE and Docker. Keycloak is an open-source authorization/authentication framework based on WildFly. Technologies and methodologies: Java 8, WildFly, Java EE 7, Keycloak, Docker, Junit 5, Mockito
Senior Java Developer & Tech Lead on Service-Terms-Vault (6 months): Service-Terms-Vault was a project deployed on AWS, which used Apache Kafka and AWS serverless technologies to store and serve service terms accepted by users. The application consumed events from Apache Kafka topics and wrote data into DynamoDB. This part of the project was implemented using Spring Boot and Spring Cloud Stream with Apache Kafka Binder. The API was exposed through API Gateway which acted as a proxy for DynamoDB and for Lambda functions. The infrastructure was scripted using SAM. During this project I've had the chance to continue learning interesting parts about AWS. Technologies and methodologies: Spring Boot, Spring Cloud Stream, Apache Kafka, REST, AWS (DynamoDB, Lambda, API Gateway, SAM), Gradle, Git, Intellij IDEA IDE, macOS, Agile/Scrum
At Yopeso I'm also responsible interviewing new colleagues and with the personal development plan of my actual colleagues.
The project called Trends focused on analysing the user acquisition flow related data took from the company’s reporting system. The user acquisition, billing, cancellation, refund flows were monitored on daily and weekly basis. The data were compared to the previous days / weeks using math and statistics fine-tuned by data analysts so the company could quickly have an insight of what's starting to go wrong. The reports were able to also the root causes of the found issues, because the application analysed also all their dependencies. The media buyers (our users) were able to see graphics in UI reing the evolution of all the monitored metrics and what are the values considered normal to them. I was responsible with architecture, technology stack, requirement clarification, as well with the implementation quality and team coordination for the given requirements. I implemented lots of major functionalities and peered with colleagues on most difficult tasks. Technologies and methodologies: Java 11, Spring Boot, Spring Security, Spring Data JPA, SQL, Liquibase, REST, AWS (EC2, SES, S3, Athena, SageMaker, CloudWatch, RDS PostgreSQL), JWT, JUnit 5, Mockito, REST Assured, Spring REST Docs, Gradle, Git, Intellij IDEA IDE, Linux (Ubuntu), Agile/Scrum
Android Developer on Addison Lee project (6 months) Android application for a taxi company. During this time, I've got the chance to refresh my Android skills and learned a bit of RxJava. I also helped the QA team and showed them how to use WireMock in order to be able to test various scenarios that could be performed only on live environments. My responsibility was to help out the android team with their tasks and also have an input and an eye on the application architecture during code reviews and to refactor to MVVM pattern and RxJava parts of the application. Technologies and methodologies: Android, RxJava, WireMock, Gradle, Git, Android Studio IDE, Linux (Ubuntu), Docker, Agile/Scrum, Java
Senior Java developer & Tech Lead on Omnia project (12 months): We built an online casino for our client. I had the chance to lead this project. I was in charge with all the technical details (security, session management, architecture, caching, technology stack, etc.) The actual games and part of the functionality was provided by a third-party gaming platform. We interacted with this platform calling their REST Api and receiving notifications from them through RabbitMQ. Being a middle layer, our role was to customize the product and to add features that kept the users engaged and motivated them to bring other customers. We were two developers building this Spring Boot application. To expose the server functionality, we decided to use GraphQL instead of REST. To call the REST Api exposed by the gaming platform we used Feign client. We stored the user's session in Redis cache, and we persisted our data using Spring Data JPA in PostgreSQL. The database migration was managed with Liquibase. From Spring Cloud Framework stack, we used Hystrix and Sleuth and we prepared the project for a microservice architecture. The project was deployed in AWS and beside AWS's Redis and PostgreSQL we used S3, SQS standard queues and CloudWatch. A good suite of REST Assured integration tests helped us to ensure the quality of the application. Technologies and methodologies: Java 8, Spring Boot, Spring Security, Spring Data JPA, SQL, PostgreSQL, Liquibase, Redis, GraphQL,RabbitMQ, REST, Spring Cloud (Feign, Hystrix, Sleuth), Microservices, AWS (Elastic Cache Redis, RDS PostgreSQL, S3, SQS Standard Queues, CloudWatch), REST Assured, Junit 5, Mockito, Maven, Git, Intellij IDEA IDE, Docker, Linux (Ubuntu), Agile/Scrum
SmartUp built an education platform as a product. Their customers could add their own content, create their channels for various topics and engage the people from their organization in a social learning process with not only mandatory courses, but also games, quizzes, leader boards, etc. AWS, Docker and Terraform were used to set up, automate and host the infrastructure of microservices which were Spring Boot applications. As a senior developer I implemented various tasks or researched technologies to find what's appropriate for the project. I set up the integration testing approach with REST Assured and Spring REST Docs to also generate documentation for the services. I chose JWT to be used for a secured communication solution between microservices and investigated Hazelcast to be used to distribute tasks between servers. During this time, I learned a lot about microservices and cloud in general and I updated my Spring knowledge. Technologies and methodologies: Java 8, Spring Boot, Spring Security, Spring Cloud (Feign, Hystrix, Sleuth, Consul, Zuul, Ribbon), Spring Data JPA, SQL, MySQL, Docker, Microservices, REST, JWT, AWS (S3, EC2, RDS MySQL), REST Assured, Spring REST Docs, Maven, Git, Intellij IDEA IDE, Linux (Ubuntu) Agile/Scrum
Cloud Troopers InternationalDecember 2013 - September 2016
ALTI project was a learning management system for Allegiant Airlines intended to be used internally by Allegiant for their employees. In order to change their current position within the company, the employees had to follow certain trainings and pass exams. Even to keep their current position there were recurrent trainings that had to be completed every 6 or 12 months. The technologies used were JAX-RS, EJB 3.1, JPA, MySQL, but beside these we used MongoDB for various features and JCR (Jackrabbit Oak) in order to manage versions of curriculums and training paths. For unit testing we used TestNG and Mockito. The team was composed of 4 (sometimes 5 when the workload increased) senior developers. As a lead, my responsibility was to ensure the quality of the code and the architecture of the project. I managed the code review process and I organised brainstorming meetings with our team members in order to find the best solutions for our project. I ed these solutions to the people that were concerned and together with the team we tried to give realistic estimates for the implementation. Technologies and methodologies: Java 8, Java EE 6 (JAX-RS, EJB 3.1), JPA, REST, SQL, MySQL, Flyway, MongoDB, JCR (Jackrabbit Oak), Arquillian, TestNG, Mockito, JBoss EAP 6.x, Maven, Git, Eclipse IDE, macOS, Agile/Scrum
Loyalty project had the purpose to offer a loyalty solution to Allegiant Airlines, which wanted to keep their customers happy and engaged, offering them bonus points according to the value of their purchases from Allegiant or their partners (hotels, rent a car companies or casinos from Las Vegas). Eventually the customers could create vouchers out of their bonus points and use them on the Allegiant's website. At the beginning, being the first Java developer in the company, it was very challenging to work alone on a project with close deadlines and technologies new to me at that time (JAVA EE 6 stack running on JBoss EAP 6.x), which were imposed by our client. Meanwhile, I had the responsibility and the privilege to recruit my colleagues in order to form a strong Java team of senior developers able to meet our client's expectations. The new team members came 3 or 4 months after my start and they found the messaging service configured and a good architecture in place, so they could have a quick ramp up on the project. The technologies used in this project were web services with JAX-RS, JMS with HornetQ later switched to ActiveMQ, EJB 3.1, JPA, MySQL, Arquillian for integration tests and JUnit with Mockito for unit testing. I liked to do pair programming with team members when we had interesting features to implement, and I also picked up tasks from our queue as any developer. Technologies and methodologies: Java 7, Java EE 6 (JAX-RS, JMS (HornetQ, ActiveMQ), EJB 3.1), JPA, REST, SQL, MySQL, Flyway, Arquillian, TestNG, Mockito, JBoss EAP 6.x, Maven, Git, Eclipse IDE, macOS, Agile/Scrum
Knowledge Now OperationsApril 2011 - November 2013
Kno (acquired by Intel) was an education software company on a mission to make learning more engaging and social. They delivered books enhanced with interactive features. The users could create highlights, bookmarks, notes, watch videos, interact with 3D models, take quizzes, sync content between devices and do many other things. Android (14 months): I was responsible with all the design and implementation of the back-end part of the application. On rare occasions I also worked on UI parts. I was involved in building the communication mechanism with our cloud (based on Rest WS). I created a framework to handle the actions received by the Android client (cover and book download, search indexes, license check, etc.). I also implemented the majority of these actions, dealing with unpacking, JSON parsing, data integrity checks and storing data in SQLite db and Android shared preferences. I set up the logging of the application using java.util.logging and integrated in it a mechanism for collecting statistics about the way our users used the application. One of my main responsibilities was the app upgrade, where I had to set up a solid infrastructure, because this part became tricky and hard to manage over the time. I also did a mechanism which created and restored database backups using the sqlite4java library. I built the client part of the sync feature offered by our application. The users were able to sync the content generated by them (highlights, bookmarks, sticky notes, web links, etc.) with other devices registered on the same account. The users could also publish their contents on specific books, to other users. This was a very interesting and complex feature and I am proud of the results of my work. Technologies and methodologies: Android, REST, Apache HttpClient, SQLite, SQL, Junit 4, Git, Eclipse IDE, Linux (Ubuntu), Agile/Scrum
Server side (18 months): I also worked on Cloud projects where I used Spring and RabbitMq. Our cloud had a distributed architecture, consisting of many small and middle size projects, which communicated through the RabbitMq's messaging system. These projects ran on Jetty web servers, used MySQL databases and were built with Maven. Besides the aforementioned projects, for about 4 months I worked on a project which had the goal to create a scheduler framework. I designed this with OSGi, using Spring Dynamic Modules and Quartz (which has good integration with Spring), so you could deploy new bundles reing tasks configured to run on a regular basis with cron expressions. All these tasks were using the services exposed by a core bundle. After some research I found Eclipse Virgo the most suitable web server for this project and this is what we used. Technologies and methodologies: Java 6, Java 7, REST, Microservices, Spring, RabbitMq, Jetty, SQL, MySQL, JDBC, OSGi, Spring Dynamic Modules, Junit 4, Mockito, Maven, Git, Eclipse IDE, Linux (Ubuntu), Agile/Scrum
Nokia Subscriptions Server project (24 months) - was responsible with subscription management, authentication, authorization and provisioning of users for Nokia Messaging. The persistence layer was implemented using both Hibernate and JDBC. I got good knowledge about the Hibernate framework, contributing to its integration in our project and converting legacy code from JDBC to JPA. I also got the chance to develop new interesting features. I enhanced my SQL related skills, especially Transact-SQL, working with Microsoft SQL Server 2005. We strove to write good quality code and unit tests, keeping the coverage on the code as high as possible. To accomplish this, we used the EasyMock framework to create mock objects. We had an effective code review process which helped us to discover problems as earlier as possible and encouraged us to learn from each other and follow the programming best practices. For the management of the software development process, we used the Agile SCRUM methodology. For version management we used Perforce. Technologies and methodologies: Java 5, Java 6, JAXB, JDBC, Hibernate, JPA, SQL, Microsoft SQL Server 2005, XML, Junit, EasyMock, Maven, Perforce, Eclipse IDE, Windows, Agile/Scrum
Siemens VDO (www.siemensvdo.ro)March 2006 - March 2008
The Volkswagen board computer. I was part of the Interior Infotainment Solution department. I worked on projects for Volkswagen board computer, being part of the Interior Infotainment Solution department. I was in charge of the Media package which was responsible for the management of all playback audio devices and browsing on the hard disk or other connected devices (like USB flash drives). I used Java and the OSGi component/service framework and Junit for unit testing. I also got the chance to work with an automated testing framework (TTCN-3) for an internal SVDO project, where I used Java, RMI and XML Technologies and methodologies: Java 4, Junit, RMI, OSGi, XML, TTCN-3, Ant, CM Synergy, Eclipse IDE, Windows
Ambo Consulting (www.ambo.ro)May 2005 - March 2006
National College "Vasile Lucaciu" (www.lucaciu.ro)January 2003 - January 2004
I taught seven high school groups of students, of which three of them were computer sciences classes. It was a pleasant experience that improved my ability to communicate and explain.
You need this profile next month?Contact us!
You’re about to be redirected to SkillValue
As Pentalog’s Talent Sourcing branch, SkillValue relies on a pool of 400,000+ Tech & Marketing Specialists – including 15,000+ Freelancers, a comprehensive catalog of IT assessments, available projects and job opportunities. Our SkillValue consultants are always ready and willing to help you boost your career.
Stay in the know with Pentalog tech & business updates
WHAT WE'RE ABOUT
Pentalog is a digital services platform dedicated to helping companies access world-class software engineering and product talent. With a global workforce spanning more than 16 locations, our staffing solutions and digital services power client success.