Senior Software Engineer Resume
SUMMARY:
- Over ten years of experience designing, developing, and delivering mission critical software on time and to specification.
- Able to rapidly master new languages, frameworks, and tools.
- Experience working with large data sets, designing robust public APIs, and developing a wide variety of customer facing applications.
- Enjoys helping others and excels working in a highly collaborative environment.
- A strong understanding of concurrency and Micro Service Architectures.
- Web Application Development (Node JS, Typescript, Javascript, ExpressJS, React, JSP, GWT)
- Web Service Development (JAX - RS, JAX-WS, Flask, DropWizard, ExpressJS)
- API Design (REST, SOAP)
- Use and management of Relational Databases (MySQL, PostgreSQL, PostGIS, SQLite, MSSQL)
- Linux System Administration (Redhat, Debian, Ubuntu)
TECHNICAL PROFICIENCIES:
Platforms: Unix, Linux, OS X, Windows
Programming/Markup Languages: Jav a (J2EE/JSE), Typescript, JavaScript, Python, Scala, C/C++, GeoJSON, BASH, XML, HTML, CSS, Less
Libraries/Frameworks: NodeJ S, ExpressJS, React, J Query, Jest, Mocha, Chai, Sinon, Junit, JPA, Hibernate, Google Web Toolkit, SWT, Rails, JAXB, XML Beans, GSON, JAX-RS, Quartz, DropWizard, Flask, Py Test, Shapely
Tools: MSSQL, MySQL, PostgreSQL, IntelliJ, Eclipse, Jira, Maven, Ivy, Gradle, Grunt, Jenkins, Bamboo, Apache Cassandra, Amazon Web Services, ActiveMQ, Docker, RabbitMQ
PROFESSIONAL EXPERIENCE:
Confidential
Senior Software Engineer
Responsibilities:
- Designed and implemented a set of RESTful microservices for translating, storing, retrieving, and operating on GIS related data. The key technologies used were Python, Flask, GeoJSON, RabbitMQ, Docker, and PostGIS.
- Designed an SQL schema for storing GIS sketch and application usage data in a multi-tenant environment.
- Designed and and implemented a RESTful microservice to standardize how developers stored, retrieved, and queried for file across Dycom. The API abstracted away the underlying details of where the files were stored and supported reading from multiple storage backends including S3 buckets, DFS shares, and FTP. The API also supported advanced querying. Key technologies used were Typescript, Javascript (ES6), NodeJS, Express, PostgreSQL, Docker, and S3.
- Designed and implemented clients for the above mentioned storage service in both Python and Typescript.
- Designed and implemented a process for polling a Quickbase database and updating downstream systems through amqp messages. Key technologies used were Python, AWS Lambdas, AWS Kinesis, and RabbitMQ.
Environment: During my day to day work I regularly use Typescript, Javascript, NodeJS, ExpressJS, Python 2/3, Flask, PostGIS, GeoJSON, RabbitMQ, Jenkins, S3, and Docker.
Confidential
Albany, NY
Software Engineer
Responsibilities:
- Designed a RESTful service for decoding postal data across the company. Project was done solo on a very tight timescale. The key technologies used were the Java, the DropWizard framework, the H2 embedded database, and Swagger.
- Researched and implemented a robust Continuous Integration pipeline while developing the above application. The pipeline was adopted across all projects for our team and allowed our team to rapidly develop both new features and patches to resolve software bugs. The key technologies used were Chef, VMWare Vcenter, Jira, Bamboo, Git, Cucumber, and Selenium.
- Designed and implemented a common API for managing warehouse and inventory data with the goal of reorganizing widely used data to provide new features while allowing the legacy applications that used that data to change minimally with no interruption to their functionality.
- Designed and implemented a customer facing warehouse management application that allowed our customers to efficiently manage warehouse and inventory data. The key technologies used were Grails (minimal), JavaScript, React, and Jest.
Environment: During my day to day work I regularly used Java (J2EE), Eclipse, SVN, Apache Tomcat, Glassfish, PostgreSQL, and various Linux/Unix systems.
Confidential
Albany, NY
Senior Software Engineer
Responsibilities:
- Designed and developed a platform for communicating electrical load and equipment state information to the Pennsylvania-New Jersey-Maryland Interconnection (PJM) as well as receiving control commands from PJM to allow Demansys to participate in the regulation market in PJM run territories. The key technologies used were Java, Apache Apollo (Message Bus), and OpenDNP3.
- Contributed to the OpenDNP3 project Added support for Frozen Counters, a rarely used feature of the DNP3 protocol that was required for the PJM project mentioned above. This project required collaboration with the maintainer and the use of C++11.
- Designed and developed a high risk application for automatically placing bids for clients in various energy markets. Unrelated clients are able to set schedules indicating their available energy for each type of product at specific times of day. Administrators are then able to set strategies for aggregating the available energy for each product in each market zone. At the appropriate time of day for each product in each market, bids are automatically generated and submitted to the appropriate market authority. The most challenging part of this project was assuring absolute correctness. A single mistake in the bidding process could trigger enough penalties to bankrupt the company in a matter of hours. Key technologies used were Java (JSP), Jquery, JDBC, and Quartz.
- Designed and developed a RESTful API that allows large amounts of measurement data to be stored in and retrieved from a Cassandra cluster. The API uses JAX-RS for both the server and client library and was secured with client side SSL authentication. Astyanax was used to interface with the Cassandra cluster.
Environment: During my day to day work I regularly used Java (J2EE), Eclipse, SVN, Apache Tomcat, Glassfish, PostgreSQL, and various Linux/Unix systems.
Confidential
Clifton Park, NY
Senior Software Engineer
Responsibilities:
- Designed and developed an extensive API to allow third parties to access and modify data within the Auto/Mate Dealership Management System. Features include high reliability, easy scalability, use of industry standard XML (STAR) for transport, synchronous and asynchronous functionality, and extensive documentation.
- Used the above API to develop an internal application to provide dealerships with OEM integration with Nissan. Features include notifying Nissan of additions/changes to customer data/vehicle inventory/F&I deals and providing the dealer with automatic vehicle inventory updates from Nissan.
- Designed and developed a generic auto sales lead application that was integrated with over a half dozen lead providers including GM, Chrysler, Hyundai, and Subaru. Features include customizable auto-replies for incoming leads, advanced lead routing, real time lead activity updates for lead providers, metric collection for OEMs, and a JSP and AJAX based UI.
- Maintained and heavily refactored a legacy customer relationship management tool. Over the course of 18 months I added several features to the application while drastically reducing the number of reported issues.
Environment: During my day to day work I regularly used Java (J2EE), Eclipse, SVN, Apache Tomcat, Glassfish, PostgreSQL, and various Linux/Unix systems.
Confidential
Clifton Park, NY
Developer/System Administrator
Responsibilities:
- Used Ruby on Rails to develop an internal application to handle customer billing and support. Features include a ticketing system that allowed employees to easily track and manage user reported issues, a billing system that handled adding/removing services, sending invoices for a variety of services, and accepting payments.
- Used Ruby on Rails to develop an application that allowed “white label” partners to easily create their own branded VOIP provider portal. Features include multiple selectable layouts with customizable colors, plan offerings, and pricing. This application integrated with the above mentioned application, allowing ViaTalk employees to seamlessly handle billing/support for their partners customers.
- Used Ruby on Rails to develop a server inventory application to allow system administrators to keep track of the physical location of hundreds of servers.
Confidentia
l Troy, NY
C++/OpenGL Programmer
Responsibilities:
- Recruited by the Cognitive Science Department to add a stereographic option to an existing driving simulation using C++ and OpenGL.
- This involved familiarizing myself with thousands of lines of pre-existing source code and the use of special stereographic glasses (active shutter, same technology now used in many 3D televisions).
- Project was completed on time and to specification.