Robert Brogan
21 Skerry Road |
774-836-7962 |
South Dennis, MA 02660 |
rbrogan3@yahoo.com |
Summary
Bright, experienced software engineer looking to do some honest work and create value. Write code. Solve problems. Build things. Would embrace an opportunity to be part of a culture that is highly entrepreneurial, professional, and/or collegial. Primary experience is in the embedded domain, with focus on developing middleware and systems software using C/C++. Projects involved building tooling and infrastructure (frameworks, parsers, protocols, etc.) Overall: well-rounded and always learning. Willing to relocate to Boston, NYC, SF, or Seattle areas. Can work from home. Willing to work a contract.
Chronology
Self, Personal Projects– South Dennis, MA |
2012.08-present |
In the past several years I have pushed my own personal limits of solo development. I have developed abilities in GUI development, database schema development, RAD scripting, website building, version control, and project management.
Personal Projects (available at www.robertbrogan.com)
Gen Project
Authored a Tcl library of ~200 convenience commands with 1000+ unit tests and ~25,000 words of documentation.
Built a custom IDE for authoring the Tcl commands to go into the library. Innovative in that the commands, tests, and documentation are all saved to a database, which is later accessed to produce all the source files, test files, and HTML pages.
Built website featuring 15 pages, including screencasts, a roadmap with information about the next release, news page, and feedback form.
Wrote package generation and site update scripts.
Built a custom app that hooked into the above scripts and allowed for editing of variables and previewing web pages. Can update the web pages from within the app and generate them without having to edit HTML files individually. This was very convenient for having to input data that would be propagated across multiple pages rather than manually make changes in multiple places (a tedious and error-prone process).
Developed versioning scheme and project management to help ensure that there have been 16 regular releases.
Developed adaptation facility for detecting what packages the user has available on their system and then loading only those commands which they can support. This, rather than requiring them to have installed every package that every command needs, even if they have no intention of using the command. A report is also produced which tells the user which packages are missing and the commands which cannot be loaded due the missing packages.
Other work
Developed projects totalling over 50k LOC (as counted by cloc.exe). Projects were written in Qt/C++ and Tcl.
Developed and refined systems of organization to keep self motivated and working full-time. Developed an appreciation of the need to make commitments and the benefits of doing so. Wrote tasking application to help administer system.
Built custom GUI app for editing film reviews, with scripts for updating website and mailing list.
Built custom GUI app for authoring an adaptation of Aristotle's Nicomachean Ethics, with scripts for updating site and mailing list.
Wrote a series of articles about software development (see website).
Cognex– Natick, MA |
2011.08-2012.08 |
Cognex produces machine vision equipment (i.e. cameras, fixed-mount and hand-held scanners) used in Industrial Automation (i.e. on factory floor to check fluid levels) and in logistics (i.e. scanning parts and packages at distribution centers). Customers have included Amazon.com and Netflix.
Member of manufacturing test group. Each device Cognex produces is run through a test apparatus to ensure that it works properly and is of good quality (e.g. the camera lens is clean). Our group was responsible for developing the machine apparatus itself for testing the devices, including software that would run inside the apparatus (e.g. motor control for rotating lenses), custom software uploaded to test the devices, as well as software that would run on a host PC test station. Machines would do things like rotate lenses, press buttons, take pictures of targets, and check that the products could successfully take pictures, scan codes (QR and barcodes), and give feedback to the user (e.g. beep and vibrate).
Responsible for writing software to operate the equipment as part of the test procedures as well as libraries to make it easier to write test software for multiple products.
Senior Software Engineer
Conceptualized, designed, developed a C# RAII construct used for cooperative media acquisition and release. Design features included modularity, robustness, resiliency.
Conceptualized, designed, developed mechanism for opaque adaptation, combination, and synchronization of independent elements. Features included dynamic integration, facilities for the implementation of policies and cross-cutting concerns.
Conceptualized, designed, developed methods and mechanisms for dynamic configuration, wiring, and decoration, along with an attributed execution model.
Designed and developed an extensible, multi-platform framework, domain language, parser, and interpreter to perform multi-step analysis to arrive a final result. Had a key insight that overcame the limitations of pipeline- and stack-based approaches.
Rewrote modules for the calibration, configuration, and validation of products. Functionality included device communications and control.
Management Strategies – Boston, MA |
2010.12-2011.08 |
MS Strategies is a small consulting firm servicing the healthcare industry. Software includes natural language and database technologies to facilitate processing of patient records. Did some contract work on a side project for a schema-specific language development toolset.
Contract Developer/Technical Writer
Produced a series of instructional videos explaining parser builder technology and demonstrating how to build a parser application from scratch.
Reverse engineered and documented code for parser generator engine.
Wrote installer package, including Visual Studio template and graphics (banners, icons) and marketing materials.
Personal Research |
2008.11-2011.08 |
Sought method for gaining intuitive understanding of systems in motion, as a whole. Details available on request.
Schneider Electric - Andover, MA |
2007.01-2008.10 |
As Industrial Ethernet became more of a modern reality, Schneider sought to establish company-wide standards and create a central, reuseable core of Ethernet- and IP- related software, dubbed the EtherBrick, to migrate its traditional, serial network-based products. The EtherBrick provided diverse and flexible solutions, consisting of a SW platform, HW references , system frameworks, and application libraries.
Senior Firmware Engineer
Worked closely with the chief architect. Developed requirements, crafted an object-oriented design, carefully implemented, and documented (using flowcharts and UML diagrams) several key pieces of the product. These included the core component class, a system control manager (responsible for booting and monitoring components), and an object factory (serving as a sample usage of the library). Used OO techniques that were relatively sophisticated by embedded standards at the time (e.g. inversion of control, dependency injection).
Prepared end user documentation and delivered presentations to end users.
Designed and developed applications adhering to TR standards (an internal equivalent to an RFC, intended to create consistency across products in the company portfolio.) The applications included an LED and SNMP components.
Solicited input from product groups, designed and implemented a Broadcast Storm Protection feature, protecting networks from crippling congestion.
Conceptualized, designed, and implemented a configuration metaprogram to allow product groups to do product configuration at compile-time rather than at run-time. This allowed customization of features that ran at bootup, prior to OS loading.
Cantata Technology - Hyannis, MA |
2004.07-2006.11 |
A merger of Brooktrout Technology and Excel Switching Corporation (spun-off from Lucent Technologies). Contributed to the design and development of a voice-over-IP gateway product, bringing together the traditional circuit and next-generation packet networks.
Embedded Software Engineer
Following an ISO-9000 certified process, used high-level skills to carry projects through the complete product lifecycle, from requirements discovery through system test. Lead feature team consisting of members from project management, R&D, test, and support as well as scheduling work flow that allowed for project to be completed on-time and to specification.
Designed SNMP feature to provide visibility for telco switch as a device within the packet-switched network in terms of operational state and traffic flows.
Designed a datastore and API parser for storage and retrieval of call statistics.
Developed Telnet feature to support remote troubleshooting of problems at customer sites.
Research |
2003.01-2004.06 |
Topics of study included game theory, economics, trading, finance, etc. Attempted to develop a trading strategy. Returned to work at the same site.
Lucent Technologies - Hyannis, MA |
2000.07-2002.12 |
Lucent acquired Excel Switching Corporation based on the latter's success with their programmable switch. This product was designed to be a flexible solution for diverse networks in Asia, South America, and Europe. Through the use of downloaded state machines, the switch could be adapted to handle protocol variants from other countries as well as new end-user features such as prepaid calling cards.
Embedded Software Engineer
Member of the platforms group, responsible for creating the foundation upon which telecommunications applications were built.
Developed a live upgrade mechanism whereby the system software could be upgraded with minimal downtime, and hence minimal revenue loss.
Developed NFS client feature to enable the product to be configured faster as well as provide a mechanism for data persistence.
Developed memory leak and stack overflow detectors and enhanced a generic event logger for quick identification of where exceptions originate from, and hence faster resolution.
Developed a feature enabling hardware to be redundant not only within the chassis but outside, across different geographic locations as well.
Education
B.S., Computer Science and Mathematics- Tufts University
Graduated magna cum laude, 3.7 GPA
Member Phi Beta Kappa
Key Skills
Networking : SNMP, NFS, Telnet, TCP, UDP, IP, Ethernet, DHCP, BOOTP, [more]
Languages : C/C++ (primary), C# ... Tcl, HTML+CSS, XML+XPath+XSLT
Platforms : RTXC, pSOS, Win32/CE/.NET
Tools : Visual Studio, CodeWarrior, AHK, ClearCase, git, make