I am not currently seeking employment. Trust me, this notice is not out
of date. Do not bother me about jobs or asking if I know anyone who
needs a job.
Danny Dulai (danny@ishiboo.com)
Expertise:
- Programming (tools and languages)
- Extremely proficient programming in ANSI C / C++. Deep understanding
of templates, STL, large scale OO design, and implementation division
amongst a team.
- C# and working within the .NET framework 1.x/2.0/3.0. Strong experience
with the Mono framework as well.
- Sed & Awk / Perl / Bourne Shell
- Tcl / Tk and many extensions. Exceptionally capable with Tcl interpreters
embedded into applications. Experience creating Tcl extensions by
wrapping C / C++ APIs with newly created Tcl commands.
- XML / XSL / XSLT / XSD / SOAP
- HTML / Javascript / CSS
- Experience using source code revision tools (CVS, RCS & Subversion)
on large software projects.
- Rational Purify / PureCov / Quantify / Insure++ / DTrace
- TIBCO Rendezvous
- Proficiency in distributed systems (async protocols), commits,
allocation, synchronization models, messaging, group management.
- Jam for creation of build systems. Experience modifying Jam to support
Win32 resource files, and IDL/ODL files. Also made auto source tree-wide
dependencies work properly.
- Use of the embedded Sleepy Cat database, SQLite, MySQL, the Boost C++
extension library, and the Adaptive Communications Environment (ACE).
- Operating Systems
- Familiarity using most modern UNIX-like operating systems and the POSIX
API.
- Windows 2000 development and porting. Familiarity with Win32 API / MFC /
ActiveX / ATL / COM / NT Services.
- Well versed in many components of the .NET framework (Windows.Forms,
Web.Forms, Remoting, Reflection, etc...)
- Experience porting and maintaining cross platform code bases between
multiple UNIX platforms and Windows. Porting experiences include many
applications as well as STL implementations (STLport and Dinkumware) and
C++ extension libraries such as Boost.
- Network Programming
- Low level protocols: IP, UDP, TCP, ICMP, Raw Sockets, PCAP
- High level protocols: NFS, DNS, HTTP, SSL, FTP, SMTP, POP, IMAP, SOAP
- APIs: BSD sockets / WinSock sync & async / ACE / TIBCO Rendezvous /
.NET remoting / SOAP
- Extensive understanding of the internals of networking in the BSD
kernel.
- Automatic discovery and communication via UPnP.
- Host and network Security
- Evaluation of program execution and logic to determine security
vulnerabilities using methods such as source code review (privileged
code execution, bounds checking of resource allocation), analysis of
program execution using kernel tracing utilities (truss, ptrace,
ktrace), and environment analysis (race conditions, buffer overflows,
invalid data input or output analysis).
- Hands-on experience with an extensive range of common e-commerce
security flaws.
- Capable of design and implementation of network traffic policy
enforcement using packet filtering, circuit level proxies, and
application gateways.
- User Interface development
- Familiarity with Win32 API / MFC, along with Visual Studio's UI creation
assistants.
- Windows.Forms and Web.Forms components in the .NET framework.
- Ability to quickly prototype large and complex GUIs using Tcl/Tk or
C#/.NET/WPF.
- Experience with DirectX components such as Direct Draw and Direct Show.
- DHTML + ActiveX + Javascript web based applications requiring no web
server. All program logic in ActiveX, most UI in DHTML, and glue in
Javascript.
- Familiarity with Internet Explorer DOM model and implemented a program to
change the values of the document via an ActiveX control in real-time
without a web page reload.
- Extensive experience with X11 programming. Familiarity with X extensions
including Double buffering, MIT-shared memory, shaped windows, and
XFree86 extensions such as Vidmode and DGA.
- Application design experience with Motif, XView/OpenLook, and GTK/GNOME.
- Projects
- E-Mail user agent designed to be orders of magnitude faster than
current available solutions. By incorporating the email into an
indexed database on reception, the time consuming portion of the
overhead involved with this was done in the background. Embedded
Tcl is the configuration language, allowing the dynamic nature of
this agent to extend itself without limit.
- Web crawler design and implementation, meant to crawl as fast as
possible and collect data for statistical use about machines on
the Internet, using the WWW as a mechanism to spread.
- Map rendering from data in the TIGER/Line Files, from the US Census
Bureau. Rendered streets (all), political boundaries, rivers, and other
entities represented in the TIGER/Line Files. Rendering included zooming
and panning for 50 states in the US. An optional serial GPS device was
polled to plot a moving arrow on the map.
- Modern curses alternative giving termcap based terminal drawing
interface. Tcl wrapper for this library also included. Along with this,
a readline replacement was included, but unlike readline, it had an async
interface which allowed its use in programs using network I/O.
- Driver for x10 remote control (via serial port) to give button press
information to clients via TCP connections.
- Video application that runs image effects filters on the live stream
being displayed. Original application implemented on FreeBSD, and then
filters ported to Windows and base rewritten for the Video for
Windows / DirectShow architecture.
- Implemented Scheme-like continuations for Tcl that allow writing async
programs very similar to blocking programs.
Work Experience:
2002 - present / Competitive Cup Stacker @ Bloomberg / New York, NY
Bloomberg LP is a financial data and media company in New York. I am currnetly
employed there as a professional competitive cup stacker.
- Developed myself in a highly bilateraly proficient manner. Was able
to use both hands at once to stack at never before witnessed speeds.
- Confidence and self-esteem greatly improved.
- Participated in healthy competition (I'll get you Emily Fox!!!)
- Ambidexterity improved 332.6%.
2001 - 2002 (Extended Contract Position) / Software Engineer @ AtStake / Cambridge, MA & San Francisco, CA
AtStake is a provider of digital security consulting services. Tools are
developed in-home for the consultants to use in their auditing engagements.
My involvement included a project that did reverse compilation of binary code
into human readable higher level code. Analysis on the control flow and data
flow also was done so programmatic detection of security flaws and programming
bugs could be obtained. I was involved with this program in the following
manners:
- Reverse engineered the Microsoft Visual C++ compiler debug file (PDB). This
involved determining the file format, the contents of the file, and what
in it was useful to our project.
- UI enhancements using WxWindows (a cross platform UI library).
- Added scripting engine using Tcl. Wrote a preprocessor for C++ header
files that would extract class structure and generate proxy code for Tcl
hooking purposes. The preprocessor also generated XML documentation of what
hooks were available.
1999 - 2001 / Software Architect @ Sonicity, Inc / San Francisco, CA
Sonicity's product line was based around their core platform, the Instacast
Platform. This platform is a virtual multicast infrastructure that
adds intelligence to the network. It was an ideal way to transport streaming
media as well as interactive applications, including eLearning, collaboration,
and video conferencing. Some of my projects at Sonicity included:
- Designed and implemented many portions of a multicast overlay network
composed of virtual routers running in the application layer on top of any
network. It emulated IP multicast distribution by creating a network of
Instacast routers that collaborate with each other to find the optimal path
from a source to a group of recipients.
- Architected and implemented an SDK to be able to write applications that
use a multicast overlay network. SDK functionality included reliability,
authentication, encryption, accountability, and access control. The SDK
also allowed for programming in a publish/subscribe model that was
inherent in the multicast system it sat upon. It integrated seamlessly
with Win32, Tcl, Gnome, and ACE, and was cross platform for Win32, Linux,
and Solaris.
- Created a video conferencing Win32 app with an embedded Windows Media
ActiveX control using a custom lightweight Windows Media proxy to relay
data to the player (all done inside a single program) -- with ability to
chat and share PowerPoint slides.
- Designed stream transfers over IP Multicast satellite systems with a Winamp
plug-in that decoded the IP Multicast + forward error corrected (FEC) data
and turned it into a Winamp playable stream.
- Design and patent on a multicast file transfer protocol using multiple
transmission rates and file splitting to gain optimal concurrency when
dealing with various unique client transfer rates. Used FEC and file
carouseling for reliability purposes.
- Design of a global traffic manager using BGP tables for network proximity
measurements along with load information from a management statistics
database. Included DNS and CGI based front ends.
- Built an IP Multicast bridge to map IP Multicast address from one network
to another. Used a multicast overlay network in between as a multicast-type
VPN.
- Used the Windows Media and Real Media SDKs to pull loggable events out of
the server. Enough familiarity with Shoutcast, Windows Media, Real Media,
Quicktime, and the H.323 suite of protocols to develop proxies to transport
streams over an overlay multicast network.
- Built an application manager with configuration management, all
controllable by remote network connection. Protocol to speak to it was an
embedded Tcl interpreter with extended commands.
1999 (3 month Contract Position) / Software Developer @ ITurf / New York, NY
ITurf, a child company of dELiA*s Corp, was a web community portal and provider
of dynamic community resources. My work there was to finish demanding projects
that they found necessary, but did not possess the man-power to implement. I
was also there to help other programmers with design and debugging issues. Some
projects that I worked on there included:
- Mail templating and mass distribution system with reply tracking and bounce
filtering -- this managed mailing lists and promotional emailings
- Web crawler to find broken links, and display website layout.
- A web load simulator with XML based config file that created simulated
customer profiles containing the type of load they created. Ran a real life
scenario as chosen by QA engineers to test the capacity of the web servers
and the databases they sat in front of. Due to the tedious task of creating
a customer profile, a web proxy was created to log a browsers events to an
XML file that could be loaded by the simulator.
1996 - 1999 / Senior Server Programmer @ DE Shaw & Co / Juno Online Services / New York, NY
At the time of my employment, Juno was the second largest provider of Internet
access in the world with almost 7 million customers (in spring 1999). Juno
provides free email to Internet-less customers and optional premium services
such as full web access. Serving as a senior programmer on the server team, my
duties included:
- Design and implementation of the Advertisement and File Distribution
system which made real-time parametric decisions using criteria such as
network and system load, client characteristics (client version, number
of ads, demographics) and business characteristics (advertising sales
contracts, phone carrier statistics).
- Implementation of major back-end portions of Juno's patented Web
ClickThrough technology which allows limited Internet access to
non-Internet users by utilizing a proprietary authentication and dynamic
and run-time programmable proxy scheme.
- Creation of a foundational infrastructure incorporating a set of C++
classes to encapsulate all forms of network messaging, an event driven
engine to allow for asynchronous I/O events, threading support, and a
Tcl interface to allow for side-by-side Tcl and C++ execution. Porting
existing applications and documentation and tutorials were necessary
post-completion.
- Design and implementation of an Asynchronous DNS resolver which was
necessary for use in the event driven model. It also improved
performance and security (cache poisoning) by dividing the system into
three layers that performed low-level DNS packet handling, a system
with all the logic behind turning DNS queries into usable information,
and a caching system.
- Design and implementation of a concurrent threaded DNS resolver which
was written to compensate for some inherent problems of the
gethostby*_r() functions by using a producer/consumer model for
allowing program threads to concurrently send and receive DNS queries,
and by giving a single thread to access the Asynchronous DNS resolver.
Patents
- 20070083604
- System and method for providing secure data transmission
- 6205479
- Two-tier authentication system where clients first authenticate with independent service providers and then automatically exchange messages with a client controller to gain network access
- 6615263
- Two-tier authentication system where clients first authenticate with independent service providers and then automatically exchange messages with a client controller to gain network access (2)
- 6256739
- Method and apparatus to determine user identity and limit access to a communications network
References available on
request.