Você está na página 1de 6

Dan Akselrod

27-02 Urban Pl.


Fair Lawn, NJ 07410
(917) 703-0007
dandax@gmail.com
Summary of
Qualifications

Expert:
C++/C, STL, Multi-threading, shell-scripting and tools (perl,
python, awk, sed etc...), Makefiles, Solaris, AIX, HP-UX, Linux. Unix
guru. Clearcase, CVS. Expert debugger. gdb, ddd, adb,
hex/assembler debugging, even printf debugging.
Knowledge:
MySQL, Objective-C, Python (2.7), Kernel internals, dtrace, Java,
JavaScript, HTML/CSS.
Skills and Technologies:
Resilient, scalable architecture. Performance tuning. High
parallelism, Data structure and algorithm design. Market data
decoding. Network development. OO software design. Kernel
development. System administration and security. Linux
development. GUI development. Some Web development.

Experience
2010

Independent Project
iPhone application Diamond Hunt
(alas no longer available in the AppStore)
Ported an old PC game to iPhone (from specs, no old code used).
Used XCode and Objective-C to develop, test and submit to Apple.
Used UIKit for graphics.

2016

Credit Suisse Securities


Feeds developer
Created infrastructure for Euronexts OPTIC feed, using Simple
Binary Encoding (a competitor to Google Buffers), with
compression. Enabled developers to simply subscribe and write
message handlers.

2016

Symbolic IO - startup
Freelance Project
Developing Linux (Ubuntu 16) networking configurations for
virtualization environment, using libvirt python API.

2003-2016

Bloomberg LP
Ticker Plant C++ Developer Mentor/Systems designer
Ticker plant is a farm of servers, processing market data from all
exchanges of the world, organizing it in a homogenous way. It
allows user requests, and change notification. It processes about
3.5 incoming million messages, and 600 thousand user requests
per second. All written in C++ with fine tuned distributed and

scalable data structures.


Develop projects solo or in a team of two. Also consultant in
design, development, and troubleshooting of others projects.
Projects:
- Production support
All code written by others, and me was deployed, tested and
supported in the production environment. Took a part in on-call
rotation (1 day per 2 week period). Initially 6-10pm, then 6-8pm
with hand off to Tokyo team, then as 3rd level support to the new
SRE team. Support included debugging, QCing and manual
rollout support, as well as writing automation and attending PM
meetings.
- SRE Training
A new team of SREs was hired, to service an increasing amount
of production machines. I prepared and delivered all the
PowerPoint slides and talks, as well as mentoring and one-on-ones
with the new SREs. Training included both: actual tools and
understanding under the hood topics.
- Request Generator
Wrote a utility to replay recorded requests to a system to stress
load, and calculate capacity. It takes prerecorded requests (see
DBR library below), and throttles them via multiple threads at a
target machine.
- Sync direct
Wrote a tool, to recover a crashed server, by syncing data from
peer servers, even if sync sources are on-line and serving users.
Project had a combination of new code, and old code refactored to
fit the new sync model. Performance of network was needed to
speed up recovery to usable durations.
- Linux On PowerPC port
Initial port to Linux. Worked on this halfway solution to Intel based
Linux, since a lot of code is still not endian safe. This project is a
stepping-stone into the Linux universe with minimal risk.
- Scalable Ticker Plant Design
Consulted on the design, to create a framework of rules to follow
for our old system to migrate to a cloud type distributed scalable
model. Identified pieces that had to be moved out of the cloud
to peripheral systems, wrote up proposals for other teams to
code. Created the central extensible configurable hash function
that doesnt need a code change to be tuned.
- QC Tool
Wrote a tool to measure data correctness by tapping into request
recording (see DBR library), to gather top requested objects and

then compares them on two live machines, giving a PASS/FAIL


response. Also outputs HTML/JS/CSS report for analysis.
- Turnaround elimination
Was on a two person large-scale project, to eliminate daily
restarts of the system, which was needed for copying files and
data for the next business day. Came up with many creative
solutions, as well as many hacks to get it done.
- DBR library (Digital Binary Recorder)
Developed a generic library to record vast amounts of binary data
that can also replay it. Recording and replay can happen
simultaneously. Currently being used to record requests and
incoming data. Written as a C++ framework on top of UNIX
system calls, and tight libz integration, the library is both
extensible, and high performing.
- Request server (aka ticker request API)
New way to request real-time market data. Designed from ground
up, with full tool chain of utilities, dev tools, logging,
documentation, and metrics. All new development is done via
request server API firm-wide. Write a framework for other
developers to add various request types for different
applications. Backend written in C++, front end libraries in C for
greater compatibility.
- Local tickerplant heartbeat
Local ticker plants are mini replicas of the main ticker plant,
located regionally to reduce latency. Wrote the heartbeat
functionality, to provide for a seamless transition to the main
ticker plant, during rollout and outages.
- Makefile overhaul
Rewrote all make file scripts for GNU make, to account for
multiple target architectures. Simplified makefiles, and tarball
creation.
- AIX port
Worked with an AIX liaison, to port all ticker plant code from
Solaris to AIX. Beat IBM estimate by 30%. Majority of production
machines are currently running AIX.
- Startup scripts rewrite
Worked on a 3-person team to rewrite all startup scripts from
proprietary scripting language to perl. Wrote tag based codeless
configuration (so that new configuration tags wouldnt require
new code). Wrote new curses based command/log-tail utility for
easier command input.
- dbCache Server
Inherited code, meant to be a way to address more then 4GB in
32 bit applications. Extended it to become a multi-threaded,

