Software Engineer Resume
Madison, WisconsiN
SUMMARY
- An accomplished, results - driven information technology professional with a proven track record of achievement in software engineering and development, maintenance, systems architecture, and migrations.
- Collaborates with internal and external parties to ensure the achievement of established company objectives.
- Remains abreast of current technologies to ensure the deployment of the most up-to-date systems.
- With a solid commitment to excellence, lays the foundation for the long-term success and profitability of an organization.
TECHNICAL SKILLS
Databases: PostgreSQL, MS SQL, Cassandra
Web Technologies: REST webservices, Javascript, Jquery, Jquery UI, JSON, HTML, CSS, AJAX
Java Technologies: JUnit, EasyMock, Maven, Ant, Swing, Spring Core/Data/MVC, Struts, JMX, Log4j/Logback, Jasper reporting
Languages: Java, Regex, Bash shell, C#, Javascript, SQL, JSON, HTML, XML, JSP
Operating Systems: Gentoo GNU/Linux (my primary OS since 2005), Ubuntu Linux, Windows 7, Windows Server 2008
Other: VIM, JIRA, Netbeans, Agile (Scrum), Amazon Web Services EC2, ActiveMQ, Jenkins CI, Unix utilities (sed, awk, grep, find, etc)
PROFESSIONAL EXPERIENCE
Confidential, Madison, Wisconsin
Software Engineer
Responsibilities:
- Worked on four-developer, largely self-managed, Agile Scrum team designing, building, debugging, and maintaining Java SOA software systems as well as setting up and maintaining Amazon Web Services hosted Linux servers for said systems
- Worked remotely 2-3 days per week and collaborated virtually with team members over Google Hangouts
- Rotated onto maintenance team every few months with rotating 24/7 on-call responsibility
- Learned new languages, tools, and concepts including: service oriented architecture, ActiveMQ, Java Spring, Cassandra, Maven, Jenkins CI, Amazon Web Services, and C#
- Produced and consumed RESTful web services
- Contributed to emergency two-week project to migrate data and associated processes from MySQL to PostgreSQL to fix performance-based outages of interactive radar product, saving company valuable contracts previously threatened
- Maintained legacy C# weather alerting system used by tens of thousands of people, adding new feature requests and fixing bugs
- Removed severe bottleneck in legacy alerting system by multithreading the sending of messages and associated logging
- Assumed lead role in designing and implementing new Java-based SOA weather alerting system to increase speed and scalability as well as remain more maintainable than legacy system
- Used Spring JDBC for database communication, Spring dependency injection for datasources and services, JMS for ActiveMQ communication, and GSON for JSON (de)serialization
- Used combination of REST webservice calls and ActiveMQ queues and virtual topics to communicate between several microservices for receiving weather data, determining affected locations, processing alerts, and sending messages
- Used Cassandra range queries and geohashing to perform scalable lookup of locations affected by weather events
- New system could process and send 10,000 alerts in under 5 seconds; legacy system originally took 45 minutes to handle the same
- Shared ownership of multiple microservices that made up part of the WeatherFX platform with another team, which we collaborated with through daily “scrum of scrums” where one representative from each team would give a quick update to ensure any proposed modifications would not be in conflict
- Setup Jenkins jobs with associated Maven tasks to perform automatic unit testing and deployment to dev environment for commits on each service, as well as push-button deployment to staging and production environments using associated environment config files
- Unit tested service and utility classes with Junit and mocked out dependencies using EasyMock
Environment: Java, C#, ActiveMQ, Spring Core/Data/MVC, JSON, REST, PostgreSQL, MS SQL, Cassandra, Ubuntu Linux, Amazon Web Services EC2, Junit, EasyMock, Regex, Jenkins CI, JIRA, Agile (Scrum), Maven, Log4j/Logback
Confidential, Brookfield, Wisconsin
Software Developer
Responsibilities:
- Started as intern, eventually becoming one of three full-time developers responsible for designing, building, debugging, and maintaining various Java batch processes and MVC back-office website used to analyze and manage all of the company's data
- Performed full stack Java web development, also using jQuery UI, PostgreSQL, and Java Struts, and JSP
- Learned various systems and often completed complex projects individually
- On my first day as an intern, consistently reproduced bug that a developer had been trying to diagnose for months
- Optimized numerous complex and slow running SQL queries on web backend, speeding up retrieval time for some queries from dozens of seconds to tens of milliseconds
- Wrote and maintained Java systems involved with moving billions of dollars every year
- Introduced JavaScript and jQuery into web site, making faster and easier to use
- Worked on various odd jobs, adding features throughout our internal backoffice interface
- Worked on Java Swing check scanning application used by check cashing stores
- Used Jquery UI and AJAX (JSON messages) to implement a user friendly and fast single page interface
- Database driven configuration of document types along with associated checklists, checklist item override requirements, anddocument type metadata
- Implemented application components as custom Jquery UI widgets
- Performed entire project independently; front-end, back-end, design, database
- Web interface allowed input of SQL queries to generate reports from
- Validation ensured only select queries were input and that queries were valid SQL
- Jasper report templates were dynamically created based on the columns selected
- Allowed selection of XLS, PSF, TXT, and CSV output to specified directory and also allowed reports to be automatically emailed to users
- Allowed special parameters for date and entityId allowing similar reports to be run for multiple customers
- Used ActiveMQ to initiate instant report generation
Environment: Java, Javascript, Jquery, Jquery UI, HTML, CSS, Java Struts, JSON, PostgreSQL, Junit, Regex, JIRA, Agile (Scrum), Ant, Java Swing, JSP, ActiveMQ, Jasper reporting