Skip to content

Instantly share code, notes, and snippets.

@4gus71n
Last active June 23, 2016 00:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 4gus71n/c44fd08f4f23da4dac134fe025a311a8 to your computer and use it in GitHub Desktop.
Save 4gus71n/c44fd08f4f23da4dac134fe025a311a8 to your computer and use it in GitHub Desktop.
Curriculum extendido
Desarrollador Java con experiencia en SpringMVC, Hibernate y tecnologías moviles (Android, Phonegap / Apache Cordova, Xamarin).
He trabajado con Spring construyendo aplicaciones web utilizando la arquitectura RESTful. He trabajado con tecnologías que siguen el modelo MVC (SpringMVC), MVP(GWT) y MVVM (Angular.js).
Las aplicaciones frontend que desarrollo son principalmente aplicaciones Android o clientes completamente stateless implementados con HTML y Javascript, en el caso de que el SEO no sea indispensable. Prefiero implementar clientes que sean completamente stateless debido a que facilita la introducción de nuevas características, principalmente el desarrollo con Angular.js. Además desarrollar un cliente stateless y no uno MVC, simplifica la migración de la aplicación a plataformas mobiles usando tecnologías como Apache Cordova. Siempre y cuando la lógica detrás de la aplicación no sea muy sofisticada, creo que es mucho mejor desarrollar un cliente web y portarlo a diferentes plataformas usando Apache Cordova.
Desarrollo clientes Android para aplicaciones web RESTful. Desarrolle aplicaciones que usan servicios corriendo en background en el dispositivo. Uso varias de las mas conocidas librerías de Android, para persistir, cachear datos o realizar peticiones HTTP a un servidor.
Comence a desarrollar Android apps en la epoca de Android 2.2 (Froyo) y he seguido la evolución de Android hasta hoy en día (Marshmellow). He desarrollado apps con diferentes arquitecturas bases. He desarrollado apps que siguen un patron MVP, generalmente usando librerías como Dagger para hacer el inyección de dependencias y unir los diferentes componentes de la app. También he usado Lightcycle (la librería que recientemente libero SoundCloud) para desacoplar los Fragment/Activities en diferentes clases. Trabaje con proyectos que usaban RxJava, aunque no soy fanatico. Sigo estrictamente todas las reglas de Material Design. Siempre trato de mantenerme actualizado y usar los ultimos componentes de la SDK de Android, por ejemplo, solamente uso RecyclerViews, no uso ListViews, solamente uso Toolbars, he trabajado con diferentes componentes para lograr implementar una optima UX, CoordinatorLayout, Floatin Action Button. Trato de mantener las aplicaciónes que hago simples, sin introducir demasiadas librerías mas que las necesarias. También es una obsesión mia tener el código de mis apps, excesivamente legible, //regions, JavaDoc, nombres excesivamente explicitos, cualquier cosa que ayude a mis colegas a entender mejor mi código es bienvenida.
En cuanto a plataformas de integración continua, he trabajado con Jenkins, TeamCity y ultimamente (y mi favorito actual) Bitrise. Armar una plataforma de integración continua que le permita a los desarrolladores codear sin problemas, a los QA testear sin vueltas y tener todo completamente automatizado es algo que realmente disfruto y me hace trabajar con una enorme satisfacción. He integrado estas plataformas con diferentes tecnologias como Gmail, Slack, Github y Gitlab.
En cuanto a versionado de código, la gran mayoría de los proyectos en los que he trabajado (si no es que todos) los he manejado con Git. Siempre prefiero usar la versión de lina de comando de git porque me permite moverme mas rapido y commitear, pushear o bajarme el código de manera mas rapida. No soy un mago de git pero me manejo bastante bien, no es nada extraño para mi aplicar un hotfixes directamente a master (aunque no es lo ideal :P) o moverme entre branchs stasheando código.
En cuanto a estategias de branching, el modelo usual con el que suelo manejarme en mis proyectos es tener un branch de development (a veces también llamado alpha o feature), donde se pushean continuamente los Pull Request con nuevas funcionalidades, una vez que hay que hacer una beta release, se hace un Pull Request de development a beta, y finalmente cuando se tiene una nueva release se hace un pull request de beta a master. Obviamente esto va de la mano con las plataformas de integración continua para automatizar estas tareas, envio de los deploys a los QA, subida automatica de los deploys a los diferentes stores, etc.
En cuanto a administración de los proyectos o issues tracker he usado Jira, Trello, Redmine, siempre prefiero e incentivo que en este aspecto el proyecto se simplefique al 100%. No hay nada mas irritante que tener 10 canales de comunicación para comunicarse en un equipo de 4 personas. Siempre he creido que en esto juega un rol fundamental Slack, ya que es el pegamento que centraliza todas estas herramientas, meetings con clientes o miembros del equipo pueden ser recordadas por Slack, nuevos deploys pueden ser distribuidos por Slack, cuantas menos ventanas uno tenga que mantener abiertas en el browser y mas uno se pueda dedicar a hacer lo que le gusta, más se disfruta el trabajo.
También tengo experiencia con PHP haciendo webscrapping para crear o mejorar bases de datos y en el desarrollo de frontend con CodeIgniter.
En cuanto a ingles he trabajado con varios devs de EEUU, también he tenido meetings con cientes de EEUU en diferentes proyectos
y ya sea hablar formalmente o comunicarme con otro desarrollador usando tecnisismos, no tengo ningún problema, me puedo hacer entender y puedo entender lo que me dicen sin ninguna complicación.
Utimamente deje de ser fanboy de Spring y pase a ser fanboy de Django (Python). Sin embargo hay algunos frameworks de Java que aún me agradan. Busco la simplicidad y la eficiencia, sin gastar tiempo ni reinventar la rueda, usar siempre las ultimas tecnologías y mantenerme al día.
Para ver algunas de las apps que he codeado pueden entrar a https://github.com/4gus71n
También me gusta pasar tiempo en stackoverflow bucando la mejor manera de hacer las cosas, http://stackoverflow.com/users/1403997/4gus71n
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment