NEW FEATURES MORE

Over 50 tutoring hours

Michael C.

Buffalo, NY

$75/hour

Software Engineer with 20 Years Professional Experience

Background check passed as of 4/23/15
5.0 average from 22 ratings
Great Tutor
— Jeremy, Lake Katrine, NY on 11/20/15

Message Michael

Send Michael a message explaining your needs and you will receive a response shortly. Have you already emailed Michael or another tutor? If so, you have an account! Sign in now

 Checking availability…
Please enter the tutor's email address.
Please enter the student's email address.
Please describe how you heard about us.
Replies in 10 hours
Replies in 10 hours

Receive responses from additional tutors

If you select this option, Wyzant will ask interested tutors to contact you by email if they are able to help. A maximum of five different tutors will email you and none of your personal information, including your email address, will be released.

SUNY Buffalo
Computer Engineering
SUNY Buffalo
Master's

Education

SUNY Buffalo (Computer Engineering)

SUNY Buffalo (Master's)

About Michael

I have been developing software for over 30 years. I started as a 14 year old with BASIC on a Commodore 64, moving on to assembly language and writing complex 8-bit algorithms while still a teenager. In college, I studied Computer Engineering with a focus on software, and received my Master's degree in 1993. During my college career, I learned fundamentals of computer hardware and software design, as well as electrical engineering concepts, probability and statistics, queuing theory, computer simulation, computer graphics, and low level networking.

After college I have worked in a variety of fields, ranging from call center management to printing to natural language processing. I have extensive real world experience in: C, C++, C#, Java, and Smalltalk, as well as database design and programming, object oriented design and programming, source control, release management, and testing.

My best skills are mentoring and problem solving. I am the person colleagues come to when they have a problem with their code or a design decision. I love to share my extensive knowledge with others, and I have successfully tutored several young people, ranging from my own children (elementary and high school) to college students. I am passionate about sharing knowledge of any sort, particularly when the topic is the profession I have loved since childhood. I always try to convey that passion to anyone I am working with.
I have been developing software for over 30 years. I started as a 14 year old with BASIC on a Commodore 64, moving on to assembly language and writing complex 8-bit algorithms while still a teenager. In college, I studied Read more

Policies
Cancellation
1 hour notice required

My rate is higher than most but I guarantee satisfaction. I will reduce my rate if I am unable to help with a specific topic.

Travel Radius
Travels within 20 miles of Buffalo, NY 14221
Background Check: Passed

"Great Tutor"

- Jeremy, Lake Katrine, NY on 11/20/15

"Wow!"

- Lynn, Buffalo, NY on 8/24/15
Michael replied on 9/5/2015

Thank you Lynn! I love working with your son, he is so eager to learn. :-)

"Extremely knowledgeable in the subject matter"

- Mike, Buffalo, NY on 7/18/15
Math:
Calculus, Geometry, Trigonometry
Science:
Electrical Engineering, Physics
Computer:
C,
C#,
C++,
Computer Engineering,
Computer Programming,
Computer Science,
General Computer, Java,
JavaScript, Linux, UNIX

Approved subjects are in bold.

Approved subjects

In most cases, tutors gain approval in a subject by passing a proficiency exam. For some subject areas, like music and art, tutors submit written requests to demonstrate their proficiency to potential students. If a tutor is interested but not yet approved in a subject, the subject will appear in non-bold font. Tutors need to be approved in a subject prior to beginning lessons.

C

I spent much of my early career programming in C, and I wrote a fully functioning custom database system in C (DOS) which was used for several years by a small local trucking company. I have a deep understanding of all aspects of C, especially since I've spent much of my career in C++, which is mostly a superset of C and shares much of its underlying architecture.

C#

I have spent the last 4 years working almost exclusively in C#/.NET (4.0). I have extensive knowledge of the C# object model, LINQ, interaction with native code, Lambda functions, events, the Thread Processing Library (TPL), WPF, WCF for RESTful services, and MVVM design. I am very comfortable in all aspects of the language and its environment.

C++