persistent, and very efficient key-value storage container. Still


used after 64 bit port.

2002-2003

HSBC.
Technical Leader Contractor
- Overview
Worked in a Fixed Income proprietary investing group. Wrote and
supported Traders desk software: Forest. Developed front-end
applications in Windows. Developed back-end applications in
Unix. Used C++, perl, shell scripts, SQL and Iris middleware.
Designed SQL and Iris schemas.
- Solaris Port
Ported backend running in HP-UX to Solaris, to realize a cost
advantage of Sun servers. Migrated all C++ Forest and 3 rd party
libraries code to Forte 6.2 compiler. Repackaged backend software
for easier maintenance. Moved from ftp to a tar/install script
method. Solved most usability issues in the build environment
and application support. Improved and standardized log-file
layout for all components. Switched to dynamic libraries. Created
new build environment, for shorted software deployment and
patching.
Did most of the work myself and took a manager role for work
allocations, and project planning for the remainder.
- Allocations
Allocations is a project where multiple customer orders are
combined into a single trade.
Wrote Trade Feed Daemon - back-end process to send trader
entered tickets to Bloomberg Order Management System. Written
in C++, this daemon broke up trades into allocations, such that
the trader blotter would show one trade, and IMPACT (accounting
clearing system) would process separate allocations for separate
customers. Integrated the system into existing trading tools, with
strong backward compatibility ties.
- Front End
Increased performance of Forest GUIs Instrument Selector. This is
an MFC dialog, which allows a trader to pick a security from the
database. Decreased dialog open time from 1 minute 45 sec. to
less then 1 sec, by fundamentally changing how data is retrieved
and stored.
- Support
Wrote a ticket monitor in Visual Basic. This monitors the health
of the ticket Queue.
Wrote a heartbeat sensor. This monitors the health of backend

processes.
Fixed numerous bugs in Ticket Processor (P&L calculator), price
publishing scripts, and Risk Calculators.
2001

IGT Inc.
Senior Software Developer Comlink
- C, C++, TCP/IP - (6 months)
Worked on a small team (3 people) to maintain and develop
Comlink, message router that connects Lottery POS terminals to
main host system using TCP/IP. In one month was able to increase
performance of comlink by 50% using profiler, enhancing select()
management algorithm, and better output log buffering.
Enhanced terminal simulator (testing tool) to use threads, and
perform more reliably to test the router throughput. Installed
Doxygen automatic documentation tool. Worked with integration
to move to Clearcase.

1997-2001

Hewlett-Packard
Software Design Engineer HP-UX Itanium Port
- C, IA64 Assembler - (2.5 years)
Worked on a team of 70 people to port HP-UX to the Itanium
processor. Worked on kernel synchronization. Enhanced HP-UX to
run on new Intels weakly ordered architecture.
Worked on MP stability team. As of my departure HP-UX was the
most stable OS on the Itanium platform (compared to Linux and
Windows 2000). Developed workarounds for CPU, compiler, and
hardware bugs. Worked on a wide variety of shipstopper kernel
defects, to meet release deadline. Enabled HP-UX to write crashdumps (used to analyze customer crashes) on Veritas disk
volumes.
- C++(applications), KornShell (scripts) Extended archaic and complicated debugging environment based
on a serial line hookup, to a fully automatic consolidated one
using kernel-gdb. Expanded system to support 60 machines and
100+ developers for kernel debugging. Job included installation of
serial MUX cards, administration and security of an HP-UX server.
This was done under self-initiative, to reduce repeated error prone
tasks for developers.
Software Design Engineer FibreChannel Enablement
- C(kernel), C++(applications) - (1 year)
Extended HP-UX's SCSI subsystem to support FC (FibreChannel).
Implemented changes to support enormous amount of devices.
Designed management interfaces with legacy applications in
mind. Had a duty of a technical lead during product integration.
Software Design Engineer HP-UX Driver Developer

Developed driver services, libraries, and IO configuration


commands. Designed for tradeoffs between modularity and
performance. Enhanced HP-UX to install drivers without rebooting.
Implemented driver portions of NUMA clustering software.
Education

Stevens Institute of Technology.

Naturalization

United States Citizen

Você também pode gostar