PUBLISHED BOOKS
ML.NET Revealed (2020)
A hands-on guide to begin
your adventure in Machine
Learning using open source,
cross platform ML.NET
framework.
Source Code Analytics (2017)
A hands-on guide to analyze
source code using meta-
programming with Microsoft
Roslyn.
F# for Machine Learning
Essentials (2016)
Solving several Machine
Learning problems from
ground up using F#.
Dr. Ralf Herbrich, then
Director of Machine
Learning Science, Amazon
wrote foreword for the
book.
Thinking in LINQ (2014)
Several problems from
different domains are solved
using LINQ and C#, to hammer
show how functional
programming concepts can
lead to cleaner, concise and
maintainable code to solve
complex problems.
.NET Generics Beginners
Guide(2012)
Generics programming for new
.NET developers. Dr. Don Syme
and Dr. Andrew Kennedy from
Microsoft Research, UK wrote
foreword for the book.
SUDIPTA MUKHERJEE
SOFTWARE ENGINEER | AUTHOR | SPEAKER| TINKERER
WORK EXPERIENCE
Freelance Software Developer • July 2022 – Present
Have been working as a freelance software engineer working on
projects in source code analysis and process mining domain using
C#, F# and Python.
Lead Backend Developer • Phosphor.co • Dec 2021 – July 2022
Implemented several features of the domain specific language for
financial transaction modelling language using Python and F#.
COMPILER TECH LEAD • OutSystems • MARCH 2021 – OCT 2021
Helped create a new team for making a massive rewrite of the
code generation infrastructure of the transpiler that translates
C# and JS code from OutSystems Language. Led the team of 4
people. Made the code generation fast, discoverable, and
optimal.
SENIOR COMPILER ENGINEER • RAINCODE LABS • NOV 2016 – MARCH 2021
Worked in the code generation and semantic checker parts of
the new compiler for legacy programming languages (Mostly
4GLs). We created a new compiler for an old language and
target platform was MSIL. I was responsible for all code
generation and semantic checks and error reporting (mostly all
the compiler backend).
Automated documentation (for the most part) for the user
manual for all the compiler products. So, whenever we change
our code, documentation automatically changes to reflect it
not just in developer docs but in all user manuals.
SENIOR ENGINEER • EPICOR • AUGUST 2015 – AUGUST 2016
Worked in the tools and performance engineering group
to identify bottlenecks in several projects.
Created a Source Code Analytics system using Roslyn and
JavaScript Data Visualization. Later wrote about the experience
as a book (Source Code Analytics)
SYSTEM SOFTWARE ENGINEER II• HP • MARCH 2010 – JULY 2015
Designed and implemented a Domain Specific Language
(DSL) for defining UI constraints for different type of printers.
This replaced old XML based system as it reduced typing
needs drastically and offered almost flat learning curve
because of its resemblance with plain English.
18+ years of professional experience as software developer, mentor & leader.
Presented talks at several international programming conferences.
Written 6 books on different programming related topics.
Automation enthusiast and perpetual learner with broad perspective.
Data Structure using C: 1000
Problems and Solutions (2008)
An undergraduate textbook on
Data Structure and related
algorithms. It got
translated to
simplified
Chinese
OPEN-SOURCE
PROJECT
Author of Squirrel. (The only
Cross Platform Agile Data
analytics Framework for
.NET [4000+ NuGet Download]
SKILLS/INTERESTS/HOBBIES
Framework Design; Data
Structures; Algorithms; Tools
Development; Text
Processing; Machine Learning;
Domain Specific
Languages(DSLs); Unit Testing;
Machine Learning; Usability;
Refactoring; Web Crawlers;
Data Analysis; Technical
Writing; Sketching; Geometry;
Programming Language Design.
Meta Programming, Software
Forensics.
COMMUNITY
RECOGNITION
Recognized F# Expert
Granted for contribution to F#
Eco system on Applied F#
Challenge.
Invented a programmable and distributable key value pair
storage format called “Sponge” for efficiently storing
iterative and repetitive data. This used 75% less storage
space than equivalent XML documents
Created a Source Code Analytics system using Roslyn and
JavaScript Data Visualization. Later wrote about the experience
as a book (Source Code Analytics)
TECHNICAL LEAD• NESS TECHNOLOGIES • APRIL 2009 – MARCH 2010
Built a data structure called “Affinity Map” and then used it in a
supervised learning algorithm to do auto-categorization of
banking transactions. This tagged unknown transactions with
85% accuracy.
Created a static code analysis tool. It could find near duplicate
code and supported a part of Code Query Language. This tool
was used to mine sections of the code for identifying code blocks
to refactor to reduce technical debt. This was done much before
Roslyn. Had written the parser and analyzer myself. It was
glitchy but worked on most of the cases.
TECHNICAL LEAD• NESS TECHNOLOGIES • APRIL 2009 – MARCH 2010
Built a data structure called “Affinity Map” and then used it in a
supervised learning algorithm to do auto-categorization of
banking transactions. This tagged unknown transactions with
85% accuracy.
Mentored and managed a team of developers and testers.
ASSOCIATE CONSULTANT• TATA CONSULTANCY SERVICES • NOV 2004 –
MARCH 2009
Implemented Affiliate Management Platform and Web
Application for Citibank. I started as a software developer and
eventually became the team lead to lead a group of 5 people.
Created a data mining tool for project support team. This tool can
read emails sent as support tickets and classify problems in
different problem domains. Later this tool sent emails to
respective support engineers.
LANGUAGES/TOOLS
Programming Languages
C, C++, C#, F#, Python, Kotlin
Testing
NUnit, MSTest,
Frameworks
LINQ, Roslyn, Rx.NET, TPL,
STL, Pandas, NumPy
Databases
SQL Server, SQLLITE, Oracle
IDEs/Editors
Visual Studio, VSCode,
IntelliJ IDEA, Sublime,
Jupyter Notebooks,
LINQPad
Machine Learning
ML.NET, Accord.NET
Versioning
Git
EDUCATION/CERTIFICATIONS
B.E • 2004 • VIDYASAGAR UNIVERSITY
B.E. in Electronics and Communication Engineering GPA: 8.0 out of 10
Certification on Python Foundation offered by Udacity.
Certification on Machine Learning from Coursera offered by
Andrew Ng from Stanford University. View my certificate here.
CONFERENCE TALKS
Meta Programming for the Masses: Programming 2020
(Cancelled due to COVID-19). Will try to deliver it in person
at Programming 2023.
Practical Machine Learning using F# (Workshop): F# Exchange
2019 in London based on the F# for Machine Learning
Essentials book.
Creating DSLs using Functional Kotlin: A talk on how to create
DSLs using Kotlin in Functional Programming Conference
2018.
Practical Machine Learning using F#: At Functional Programming
Conference in 2015, I gave this talk based on my “F# for
Machine Learning Essentials” book.
https://confengine.com/functional-conf-
2015/proposal/1211/practical-machine-learning-in-f
Thinking in LINQ: At Functional Programming Conference in 2014,
I gave this talk based on my “Thinking in LINQ” book.
https://confengine.com/functional-conf-
2014/proposal/690/thinking-in-linq