Search

Michael C.

Software Engineer with 20 Years Professional Experience

Software Engineer with 20 Years Professional Experience

$75/hour

  • 98 hours tutoring

  • Buffalo, NY 14221

About Michael


Bio

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...

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.


Education

SUNY Buffalo
Computer Engineering
SUNY Buffalo
Masters

Policies

  • Hourly rate: $75
  • Rate details: 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.
  • Tutor’s lessons: In-person and online
  • Travel policy: Within 20 miles of Buffalo, NY 14221
  • Lesson cancellation: 1 hours notice required
  • Background check passed on 4/23/2015

  • Your first lesson is backed by our Good Fit Guarantee

Schedule

Loading...

Sun

Mon

Tue

Wed

Thu

Fri

Sat


Subjects

Computer

C,

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#,

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++,

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,

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,

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,

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,

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,

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.
General Computer

Corporate Training

C++,

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.
Java,

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.
General Computer

Homeschool

Calculus, Geometry, Physics

Math

Calculus, Geometry, Physics, Trigonometry

Most Popular

Calculus, Geometry, Physics

Science

Computer Engineering,

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.
Physics

Summer

Calculus, Geometry, Physics

Ratings and Reviews


Rating

5.0 (26 ratings)
5 star
(26)
4 star
(0)
3 star
(0)
2 star
(0)
1 star
(0)

Reviews

Great

Great session, always nice to have a tutor who really cares how you do. Made sure i understood material before moving on. Finished with an A in the course! Outstanding experience totally worth it.

Juan, 1 lesson with Michael
Tutor responded:

Juan, thanks for the feedback, and I'm so happy to hear you aced the course! Great job! :-)

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, 21 lessons with Michael

Wow!

Michael taught my son Windows C++ script and started to teach visual graphic output. He is a very personable and patient teacher teacher.

Lynn, 6 lessons with Michael
Tutor responded:

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

Extremely knowledgeable in the subject matter

Michael is not only proficient in JavaScript, which I specifically am learning, but he also knows numerous other coding languages and can readily and easily explain the differences between certain languages. I am confident that he can give me Knowledge above and beyond the expectations of the challenging coding academy that I am enrolling in.

Mike, 3 lessons with Michael
Contact Michael

Response time: 1 day

$75/hour

Michael C.

$75/hour

  • No subscriptions or upfront payments

  • Only pay for the time you need

  • Find the right fit, or your first hour is free

Contact Michael

Response time: 1 day