I have spent over 10 years writing in C++, in a variety of domains and on several platforms. I have complete comfort with the concepts and syntax of C++, from the basics of pointers and values, to the most esoteric topics such as partial template specialization. In my C++ jobs, I was always responsible for writing solid and well-tested libraries which many other developers used. I was also responsible for mentoring those other developers on best practices. In the early 2000s, I published an article in C++ User's Journal (now part of Dr. Dobb's) describing a new type of associative collection which was highly space efficient.

Computer Engineering

I studied computer engineering in college and I am confident in my knowledge in this area. I understand fundamental computer architecture concepts, such as the interaction between CPU, memory and peripherals through the bus, the role of the hierarchical memory model in maximizing performance, CISC vs RISC, parallel computing concepts such as SIMD architectures (implemented in modern CPUs with names like MMX and SSE), operating system concepts, and security.

I have a fundamental understanding of how computers work from the ground up. Fully zoomed in, there is the physical layer of (mostly) silicon-based transistors. Zoom out to find those transistors forming gates and switches, which come together in complex arrangements to produce components such as registers, the ALU (arithmetic/logic unit), the FPU (floating point unit), etc. Zoom further and those units form the CPU, which is then arranged with other integrated circuits on a motherboard with lines of communication between all of them (the "bus"). Zoom out further still and you find that one computer connected to wires, which connect to hubs, which travel long distances to huge distribution centers throughout the world -- known as the Internet. All from a microscopic piece of Silicon.

Computer Programming

I have a deep understanding of both the shallow aspects of programming (i.e. syntax, control structure, variables, programs, algorithms) as well as deeper concepts such as software process best practices (source control, automated testing, release processes, etc), software dependency management, reusability, versioning, and refactoring. I have written and used serialization frameworks in multiple languages and have extensive experience with middleware frameworks such as CORBA, SOAP and RESTful services. I have experience in a wide range of languages across multiple paradigms. My primary work has been in C/C+, Java, C# and Smalltalk, but I also have working experience in languages such as Python, JavaScript, Perl, Windows BAT files, Unix scripting (bash scripts, awk scripts, sed scripts, etc), and some functional languages. I am comfortable working in multiple programming paradigms, including procedural, object oriented, generic, and functional approaches.

Computer Science

I have a very strong grasp of algorithms and algorithmic complexity. I have written production quality algorithms for nested tree and trie structures, graph traversal, hash indexing, etc, in multiple languages. I understand how to evaluate and express complexity of these algorithms in O(n) notation. My interests include parallel algorithms, lock free synchronization, distributed algorithms (both traditional client server and modern map-reduce approaches), and declarative approaches to programming (i.e. functional reactive programming). I am adept at object oriented design and implementation in multiple languages, and database design and implementation in multiple DBMSs.

Java

I have been programming in Java since the beginning. In the mid 90s, I was one of the first to download Java 1.0 and I quickly began learning what was the most exciting language development in a decade: the first language of the Internet. Since then I have worked on and off on various Java projects, accumulating 20 years of experience and knowledge of every version of the language. I have deep knowledge of the fundamentals of the language and an excellent working knowledge of the core API (including web services) and many 3rd party libraries. I have used the Eclipse development tool extensively, and also have experience setting up a large scale multi-project development environment in the Maven build system.

UNIX

I spent my college days working on SunOS and later Solaris machines, where I learned most of the fundamentals of UNIX from both a user and programming perspective. I am quite adept at UNIX command line scripting and can compose long sequences of piped commands to accomplish data transformation tasks. Later, in my first job, I used HPUX and SCO UNIX to build software and services; and since then I have worked extensively in Linux. I am familiar with the UNIX file system model, the programming model, and the administration/security model.

SUNY Buffalo
Computer Engineering
SUNY Buffalo
Master's

Education

SUNY Buffalo (Computer Engineering)

SUNY Buffalo (Master's)

Great Tutor — Mike is a very patient and knowledgeable tutor. I had a complicated JAVA project and Mike was able to help me solve the problem in a short amount of time. I would recommend Mike to anyone who needs help with programming. ...

— Jeremy, Lake Katrine, NY on 11/20/15

Hourly rate

Standard Hourly Rate: $75.00

Cancellation: 1 hour notice required

My rate is higher than most but I guarantee satisfaction. I will reduce my rate if I am unable to help with a specific topic.

Travel policy

Michael will travel within 20 miles of Buffalo, NY 14221.