Brett Gmoser


Cell: 516-874-6569
E-mail: Contact Me
Resume: PDF, MS Word 2010+, MS Word or just print this page.Note

github, skype, Google+

Programmers really do go outside!

Buzzwords

In case you don't have a lot of time to read this, here's a short list of my key skills. All of these are real, actual skills which I have acquired or learned over my many years of writing software.Note

C++ and its STL, the boost C++ libraries, Python, templates, OOP, RAII and other modern software design idioms, multi-threaded software design with various concurrency and locking mechanisms such as mutexes and locks, desktop development including raw WIN32 API and wxWidgets, MySQL and other relational database design, web development including HTML/XHTML/CSS/JavaScript/AJAX, server administration including FreeBSD and administering clusters of servers, web server software such as nginx and Apache, high availability and high traffic websites, and many other things.

Does a candidate with skills like these sound like a good fit for your organization? Please read on!

My Background

From a young age, I have been fascinated by computers and technology. My parents bought our first computer, a Tandy 386, at an age where I was still counting half-years (eleven and a half, I believe). It was then that I set out to develop my first commercial software product - an innovative platform solution industry standard RFC compliant buzzword thing for - hah, nevermind. It was called "CHEATS!", and it was a convoluted mess of batch files which displayed cheat codes for PC games of the time. I published on AOL as shareware with a full version available by mail order. Months and several thousand downloads later, I received my first and only order - thus marking the beginning of my career as a professional software developer. See more.

It was in middle school computer class that I learned my first "programming" language - LOGO. Yup, the one with the turtle! While other seemingly uninterested students struggled to learn the concept, I flourished. I was hooked! Hide this.

What I Love To Do Today

Nowadays, whether it's scaling a high availability API to handle thousands of requests per second, developing a custom from-scratch scripting language to solve unique business needs, or finding a way to portably store application resources such as icons for use in desktop executables across different platforms like Windows and Linux, I love to do it all.

I'm a quick learner, and I can be brought up to speed very quickly on just about anything. As any career software developer knows, learning to use new tools can be fun and easy with the right documentation, especially when you already have a really strong grasp of all of the principles. In my current role, I often find myself taking on the role of mentor, and I find jumping in on random projects to solve problems others were stuck on to be quite fun. See more.

Like many programmers, I have a passion for solving interesting problems. I started getting more serious about a career in software development a long time ago when I realized that computers were an excellent tool which could make my life easier, as long as I knew how to fully utilize them by writing custom software. Hide this.

What I'd Love To Do Next

I'm anxious to work with a group of people who share the same passions as me - technology and using it to solve problems. I'd love to work somewhere that I can really make a difference, and not just be another cog in the machine. I'd love to work for a company who places a high value on its software developers, and doesn't consider technology and the people making their products to be simply a business expense. Above all, I want to create innovative solutions for whichever industry I may wind up in - and as you know, that pretty much requires joining a team who feels the same way.

Images

I'm a software developer by trade, and not really a designer. As such, much of my work doesn't lend itself well to pretty pictures. Below, I've included some screenshots of desktop applications I've developed as well as snippets of code.

Skills

C++Advanced Working Knowledge, 11+ Years Experience

I often choose C++ as my main tool for its portability, compiled performance, and lack of a need for any real dependencies (like an interpreter)Note to run on an average computer. For the web, I generally develop in Windows (MSVC), writing portable code, and compiling into production in a UNIX-like environment using the GNU toolset.

Many of the applications I've developed are heavily multi-threaded, and I'm well versed in the potential pitfalls of such designs (such as race conditions and deadlocks) and the tools available to avoid them.

Rather than reinvent the wheel, I use the boost C++ libraries quite often, and I follow the library as a whole quite closely. I even named my cat boost! A small sampling of the boost libraries I've used would include ASIO, Spirit/Karma/Phoenix, Thread, Xpressive, GIL, Interprocess, IOStreams, Locale, Python, and Test.

PythonAdvanced Working Knowledge, 7+ Years Experience

