CTO and Software Architect
2017 - PRESENTTask & Time- Designed and implemented the company's main product back end from scratch.
- Designed and implemented the data model making it use both Hibernate and MongoDB (hybrid data model).
- Implemented a complex task schedule optimization algorithm.
- Created an Angular web application for the company's first product which accesses the main back end.
- Designed the second product's data structures and API endpoints.
- Managed a team of two other developers and a QA remotely with scrum sprints.
Technologies: SQL, Docker, Spring REST, JUnit, Git, Kotlin, Ionic, Angular, MongoDB, MySQL, Hibernate, Spring Boot, JavaBack-end Software Developer
2018 - 2018Tremor- Refactored all the REST endpoints in order to decrease their amount of code and readability.
- Converted all the hardcoded failure entity returns into exceptions, for which I implemented a handler.
- Moved a few enumerations declared as DB tables to be actual java enumerations properly mapped and referenced in JOOQ.
- Unified several services with duplicated code, as well as their DTOs.
- Created a integration test suite with mockMvc and EmbeddedPostgres.
- Implemented several endpoints, features, and tests on demand.
Technologies: SQL, Docker, Spring REST, Git, PostgreSQL, JOOQ, Spring Boot, JavaSoftware Architect
2017 - 2017Apoyo al Estudio- Designed and implemented the company's main product back-end from scratch.
- Designed the API endpoints and worked alongisde the front-end developer.
- Designed the product's data model and implemented it with Hibernate.
- Implemented Spring Service unit tests.
- Implemented Spring Controller unit tests with MockMvc.
Technologies: SQL, Docker, Spring REST, JUnit, Git, Kotlin, MySQL, Hibernate, Spring Boot, JavaSenior Software Engineer
2016 - 2017Operartis- Converted from a database access singleton to DAOs using JDBC.
- Reorganized project packaging and dependencies with Gradle.
- Created in-memory data managers for fast data lookup.
- Implemented a filter framework so in-memory data could be filtered according to a flexible set of conditions, using binary searches.
- Wrote a set of JavaFX applications for data display.
- Converted the whole project into a Spring back-end.
- Created a web app interface using Angular 4.
Technologies: SQL, Docker, Spring REST, JUnit, Git, JavaFX, Kotlin, Hibernate, Angular, Spring Boot, Gradle, MySQL, JavaBack-end Software Developer
2015 - 2017James Evans and Associates- Created a tool which would parse testing spreadsheets and create thousands of JUnit tests from that data.
- Gave JSON format export to the unit tests tool.
- Developed back-end modules of a Spring enterprise project.
- Created DB entity DAOs with MyBatis.
- Maintained a user interface project with JavaFX.
Technologies: SQL, Spring REST, JUnit, EasyMock, Oracle, MyBatis, Spring, JavaSoftware Architect
2015 - 2016Synesthetic Visuals- Created a graphical interface which would create customizable 3D letters in a canvas. The 3D view is surrounded with controls to perform a big set of different modifications to the letters, as well as animations. See https://youtu.be/9S6HEWf_gHI.
- Combined java Swing with JOGL in order to display the 3D canvas in the center of the app.
- Created a 3d engine and its shaders, including geometry shaders and shadows.
- Handled over 50 different settings and configurations for the displayed results.
- Created an animation editor in which you could set keypoints for every configuration on any point in time.
- Implemented a render animation functionality which would store the result in a high quality video file.
Technologies: SQL, Git, OpenGL, Swing, JavaFounder
2011 - 2016L2Tenkai- Hosted and maintained an open-source MMORPG server.
- Developed the server-side of new game features, which included all the client-server communications and logic, as well as designing the best way to fit them in the existing architecture.
- Refactored more than twenty core modules of a big existing codebase (over 2,000 classes).
- Created a development tool in Java Swing to manage and bulk edit static data with ease, which drastically increased the team's development speed.
- Created a game launcher in C# which handled the authentication communicating with a PHP API, which at its end communicated with the Java game server.
- Led a team of up to three developers and eight community managers.
Technologies: SQL, Git, JavaFX, Kotlin, Windows Server, PHP, C#, MySQL, JavaAdministrator and Developer
2007 - 2012L2TnS- Hosted and maintained an open-source MMORPG server.
- Synchronized the software with the project’s repository frequently.
- Developed and maintained the home website, which displayed in-game real-time data.
- Created an in-game events engine with high scalability.
- Administrated a MySQL database with over eighty tables.
- Led a team of up to two developers and five community managers.
Technologies: SQL, Windows Server, PHP, MySQL, Java