-
Notifications
You must be signed in to change notification settings - Fork 0
/
resume.html
121 lines (98 loc) · 6.86 KB
/
resume.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="google-site-verification" content="pnJDji6p9yjp5MLB5Uc9EXIl_H1EI69uYb7I2O38wFE" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Robert Liota" />
<meta name="keywords" content="Robert,Liota,Robert Liota,Software,Software Engineer,Application Development,JavaScript,Web Developer,Programmer,Java,Web Application" />
<title>Robert Liota's Resumé</title>
<link href="css/main.css" rel="stylesheet" type="text/css">
</head>
<body>
<h2>Summary</h2>
<p>
Full stack (emphasis Front End) web application engineer with ~5 years experience designing and building single page web application clients and UI components in JavaScript, and back-end development in Java, Groovy/Grails with DB2.
</p>
<p>
I've lead the technical implementation of more than four single-page applications for Teach For America in the past two years with a focus on responsive interfaces. Prior to that, I helped deliver and optimize the performance of an automated case-clinician assignment system for the largest nonprofit home health care service in the United States of America (all 5 boroughs of NYC + upstate New York).
</p>
<h3>Things I've Worked With</h3>
<p>
JavaScript, CSS, HTML, AJAX, JSON, XML, Java, Groovy/Grails, MySQL, DB2, Linux, OSX, Windows, git, Gradle, Node.js, NPM, D3.js,
Backbone.js, Angular JS, Karma, Jasmine, Mocha, PhantomJS, Browserify, UglifyJS.
</p>
<h3>Skills</h3>
<p>
OOP (object-oriented programming), functional programming, performance optimization, user interface design and development, browser application client architecture, data visualization, gis visualization, TDD (test-driven development).
</p>
<h2>Professional Experience</h2>
<h3>Teach For America</h3>
<aside>January 2014 - Present</aside>
<ul>
<li> Introduced Front-End unit/integration testing to the development workflow.
</li>
<li> Introduced general JavaScript dependency management and build processes for UI components and single page application clients leveraging Node.js and NPM.
</li>
<li> Provided our DevOps team with a strategy for integrating JavaScript tests within Java applications for our continuous integration manager, Jenkins, using Karma combined with a JUnit reporter plugin.
</li>
<li>
Led an initiative to establish a private NPM repository for internal TFA UI components (using Sinopia).
</li>
<li> Experimented with remote device testing with Karma and Selenium Web Driver.
</li>
<li> Mentored Back End and Front End developers in JavaScript fundamentals/best practices.
</li>
<li> Identified performance bottlenecks in Front End code using a combination of Google Chrome dev tools and the window.performance API and reduced/eliminated them through careful application of window.requestAnimationFrame / window.setTimeout calls.
</li>
<li> Led data layer architecture on the Front End (Backbone.js Collection/Model design)
</li>
<li> Worked closely with UX Specialists to identify, prioritize and help advocate for important features.
</li>
<li> Frequently collaborated with UX specialists to identify UI patterns and technical trajectory of applications (what the designers wanted to build, and how to support that technically.)
</li>
<li> Developed various data visualization POCs for corps member data visualization using D3 (geographic dispersal, custom reporting, etc.)
</li>
<li>
Built proof of concept mobile application with Ionic (a multi-platform framework that uses Angular JS+Hammer.js+Cordova) that talked to an elastic
search service via Kibana.
</li>
<li>
Componentized important modules from an application that was being retired.
</li>
</ul>
<h3>The Visiting Nurse Service of New York</h3>
<aside>August 2011 - January 2014</aside>
<ul>
<li> Contributed to the design and development of a case assignment suggestion system that matches clinicians with patients based on various clinical, spatial, and personnel data across all 5 boroughs of NYC and Upstate New York.
</li>
<li> Optimized a long running sql query for a case assignment system (reduced from ~13 seconds to ~1).
</li>
<li> Designed and developed a prototype GIS interface leveraging Google Maps API and US Census Bureau .kml data for care delivery management. (Subsequently, there was kml data transforming via Groovy involved as well.)
</li>
<li> Designed the interface for, and investigated the feasibility of developing, a drag and drop scheduling interface for clinical staff.
</li>
<li> Enhanced/maintained various in-house developed applications (Java, DB2 w/ CSS, JavaScript and .jsp/JSTL in front), including a call tracking system and a clinical management system.
</li>
<li> Wrote a browser-error logging mechanism and service to help identify client-side issues in live, production web applications.
</li>
<li> Built a single page web application client using ExtJS 3
</li>
</ul>
<h2>Side Projects</h2>
<h3><a href="https://github.com/rliota/JSCompile">JSCompile</a> (https://github.com/rliota/JSCompile)</h3>
<p>JSCompile is JavaScript module dependency/mapper/resolver/concatenator tool I wrote before I knew what Browserify was. It works very well, and will even complain if it finds a circular dependency in your code.
</p>
<p>It differs from Browserify in that it does not work with CommonJS: it recursively traverses a set of files under a specified root project directory, rather than dynamically by way of an entry file. Each file is wrapped in an immediately invoked function that returns a variable that matches the name of the file. (So the exported object in this case must be defined as a local variable within the file.) The returned object is assigned to a namespaced object (following the file directory structure of the workspace.) This is all done after import statements have been scanned for module dependencies, and the modules are ordered so as to accommodate those dependencies.
</p>
<p>Rather than using a CommonJS require() pattern to pull in modules, it scans for @import annotations in comments. If the imported object namespace is found within the reference object assembled above, it is injected into the importing file's IIFE wrapper as an argument named the same as it's exported variable.
</p>
<h2>Education</h2>
<h3>Hampshire College</h3>
<p>
Bachelor of Arts, 2007-2011
<br/>
Music, minor in Computer Science
</p>
</body>
</html>