Users of Python tend to be some of the most passionate of programmers. I totally get it! I consider it to be among the best of the high-level languages. It's performant, easy to read, easy to learn, and supports many modern software design idioms. I generally use it for any task not well suited to C++ or where the compiled nature of C++ is not needed. I've used the Boost Python library to embed Python into C++ code, and to create wrappers around my own C++ libraries in order to use them inside of Python.

I've used Python for everything from "quick scripts" to the generation of geographical maps to represent sales data in graphical form to desktop software.

Desktop Software DevelopmentAdvanced Working Knowledge, 9+ Years Experience

If you were to ask me what my favorite area of software development is, I'd have to say desktop.Note Nowadays, I use wxWidgets and C++ to write portable cross-platform desktop applications which have a native look and feel, but have also worked with raw WIN32 API many times.

Web DevelopmentStrong Familiarity, 10+ Years Experience

I'm competent with HTML/XHTML/XML/CSS/JavaScript/CGI. While I wouldn't consider myself a graphic artist, I can confidently say I'm well versed in almost all areas of web development. I've been making web pages since the mid-90's, but that's not to say I'm still using <blink> tags! I know what modern web design looks like. My go-to stack for web applications is FreeBSDNote, nginx and MySQL, with my own C++ or Python on top of that. See more.

I've done just about everything in web development including UI design, shopping carts, back-end development, SEO, and PCI-compliant payment gateways. Like many software developers who dabble in design, I prefer to write markup and CSS by hand rather than fight with a WYSIWYG editor to get things exactly as I want them.Note Hide this.

MySQL and relational database designAdvanced Working Knowledge, 9+ Years Experience

Direct experience with MySQL (and various forks, such as MariaDB and Drizzle with its attractively licensed client API) and MSSQL, as well as the related client APIs (such as the C MySQL API, MySQL++, POCO database interfaces, etc.). I use SQLite for anything not requiring a full database server. In pursuit of writing various software, I've used stored procedures, triggers, functions, indexes, as well as the InnoDBNote, MyISAMNote MySQL storage engines.

System AdministrationAdvanced Proficiency, 8+ Years Experience

My experience includes a strong background in FreeBSDNote system administration. While not exactly FreeBSD-specific, my preferred shell (and shell scripting language) is bash, I generally use subversion for version control (but have worked with CVS and git as well), and I have worked at an advanced level with nginx, Apache, OpenSSL, OpenSSL, bind, postfix, dovecot, OpenVPN, and similar services used for other purposes.

Miscellaneous SkillsVarious Levels of Working Knowledge

Regular expressions, GNU development environment, Microsoft Visual Studio, NoSQL (couchdb, memcached, etc.), TCP/IP, UDP, debugging (MSVC debugger, GDB, valgrind, etc.), code analysis and documentation.

Work Experience

Lead Bid, Inc. Senior Software Engineer - Hauppauge, NY - 2007-Present

Lead Bid, Inc. is a subsidiary of Cyber-Lead, Inc. headquartered in Hauppauge, NY. As the project lead, I am responsible for all aspects of the design, implementation, and upkeep of all company software. Our main product is an innovative platform which connects buyers and sellers of real-time sales leads in the automotive and insurance industries. The USPTO also thought my ideas were innovative - we eventually won US patent #8,010,416.

During my years at Lead Bid, I developed a number of new technologies to deal with our unique business needs.

  • The platform was developed in C++ for use in a high-availability, heavy use environment where our API routinely handles upwards of 2,000 hits per second. The website and API is deployed on a cluster of FreeBSD servers consisting of load balancers and a dozen back-end web servers, as well as other duty-separated servers for services such as databases and e-mail.
  • Developed "lockd", which is a highly scalable application responsible for named lock synchronization between servers and processes. The mission critical service has an average of 8,000 connected clients while maintaining an extremely small footprint, and has never had a failure in roughly three years of service.
  • Web site has a full PCI compliant payment gateway which securely stores customer billing information, including credit card numbers. Interfaces with a third party paymentgateway.

