Senior Software Developer Resume
PROFESSIONAL SUMMARY
- More than 15 year experience developing software solutions by using the followings:
- Object Oriented Programming Experience - Java, Scala, Groovy, C#, C++
- Functional programming experience - Scala, Erlang
- Frameworks: Spring Framework, Play Framework
- Scripting experience - JavaScript, Groovy, Linux shell scripting
- Aspect Oriented Programming Experience - Spring AOP/Aspect J
- Testing tools/frameworks: Mockito, Goovy Spock, ScalaTest
- Java2EE applications - Spring including Spring Boot, Spring Data, and EJB
- Akka and Erlang actor model
- Multi-threaded applications - based on Java multi threading
- Concurrent, distributed, and reactive applications - Akka, Erlang
- Persistence frameworks - MadeForAll (my own social persistent framework initially based on C# and later switched to a mix of Java/Scala/Erlang )
- Cache management systems - MadeForAll caching subsystem - Erlang
- Web2.0 applications - SmartHippo.com, MadeForAll.org
- Deployment frameworks - ITAP Silanis - based on Groovy/Grails + Java
- Web Services & Restful applications
- Communication protocols - Implemented a proxy for POP3/SMTP - C#
- Parsing and language recognition - Scala parser combinators, ANTLR
- Database applications - DB2, MySQL, MSSQL, ORACLE
- Text based searching - Lucene (manifest strong interest in such systems)
- NOSQL - map and reduce based applications - Riak (manifest strong interest in such systems)
- UI based on HTML/Javascrip/Ajax - ExtJS, JQuery
- UI based on Java Swing
- 2D & 3D UI - (used Java2D & Java3D, and DirectX/Direct3D)
SKILLS
Programming Language and Frameworks: Akka Spring framework (Spring Boot, Spring Data, MVC, Authentication & Authorization, AOP, Messaging) Grail EJB 3.0 & older Mockito, Junit & TestNG + Hamcrest matchers Maven, SBT, Gradle .NET framework (ASP.NET, COM+, Win Forms, Web Services + WSE, ADO.NET, .NET Remoting, .NET Attributed Programming) Visual C++, Win 32 API, MFC, COM/DCOM, DirectX/Direct3D CSS & Javascipt (including Ajax) XML (XML/XSD/XPath/XSLT)
Unit Testing: Scalatest, Mockito, Jmock (Junit, TestNG) + Hamcrest, Perf4j Scala specs
Application servers: IDEs Eclipse, Intellij, NetBeans, VS.NET Source Code Management Tools Git, Subversion, Source Safe
Operating systems: Linux, Windows
PROFESSIONAL EXPERIENCE
Confidential
Senior Software Developer
Responsibilities:
- Design and implement different solutions based on micro-services as part of a project in the EDI domain using Spring Boot, Spring Data JPA, Spring JDBC Template, Groovy Spock among others
- Design, implement, and integrate various software components using Spring Framework, Apache Camel, Drools rule engine, Spring AOP, Apache CXF, IText and other libraries and technologies as part
- Accommodate/Update/POM cleanup of the existing projects to be part of the CI process using Nexus and Jenkins. Set up the Continuous Integration environments and processes using the Maven/Jenkins/Sonar/Nexus stack.
- Refactor the existent applications having as main goal to to be enterprise ready. The complexity of this task consisted in understanding the existent code base, understanding the application domain (Telecoms wireless domain including Radio Map, RRM, etc) and working with a big code base that was not meant to be easily scalable and maintainable. Among other technologies the application stack was mainly based on Springboot, RabbitMQ, and MongoDB. One of the major requirements was to preserve the backward compatibility.
- Analyzing and evaluating of different Reactive based technologies and working on different POCs (Proof Of Concepts) having as goal the selection of the most suitable one for their scalability related requirements.
- Creating/Working on the Software Requirements, Architecture & Design documents for the Application Scalability and Automation solution. Among other requirements the the chosen approach was based on AKKA.
- Designing and implementing the Application Scalability and Automation solution based on Akka technology stack. Some of the features of this solution included Fail over, elastic deployment, and resource monitoring
- Worked on other different automation internal tools for streamlining the software development related activities.
Confidential
Senior Software Developer
Responsibilities:
- Part of a team of 8 developers I was working on different highly transactional back-end modules using Scala/Java/Spring Framework/Intellij/Git among other technologies. The signed NDA does not allow me to reveal further specific details of my actual work.
Confidential
System Developer/Technical Lead
Responsibilities:
- Achieving a high degree of test automation, functional testing, test coverage, continuous integration, and gathering the performance testing metrics for all the company's products
- Leading and mentoring a team of 5 system developers to achieve all the above
- Creating the POCs (Proof Of the Concept), defining the requirements, specifications, assigning tasks to the team members, and developing the tools and frameworks used to achieve all the above
- Among other projects and tools the following two projects were my initiatives and were achieved by me and my team.
- This is basically a testing framework based on Scala Parser Combinators. It provides a DSLs for defining the Test Execution Work-flow and another one for defining the Validation Rules of the Work-flow execution steps used to test e-SEP which is the main product of the company. The framework also provides some DSL generic hooks that could be easily extended with new elements that were not introduced in the DSLs. Among others, many concern related to the automation testing aspects are done transparently by the predefined DSL elements. The whole automation process is heavily simplified by this framework.
- It is the place where all the automated tests are reporting their execution status. Among others it provides features like: Test Plan Coverage, Performance Testing reports, and it is supposed to also provides QA and performance testing metrics. The whole portal is using the Sring technology stack. Also, any automated test created by the above Scala Testing Framework could be scheduled for execution as a part of a test suite.
Confidential
Senior software developer
Responsibilities:
- Defining the architecture, design, and implementing the POC for a Scheduler/Notifier manager based on Quartz libraries. This module is part of product's stack of the company.
- After identifying some major deficiency of the processes of development, testing, test automation, and also the user experience in general and looking to improve them, I saw the necessity of creating a DSL for interacting with the main product of the company.
- Thus, in a very short time, I created such a DSL that was greatly and successfully adopted among people that were involved in the above mentioned processes.
- I created an equivalent web service based on document literal by using JAX-WS. The old web service was RPC/encoded based on a old version on Axis. I had to make some research to see how to assure a smooth integration, so both web services would be publicly exposed to the clients. Among others I also had to define the equivalent of an old WSDL and XSD based on Axis RPC/encoded, and also to create some adapters/convertors, thus the old and the new SOAP ports had to be exposed. There were many challenging tasks related to class loader order defined for different application servers like WebSphere, Jboss, and WebLogic.
- It is a module that is part of the main Silanis product. It basically works in a clustered application server environment. It has support for synchronization, persistence, and SOAP callback notifications among others
- Is a deployment framework that allows defining of a platform made up of a collection of virtual machines and a set of appliances that should be set up and run on them. An appliance is a abstraction that could be anything. Thus it could be a software component used to deploy an application on an application server, a test suite, or anything else that could possibly target a virtual machine.
- It is a complex system that has as goal the improvement of the test automation process.
- Java framework (Spring MVC), Groovy, and ExtJS javascript library for the frontend. The basic idea is to create and collect the basic functional tests that could be automatically targeted to a host where the main product of the company is hosted. It should also provide a library of such modules that could by accessed by other developers through a web UI (ExtJS is used as a javascript library for the front end)
- My role was to create ExtJS widgets that were used in a large WEB application. The whole application was 100% made in Javascript.
- I developed an automatic installer by using the IzPack product. Because the installation of the application should be made on different application servers (JBoss, WebSphere, WebLogic), the whole installation and deployment processes were done by connection to these app servers through JMX API.
Confidential
Senior Software Developer/Architect
Responsibilities:
- This is a community web site based on J2EE technologies. Some specific features are based on Ajax, EJB 3.0, XML and related technologies. My roles have included the defining of the application’s architecture, technical specifications, database design, deployment, testing, developing of some specific modules, and many other related tasks for the offshore developers. I have assisted the developers in the whole developing process and I have given them the needed technical support when necessary.
- One of my greatest professional achievements was to help get the company presents the product at Finovate, back in 2008. More details at the following ling:
- This is an application that could be set to act as a backend for one or more web sites and that is able to manage the Pay-per-click marketing campaigns (basically it is an AdServer). It is interfaced with Google analytics, CJ, and other financial institutions. The whole application is made in J2ee. I worked alone for most of the time and when I switched to SmartHippo project, we outsourced it. I am still responsible with its overall architecture and design.
- A mortgage biding system that is a platform for the mortgage brokers who can bid based on different criteria for their leads. The whole application is made in J2EE.
- I was the only architect and developer of this application.
- This is a PHP application that is interfaced with Galileo. So, its landing pages are closely linked with the available marketing campaign and ads that are served by Galileo. Galileo is used for optimizing of the revenues that are generated by the landing pages of this web site.
Confidential
Senior Software Developer/Team Leader
Responsibilities:
- This is a projects management system based on .NET technologies. I had the role of software architect, software designer and project leader (the number of persons involved into were about five and for these reasons my responsibilities were so varied).
- The main role was to define the concepts, the terms used into, the security model, the data model, the class interfaces, to implement some critical classes (I created a security model like the one used in Windows NT (I borrowed the concepts from here) - by mixing the .NET security with the ones specifics of the application). I created a security model of the application based on C# attributed programming.
- This is a content management system based on .NET technologies. The content is exposed by mixing the XML and XSLT technologies. All the administrative tasks (like creating a new site template, publishing of the new site pages, user administration etc) are achieved by using of the web services.
- The security of the web services it was assured by integrating of the Web Services Enhancements (WSE) into app. My role was to create the architecture of the application, to define the data model of the application, to integrate the WSE into, to create all the needed class interfaces/skeletons (including some UML diagrams). Also I had the role of the project leader having four persons (three C# developers and one Web designer) in my team.
- Also I created the security model of the application using the Windows Public Key Infrastructure (PKI) mixed with WSE.
Environment: .NET Technologies including ASP.NET, ADO.NET, Web Services, Windows PKI, WSE, SQL Server 2000
Confidential
Software Developer
Responsibilities:
- Basically this is an email client with some supplementary features that consist in searching contacts (based on some criteria), storing in a specific database format and using the Word app to edit the e-mail body etc. The database format used as storage support is centered on documents (Document Management System – this is a legacy system for each I developed this module). Also it was needed to implement a POP3/SMTP (by implementing of the RFCs for POP3/SMTP protocols) proxy for e-mails intercepting/storing into specific database (in case of working with others ordinary E-mail Clients).
- This tool was developed to allow programmatic changing of the settings used by Outlook Express and Microsoft Outlook. This tool is related to the above SMTP/PO3 Proxy Server app.
- This is a software component that can be used as a bridge between a proprietary data storage system and the user interface controls. This role is to provide a standard Data Set structure towards UI modules (based on tables/relations/constraints) and to abstract all the accesses with data storage from APIs UI point of view. The utility is that any .NET control can be easy bound through this adapter to internal representation of the internal OODB and any update operations against this OODB can be easy managed by this component (OODB – Object Oriented Database).
- This site was rewritten to be based on .NET technologies (The first version of the site was developed in ASP). I used C# programming language, ASP.NET, and ADO.NET technologies and as database server it was used MS SQL server. My responsibilities were to develop the user management and download mechanism modules of the web site. Also as collateral tasks I created the site menu based on XML/XSLT, the site navigation based on XML/XPATH etc. Also I wrote all the business logic in a manner that allows scalabilities features based on COM+ apps. I created a server ASP.NET grid control component that can be easy integrated in any ASP.NET page as custom user control and it include capabilities for adding/updating/removing records from data source at which this component is bound (this component will be rendered into HTML/Jscript on the client side. It is based on standard ASP.NET grid control).
Confidential
Software Designer/Software Developer
Responsibilities:
- My responsibilities were to create an engine for XML queries. These query formats was like XPATH. (I created some syntax like as XPATH for querying XML files).
- To make a query was’ t needed to load the entire XML file into memory (to create a kind of DOM representation of XML files).
- This site is a client-server application that assists several types of users in choosing the right insurance house, according to its location, income etc. The application was built using a mix of Java-based technologies, like Java Server Pages (JSP), Java Servlets and Java Applets.
- The client interface runs on any browser, while the administration interface requires a Java-enabled browser, the server side being based on Apache/JSERV on Linux operating system.
- At this application I worked together with an HTML designer and I used MySQL DBMS.
- Also it was needed to create the possibilities that all tables involved into this application to be easy administrated with any browser by using a Java applet. Because was necessary that this applet to work with HTTP-80 port only (administration capabilities behind firewalls was a request) I developed my own mechanism for serializing/deserializing java instances with by using HTTP POST method only.
Environment: Java-based tech including JSP, Servlets, Java Applets, MySQL, Apache, JServ