Software Developer Resume
SUMMARY
- I am a software developer with over 20 years of proven embedded, web and desktop applications development experience.
- I am frequently commended for all aspects of the software development life cycle.Summary of Qualifications
- Expert C/C++ applications developer for embedded payment devices, embedded set top boxes, and desktop
- Proven understanding of multiple programming languages including C/C++, Java and JavaScript
- Extensive use of Linux shell and Python
- One of the most knowledgeable Qt API and QML developers in my industry
- Extensive knowledge of Thales Hardware Security Module
- Recent in - depth experience with Luna Security Provider and supporting Java Security Protocol and Java Cryptography Extension APIs
- Expert PKCS#11 programming
- Proficient in openssl programming (libcrypto) and command line usage
- Deep understanding of embedded Linux boot sequence
- Thorough understanding of Make, qmake, ant, Maven, autotools and scripting to support automated builds
- CI and SCM configuration with Jenkins, Bamboo, JIRA, git and subversion
- Frequent Docker configuration
- Deep understanding of SQL
- Talented and frequently commended problem solver
- Excellent communicator and relationship builder with coworkers and management
- Proven team leadership abilities
TECHNICAL SKILLS
Programming Languages: C/C++, Qt/QML, Java, JavaScript, SQL/DDL, C#, HTML, XML, Python, PHP, Perl, Bash, Korn, awk, sed, Scheme
Frameworks: Qt meta - object, JEE, JSF, Hibernate, OpenGL, JUnit, Qtest, Google Test, Jersey/JAX-RS, JAX-P, CORBA, Ant, Maven, Boost
API s: Qt 4.7 through 5.15, C++ Standard Library, Cryptoki (PKCS#11), Servlets, JDBC, QtSQL, Java Beans, Core Java, fontconfig, freetype, gstreamer
Software: Qt Creator, gcc toolchains, Eclipse, subversion, git, gerrit, JIRA, Jenkins, Cobertura, Valgrind, Unix tools, Yocto, Docker
Platforms: Broadcom SoC, Intel SoC
Databases: Oracle, db2, MySQL, Postgres
Operating Systems: Mac, Windows, Linux
Platforms Sun, IBM, iOS, Android, MIPS, Intel, RDK:
Servers: Weblogic, WebSphere, Sonic ESB, JBOSS, Savvion, Apache
Methodologies: Agile, Rational
PROFESSIONAL EXPERIENCE
Confidential, Kirkland, WA
Software Developer
Responsibilities:
- I develop user space proxies to kernel modules, develop Secure Layer C code (s2bl), develop embedded and desktop Qt/QML applications, develop Over The Air (OTA) update applications to flash software updates
- Create and maintain build and deployment servers for the rootfs, kernel, uboot and secure layer firmware used on RAIL payment devices, and create applications supporting automation of manufacturing tasks (key injection and NAND programming). Develop HSM (Thales) client applications to manage private keys and certificates.
- Script and write applications for CA X.509 CSR, 3DES DUKPT key generation (Luna), RSA PKI and HSM interaction (PKCS#11). Serial tty programming over USB. Rebuild Qt libraries for platform specific features.
- Rebuild gcc toolchains for cross-compiling. Configure Jenkins for build and release management.
Environment: Qt QML Qt Widgets and API (C++) C/C++ Javascript REST API calls Java Security Provider framework Luna security provider PKCS#11 HSM administration (Thales) Server side Java libssh libssl (AES, pbkdf2, RSA, digest, EVP Key, BIO) gdb, gdbserver Jlink, Segger Jenkins (python) Shippable (yaml) Dockerfile and Docker Compose (yaml) make, automake Broadcom processor tools Ethernet troubleshooting via Wireshark and pcap JIRA, Confluence, TFS github
Confidential, Philadelphia, PA
Applications Enginieer Lead
Responsibilities:
- I developed, optimized and maintained the video, audio and graphics code for the set top boxes on the XFinity X1 platform. I performed troubleshooting, fixed issues, optimized and implemented new features for Broadcom and Intel platforms on Pace and Arris hardware, desktop computers, smart phones and tablets.
- My co-workers appreciate the design and architecture that I recommend for solutions, new development and refactoring.
- This product is currently deployed to over 50 million Comcast customers. My responsibilities included the following.
- Developing the Receiver application in C/C++ for Pace and Arris XG1, Pace and Samsung RNG 150, Pace Xi3, Cisco (STM) Xi4, Mac and Windows desktop computers using Qt, Boost, STL and other libraries
- Developing graphics rendering code with Qt graphics items (QGraphicsItem)
- Maintain Qt project and project include files (.pro and .pri)
- Developing scene management code for OpenGL ES and Direct FB in C/C++
- Developing text rendering code using fontconfig, freetype and custom texture mapping
- Developing audio and video rendering components using gstreamer
- Develop supporting libraries for gstreamer using curl (httpsrc) and ISMD (sink)
- Design and add protocol features for cloud based applications
- Develop XRE server applications in Java
- Script build tasks in Bash and Python
- Build all components of the Resource Development Kit (RDK) and Yocto build environment using Jenkins (recipes for Broadcom, Intel and STMicro (Cisco) platforms)
- Good knowledge of cross compilers (gcc)
- Manage defects using JIRA
- Use git source control management systems
- Review changes using gerrit
- Use the gtest and Google Mock unit testing framework for C++ libraries, QTestLib for Qt C++ application code testing; use JUnit for Java unit testing, integrate into Jenkins build system
- Develop integration tests and QA testing products using Java, PHP, Apache, MySQL
- Develop custom testing scenarios for low-level memory checking and profiling using Valgrind and other custom memory checking tools
Confidential, Malvern, PA
Senior Software Enginieer
Responsibilities:
- At Confidential, I was a Senior Software Engineer. Called on to quickly solve problems during shows, demos and other high-pressure events, I was sought after as an expert in the device app that was deployed to LG smart TVs. My work on the Confidential TV application received prominent display at the 2010 Consumer Electronics Show exhibit. My responsibilities included the following tasks.
- Developing embedded applications for Broadcom SoC platorms in C/C++ using Eclipse C++ IDE
- Developing embedded Flash UI applications
- Designing and developing server applications exposed as Java Web Services (REST/Jersey, JAX-RS)
- Using Hibernate for Object Relational Mapping
- Ensuring code testing coverage with Cobertura
- Using subversion for source code management
- Designing and coding DDL for MySQL databases
- Deploying MySQL instances across shards for scalability and redundancy
- Developing application management tools using Google Web Toolkit
- Developing load tests using Apache ab. Submitted patches to ASF to support HTTP PUT in load test software, which were accepted and released
Confidential, Taylor, TX
Application Developer
Responsibilities:
- During this period, I provided consulting and application development services to ERCOT and PJM, electrical grid operators in Texas and Pennsylvania. These were high-pressure assignments
- I delivered consistently and was frequently commended by my clients. My responsibilities included the following tasks.
- Prototyping and delivering Service Oriented Architecture applications and integrating them with messaging systems utilizing Oracle, Mulesoft, Sonic ESB, ABB, and Alstom ESCA
- Developing Market Management System (MMS), Energy Management System (EMS), Master File, Current Operating Plan and Platt’s Fuel Index and Option Prices applications
- Supporting Day Ahead Market, Supplementary Ancillary Service Market and Outage Scheduler
- PL/SQL development, including routine database administration (partitioning large tables, creating indexes, scheduling jobs and finding/fixing invalid objects)
- Java application development of J2EE container applications (EJB, Servlets, Web Services, ESB)
- Recommending technology and architecture for new applications
- Documenting solutions with UML Use Cases and Activity Diagrams
Confidential, Seattle WA
Programming Service
Responsibilities:
- During this time period, I contracted through Codesic Consulting and TekSystems to provide programming services (formerly Cingular) Wireless. I was put in leadership roles as a senior programmer/architect and was frequently commended for problem solving and development skills. The responsibilities of my assignments included
- Over the air (OTA) provisioning of cell phone services
- Middleware services exposed at the network element layer (Master Switch Center, Home Location Record, Variable Location Record)
- Analyzing requirements, modeling and implementing network service analysis tools for signal transmission
- Coding C++ for CORBA distributed server (Orbix Web)
- Coding Java Swing for User Interface
- Coding Java Servlets deployed to Tomcat for reporting and 1st Teir Customer Support
- Using Hibernate for Object Relational Mapping
- Coding Java for Savvion process and decision tools to support new trunk requests, trunk disconnect requests and trunk augmentation requests
- Designing and implementing escalation notification system for Savvion processes
- Planning, organizing, design, development and implementation of ORBIT and COMET collections subsystems infrastructure
- Authored High Level Design, Interface Agreement, and Detailed Design documents
- Designed database entities and relationships to support Risk Management Database in Rose and Visio;
- Developed standards for design and code; led and participated in design and code reviews
- Designed and coded integration features to support CGI/AMS Computer Aided Collections System for Telecom (CACS-T), CARE and Telegence billing systems in Rose and Eclipse for deployment to WebLogic
- Coded Oracle PL/SQL stored procedures and queries to support data application; implemented Oracle SQL*Loader control file and parameter file to load text files into Oracle9i tables
- Designed and implemented Collections Letter Processor library in Java that produces Advanced Function Presentation (AFP) files; implemented parser generator using ANTLR for binary print file manipulation; Moved print files over secure DirectConnect network to print vendor
- Made timely communication of technical risks and issues as they arose
- Implemented Test Driven Development using JUnit; improved confidence in deliverables early in the development cycle
- Used JProbe to analyze and improve application performance by 1000%
- Produced deliverables for UNIX production environment using platform tools and languages including Bash shell, Korn shell, Awk, and Sed
- Supported integration and deployment by quickly resolving environment and configuration issues
- Designed and implemented efficient Excel reporting application framework using StringTemplate engine. Resulted in 23% fewer lines of code average for reports over existing Perl libraries. Also improved quality by unit testing report applications with JUnit
- Provided ongoing input and help for database application integration with VBA in an Access environment
- Used Rational Clear Quest to manage defects. Used Clear Case to manage source code. Used the shell for advanced source code management. Used Eclipse IDE for coding
Confidential, Seattle, WA
Full Stack Developer
Responsibilities:
- As an energy market developer, I designed and coded front- and back-end applications for integration with ESCA’s Market Management System. Through Alstom ESCA, I contracted at major energy market players, including Enron and Dynegy during ERCOT’s market trials.
- I was able to quickly react to changing market trials conditions and quickly refactor the MMS to compliance. I frequently worked with traders to develop roll-up applications and analysis tools for trading desk use. My responsibilities included the following.
- Integrating Enron’s scheduling database into ESCA’s MMS using JDBC
- Creating stored procedures, functions, tables, views, materialized views and batch jobs using PL/SQL and Java
- Creating application configuration and management tools using Java Servlets
- Using Tomcat, Excel, Java and JNI to integrate Esca’s existing Energy Management System to customer Oracle database,
- Implementing JNI wrappers around existing C/C++ assets
- Creating Java Swing, JSP and VBA UIs
- Parsing and transforming data for loading into customer databases using JAX-P (SAX and DOM, XSLT)
- Developing Entity Bean and Session Bean web applications using Weblogic
- Developing unit tests with JUnit
- Maintaining apache ant build scripts
- Designing applications using Rational Rose
- Developing reporting applications with JChart and Excel
Confidential, Seattle, WA
J2EE Architect/Developer
Responsibilities:
- During this time, I worked with Confidential customers to develop web applications. Clients included projectconnections.com, Washington Courts System and Russell - Mellon. My primary focus was using J2EE (EJB and Servlets) to deliver paid content, scheduling and reporting applications. My responsibilities included the following.
- Consulting with clients to define, monitor and verify architectural requirements
- Producing detailed work estimates, and completing work on time
- Making recommendations and implementing system performance improvements of WebLogic application that integrated with Actuate reporting system for Russell Mellon
- Creating e-commerce applications using Tomcat, Servlets, and JDBC for subscription-based projectconnections.com.
- Implementing JUnit tests for identifying and fixing bugs in existing code, which served as regression testing in ant builds
- Implementing JNI wrapper around native C code
- Finding defects and fixing them
- Designing and implementing calendar application components in J2EE, JSP, Servlets and Swing for ACORDS Appellate Court Information System via Websphere Application Server and Websphere Application Development tools
- Developing docket scheduling and resource management system in Java using servlets and JSP
- Used Rational Rose to design, map and model systems
Confidential, Chicago, IL
Web Developer
Responsibilities:
- Develop customer support applications for Lucent Technologies. I was responsible for custom messaging applications, retrofit scheduling and reporting as well as internal IT reporting applications.
- I supported the Lucent 5ESS switch Y2k retrofits. My responsibilities included the following.
- Developing reusable web calendar component in Java Servlets, configurable for IT and customer technical support applications
- Developing Customer Relationship Management tools using Java Servlets
- Creating in-house content management system plugins using C/C++ and Perl with database access using dbi
- Creating reporting applications using JDBC for customer technical support of retrofits of the 5ESS switch
Confidential, Virginia Beach, VA
Web Developer
Responsibilities:
- Developed CGI applications using dbi, perl and C
- Used Java credit card API from RSA
- Developed Java applet chat room application for cm-online.com using sockets and server sockets
- Developed Perl chat room moderation tool
- Developed e-mail applications for notifications using shell scripts