CyberLead, Inc. Software Engineer - Hauppauge, NY - 2006-Present

At Cyber-Lead, Inc., a subprime automotive finance lead generator, I was initially tasked with promoting new company-wide software development and testing procedures. To this end, we first implemented policies on use of version control as well as regression and unit testing.

It eventually became obvious that the myriad of company sites, previously all almost identical hard copies of each other with simple layout changes, needed a universal content management system. We worked together to develop such a system while simultaneously cleaning up and sanitizing all HTML and JavaScript to modern standards, enabling cross-browser compatibility and functionality.

  • Developed "Rigel", a custom templating language for use on the web and to aid with integration to third party partner APIs. Originally conceived as a simple variable replacement language, Rigel eventually evolved into a dynamically typed functional programming language with variables (dictionary, list, string, integers, and other types), conditionals, functions, and loops.Note The parser, written using the boost Spirit library, is high-performing and uses a parsing technique praised by the creator of the Spirit library. The language also has a full suite of unit tests.
  • At Cyber-Lead, our main customers are car dealerships, who even in 2014 still value their fax machines. Many prefer to have their sales leads faxed to them. Faxing also proved one of our most effective advertising methods. Using a server attached to hardware modems, I utilized the Windows COM Fax API to write software which would send faxes on-demand by polling an POP3 e-mail box, and could also schedule and send faxes in large batches. To manage the opt-in/out list database, I used the open source Asterisk PBX to develop an automated phone menu for customers to opt-out of advertisement faxes.
  • Salespeople at the company mostly cold call to solicit new business. Car manufacturers have their franchisees listed on their websites, but it's tedious for salespeople to manually search manufacturer websites for contact information. I developed a tool which automatically combed and scraped for this information.

Contract Consulting, Codexterous President - Bohemia, NY - 2004-Present

I sometimes take on side projects. Here is just a small sampling of the things I've worked on:

  • IMBot A tool for marketing to users of Yahoo! Instant Messenger. After reverse engineering three different instant message protocols, the end result is a tool which was both highly innovative in the industry space and highly efficient for users. Utilizes wxWidgets for a cross-platform GUI, usable after compilation on Windows and UNIX-style operating systems such as Linux, and Mac OS.
  • Alcamo Pools Develop, design and support Microsoft Windows software in C++ (raw WIN32 API) to create and store customer estimates.
  • TrueDB Complete analysis, architecture, development and deployment of a custom-made and highly efficient interpreted programming language in order to meet the specific needs of the client.
  • Article marketing and SEO Utilizing extensive research in the search engine marketing field, develop a custom content management system designed from the ground up with SEO as the primary design paradigm. Other objectives included traffic generation and easy categorization of articles by comparing the content as it relates to other content on the site.
References
An extensive list of personal and professional references is available on request. Here's a small sampling of quotes from people who have recommended me in the past.

In my 9+ years of working with Brett, he has proven to be an invaluable teammate. Brett has always been ready to assist me when a problem appeared that was beyond my range of experience, and dedicated long hours to getting things done, and done properly. Brett provided new ideas, and was always open to my own ideas about how to tackle any given situation. In addition to team duties, Brett carried on his own solo tasks and projects within the company with a tenacity and zeal I have rarely seen. Any organization fortunate enough to bring Brett aboard will find that they have acquired a key component to their future success and growth.

- Sonthi Y, Senior Software Engineer - CyberLead, Inc.

As the lead developer, Brett created and built our Lead Bid platform. He collaborated with his on-site team as well as outside developers seamlessly and efficiently. We hope to work with him on future projects.

- Romy S, CEO - CyberLead, Inc.

Brett is a hard working and energetic individual. As lead developer, he was able to handle several tasks at once and excecute them timely and meticulously. He will be a real find for his next employer for sure.

- Devlin K, Vice President - Lead Bid, Inc.

Valid CSS! Valid XHTML 1.0 Strict!

Made by hand with care.