Download - Alexander Sergeev presentation
Alexander Sergeev
● Male● 25 years old● Single, without children● Moscow, Russia● email: [email protected]● alxsrg.com is my blog in English.
I started to write a blog to improve
my language skills.
The early years
● School with deep french language education● Visual basic and HTML● Installed linux (9th — 10th grades).● PERL a bit. Started to mess around with C.
C + Allegro library = game for Linux named «GNU Tournament» - first place in Russian Linux Games Contest by linuxgames.ru, 25$ earned (11 grade — 1 year of university)
Lessons learned:
● Programming basics● C language basics● How to draw sprites on screen● How to simulate AI
Moscow Institute of Steel and Alloys
09.2004 to 06.2009
Specialization: automation
Bachelor
List of studied subjects includes:
1)Information science
2)Differential equations
3)Probability theory
4)Mathematical logic
5)Operational systems
6)Databases
7)Networks and communications
8)Electrical engineering and electronics
9)Information security
10)Computer graphics
11)Artificial intelligence
12)Real-time systems
13)High-level algorithmic languages
14)Object-oriented programming
15)Management
16)Basics of mathematical systems modeling
17)Ergonomics and quality of automated syste,
18)Programming technologies
19)Statistical methods of analysis
20)Unconstrained mathematical optimizations methogs
21)Constrained and discrete mathematical optimizations methogs
and 40 more.
First job: Electropay
02.2007 — 06.2008In Russia the easiest way to pay mobile phone bills is to find the “payment box” - steel box with PC, touchsceen and a currency detector. You should type a phone number and insert banknotes into the detector. The PC inside the box connects with the server that proceed payment.
Electropay company produced these boxes and maintained servers that proceed payments.
Startup's spirit: even CEO knows how to use ssh and how to compile C programs.
SWD: 4 programmers and 1 designer.
Gentoo Linux everywhere.
Large room with a call-center.
Payment processingserver
(named «payguide»)
Terminalserver
MySQLDB
ServiceProvider 1
(ex mobile operator)
ServiceProvider 2
ServiceProvider 3
Electropay
Via GPRS
Payment attributes check
Payguide
● Linux daemon written on C/C++● Loadable modules support: each service
provider's protocol was implemented in separate module
● Multithreading: each payment proceeded in separate thread by corresponding module.
payguide
MySQLDB
Main thread
Gets payments from DB and passes them into threads in a loop
Thread 1code from a.so
Thread 2code from b.so
Thread 3code from c.so
Thread 4code from a.so
Thread 5code from b.so
ServiceProvider A
internet
JSON via HTTPS, for example
Acts:●Check●Pay●Status
Thread pool
Lessons learned:
● How to write UNIX daemons● How to deal with sockets● How to use libraries (cURL, mysql, openssl...)● How to use shared objects (*.so)● Concurrent programming (POSIX threads)● How to compile program on working Gentoo
server
Electropay company...
...was smashed by large companies like OSMP and Elecsnet, but as I know still exists in Ukraine.
SUP Media (aka SUP Fabrik)
07.2008 - now
● 250 — 300 employers● livejournal.com - LJ (purchased from its
previous owners, Six Apart), championat.com, quto.ru, redigo.ru, gazeta.ru projects.
Back-end developer
Team leader: Andrew Shetuhin
My goal was to build fast, reliable and simple C++ framework for upcoming back-end needs (new sessions storage system, for example).
I worked in a pair with Konstantin Lepa.
Flint-based systems
ACME system
Client 2
Client 1
Client 3
Iterator 1
Iterator 2
Queue CQueue BQueue A
ACME system (with Andrew Fedorov)
XC3 system (with Dmitry Nikolaev)
fron
t-en
ds
collector
Binlogs
Counter 1
Counter 2
Counter 3
results
Newcounter
Lessons learned:
● How to concurrent versions system (svn)● How to use bug tracking software (jira)● Object-oriented programming● How to meet system administrators' needs.
● How to build binary packages (deb, rmp). System integration.
iPhone programming
- Would you like to develop a Livejournal client application for iPhone with Igor Sazonov?
- Yes, sure!Livejournal uses HTML markup for a user content. We decided to write something like simple HTML browser.
Standart components (buttons, images, text labels, etc) were too slow for such usage. The first version was horrible.
Igor left the company.
I rewrote the layout and rendering system by using low-level components (Core Graphics). This allowed me to use background threads; main thread (with GUI) was not blocked anymore. Content scrolling became smooth, layout and rendering became faster.
LJserver
XML-RPC
Localstorage
Net
XML parser
HTML parserLayout engine
Rendering engine
Objects(like a post, comment,
user)
Background threads — do not block GUI
Rich content
iOS Livejournal client
Lessons learned
● Objective-C● iOS SDK● Object-oriented programming● GUI programming● How to write a simple HTML browser (without
javascript, css and tables)
Current state
Our bosses offered me to become a «product manager» in mobile apps development project and I accepted their offer.
However, I'm still the sole developer for iOS platform (and a manager for myself).
I was advising my colleague in Livejournal Android client application project. We released new version of Android project may, 12. Now I'm writing functional specification for the next Android version.
I work close with XML-RPC developers (I plan new features in application and set tasks for XML-RPC developers).
I dream about...
● more programming!● working on something that is really cool and
something which is the main source of the profit to the company (I like SUP Media but it gains profit mostly by selling ads, not apps).
● working on mobile software● work not only with computers but with human
beings, too● work in a team● living in another country.