Curriculum Vitae

Curriculum Vitae
Personal data
Name:
Mobile phone:
E-mail:
Homepage:
Tomasz Lasko
+48 727 401 441
[email protected]
www.tomasz.lasko.pl
Summary
Talented IT professional with deep knowledge and experience of computer science and software development techniques. Quick learner with
excellent problem solving skills. Energetic and result-oriented team player and coordinator, always ready to motivate and support others. Also
experienced in project management, self-organized and good communicator, always able to carry assignments to good results in an agile
way.
Skills
Languages
Polish
English
German
Russian
mother tongue
fluent in speech and reading/writing
intermediate in speech and reading/writing
basic in speech and reading
Programming
C, C++ (with STL, C++11), Java, C#, .NET, Pascal/Delphi, Assembler, PHP, Ruby, Visual Basic/VBA, Ada,
HTML, JavaScript, XML/XSLT, Shell scripts, Lexical tools (AWK, yacc, lex), Expert systems (CLIPS),
Software engineering methodologies and practices, Agile software development, Scrum process,
Various programming methods (e.g. structural, declarative or object oriented programming),
Alogorithms and data structures, Different levels of abstraction (from microchips, through mobile
and PC applications, servers and services, to system kernels and distributed systems)
Platforms
Windows 3.11, 95, 98, NT4.0, 2000, 2000 Server, XP, Embedded, Server 2003, Server 2008, Vista, 7, 8,
Unix/POSIX platforms (Linux, FreeBSD, HP-UX, Cygwin/MinGW) - POSIX API, Linux and other specific API's
Low level development (using OS API or on bare metal, programming hardware directly or e.g. via BIOS),
Cross-platform development, Cross-compiling, Development of static/dynamic libraries and plugins,
Mobile (J2ME, Symbian, Windows Mobile, Android), Using cross-platform frameworks and libraries
Frameworks/UI
Qt / QML, GTK, gtk#, Borland VCL, WinAPI / GDI, MFC, .NET WinForms, wxWidgets, FLTK, Console UI (DOS, ncurses)
Embedded/OS
Creating own OS totally from scratch, Developing embedded systems, Creating device drivers and system tools,
Very advanced low-level programming – both 16bit (DOS, BIOS) and 32bit (386 protected mode, Windows, Linux)
Scheduling, data structures, etc., Distributed OS theory, Basics of real-time systems, Basic signal processing, SIMD, FFT
Networks/
Communication
Designing, programming, testing, protocols, sockets, services, Creating own TCP/IP stack in an embedded system,
Network design, configuration, administration and analysis (Windows, Unix/Linux, Cisco), VPN (OpenVPN, PPTP, IPsec),
Wired and wireless communication technologies (e.g. copper media, fiber optics, Wi-Fi, Bluetooth),
Transmission techniques (coding, framing, synchronizing, error checking and correction, media, bandwidth, delays, etc.),
Telecommunication systems and protocols (ISDN, SS7, GSM/UMTS, CDMA), Internet by cable TV (DOCSIS),
IPv6 (on Linux and Windows; Dual stack IPv4+IPv6, IPv6-only networks, IPv6 transition mechanisms)
Parallel/
Distributed
Designing, programming, testing, debugging, multithreaded/parallel and distributed systems and applications,
POSIX threads, WinAPI, OpenMP, RPC, PVM, MPI, CORBA, Java RMI, COM, XML RPC, .NET, LDAP
Problems, algorithms, environments, synchronization, Inter-Process Communication
Web/Enterprise
Web development and administration (HTML, CGI, PHP, JavaScript, CSS, SOAP, AJAX, JSON, RSS, Apache, IIS),
Java EE development (Spring, Tomcat, REST, JPA, Hibernate), XML development (XML Schemas, XSLT, SAX, DOM)
Databases
SQL (incl. PL/SQL, T-SQL), using mainly MySQL, PostgreSQL, Oracle, and also Microsoft SQL Server, Sqlite, Informix
Mobile
Qt SDK, Symbian, Android, Java MIDP (J2ME), WAP/WML, Nokia Mobile Internet Toolkit
Multimedia
Sound, video, 2D and 3D graphics, basics of DSP,
Development (Direct X, SDL library, OpenGL, GDI, DOS SVGA, FFTW library)
Using ready tools (CoolEdit, PaintShop Pro, Adobe Photoshop, etc.)
Electronics
Programming and debugging microprocessors and microcontrollers (Atmel ATmega, Intel x86 and 8051/MCS-51)
using assemblers, C and C++. Basics of digital circuits design and implementation. Creating own simple robot.
Compiler/IDE
Eclipse, MS Visual Studio 6/.NET/2005/2008/2012 (C++, C#, VisualBasic), Borland C++ Builder, Borland Pascal, Delphi,
GNU compilers and tools (gcc, make, autoconf, automake, gdb, AWK, Yacc, gnat, as), TASM, MASM, NASM, Watcom,
QtCreator, Dev-C++, CodeBlocks, KDevelop, Emacs, MODSIM, PSI/c, CLIPS, various disassemblers
Tomasz Lasko – CV / Page 1 of 4
Other
Version control systems (SVN, Mercurial, CVS, ClearCase, MS Visual SourceSafe, git),
Automated testing (CI, CruiseControl, JUnit, CppUnit, Microsoft Unit Testing Framework, creating a testing framework),
Build tools (GNU tools, Ant, Gradle, ClearCase clearmake),
Development of OpenSource projects at www.SourceForge.net,
Virtual machines (VMware, MS VirtualPC, VirtualBox, Bochs, QEMU, Xen),
MS Office (Word, Excel, PowerPoint, Access, FrontPage, Publisher, VisualBasic/VBA), OpenOffice.org, Google Docs,
Building, upgrading, repairing of computers, and many more.
Professional experience
01-10.2014
Cross-platform desktop application development for a consulting company
Developing a Qt-based client application for task management, targeted at Windows and Linux desktop.
Technologies: C++11, Qt, using RESTful API (HTTP, XML, SSL), Windows, Ubuntu Linux
09-12.2013
Android project for a software house
Developing a mobile (Android) client application, that allows collaboration of workers using enterprise in-house services.
Technologies: Java, Android, REST (Spring, HTTP, XML, JSON), Eclipse, Mercurial (hg)
03-08.2013
Network infrastructure design for a software house
Designing and implementing a modern IPv6-based network infrastructure, with enterprise services. Documentation.
Technologies: Windows, Linux server, Linux embedded, VM (Xen), TCP/IP with IPv6,
Routing and firewalling, Security policy, VPN, DNS, PKI, X.509, shell scripting, Lua
2010-2013
Research and development
Connecting different types of data sources on different platforms (desktop, server, mobile, different operating systems),
within a distributed environment, into a flexible and synchronized ecosystem.
Technologies: Windows, UNIX/Linux, Symbian, Android, TCP/IP with IPv6, SSL, Spring, Hibernate, Qt / QML,
C++, Java, C#, PHP, shell scripting, GNU tools, XML, GSM/GPRS/3G, Bluetooth, Eclipse, Visual Studio, Mercurial, SVN
02-05.2009
Software Developer at NaviExpert (www.naviexpert.com), Poznan, Poland
Innovative GPS navigation systems
Tasks: Software development – mobile client and application server
Technologies: Java (J2ME, J2EE), C# (.NET CF), C++ (Symbian), TCP/IP, Multithreading, GPS, Bluetooth
2008
MSc thesis project at Poznan University of Technology
XSockets - cross-platform communication framework providing a unified and extensible API
for point-to-point communication between programs and/or devices. Includes a shared library, plugins and tools.
Technologies: C, C++, Multithreading, Windows and Unix/POSIX IPC (Unix/POSIX API, WinAPI), GNU tools,
TCP/IP, Pipes, Bluetooth, Infrared, Serial/parallel cable, UNIX & Linux shell, SVN, UML
06.2008
Link Launcher – a GUI tool allowing to choose in which browser a web link should be opened, when using many browsers
My own project released as Open Source at SourceForge.net (http://LinkLauncher.sourceforge.net).
Technologies: Ruby, Ruby/GTK, IPC, SVN
06-09.2007
Software Developer/Designer at Nokia Siemens Networks, Helsinki, Finland
Nokia MMS Center (Multimedia Messaging Service Center), multinational project team of approx. 60 people
Tasks: MMSC software development (SW design, implementation, testing, documenting, tools creation)
Technologies: Cross-platform C++ (for HP-UX and Linux; incl. STL, IPC, multithreading, POSIX API),
TCP/IP, UNIX & Linux shell, GNU tools, LDAP, XML/XSLT, UML, SW development using Agile and Scrum,
with TDD (Test Driven Development, using in-house Automated Unit Testing Framework integrated with CruiseControl)
04-05.2007
Poznan Supercomputing and Networking Center (www.psnc.pl), Poznan, Poland
Network Services Department – iTVP project (interactive online streaming system of Polish state television)
Tasks: Software development and monitoring of global broadcasting network
Technologies: TCP/IP, distributed Windows Media, .NET with C#, Multithreading, Microsoft SQL, UML (MS Visio)
07-10.2006
Software Developer/Designer/Coordinator at Nokia, Helsinki, Finland
Nokia MMS Center (Multimedia Messaging Service Center), multinational project team of approx. 60 people
Tasks: Leading an MMSC software research subproject (incl. conducting a feasibility study,
coordinating requirements between Nokia departments). Later designing the solution and leading its implementation.
Technologies: Cross-platform C++ (for HP-UX and Linux; incl. STL, IPC, multithreading, POSIX API),
TCP/IP, UNIX & Linux shell, Informix SQL, LDAP, XML/XSLT, UML,SW development using Agile and Scrum,
with TDD (Test Driven Development, using in-house Automated Unit Testing Framework integrated with CruiseControl)
04.2006
Display Dumper (DispDump) – a remote control tool which sends content of PC screen through serial cable
My own project released as Open Source at SourceForge.net (http://DispDump.sourceforge.net).
Technologies: C, SVN Low level hardware programming in DOS (Serial port, VGA card)
Tomasz Lasko – CV / Page 2 of 4
04.2005-02.2006
OpComm – cross-platform on-line group collaboration framework, fully modular (most functionality via plugins)
Team project made as BSc Engineer thesis. Also created sample plugins for main window, text chat, VoIP, whiteboard.
My tasks: defining interfaces between modules, designing and implementing program core and network communication
components (including own network protocol), creating the plugin mechanism, supporting GUI design and implementation
Technologies: Cross-platform (Linux & Windows) C++ with multithreading, TCP/IP and GUI (Qt library), CVS
10-12.2005
“IntelliService” – A Windows GUI distributed application, with central database synchronization,
made for a company, which needed to manage work assignments of its mobile workers.
Technologies: C++, Borland VCL and WinAPI GUI, MySQL
10-12.2005
“I, Robot” – A team project of an autonomous robot which automatically follows a track on the ground.
The robot is controlled automatically by a program run either on ATmega microcontroller (on the robot itself)
or on a PC (then the robot is connected to the PC with a data cable; incl. programming the PC hardware).
My tasks: create all software for the robot, collaborate in mechanical and electronic construction
Technologies: C++ and C (crossplatform: for x86 Intel PC and ATmega), Assembler (PC x86 assembler),
Programming the timer, interrupt controller and LPT port in both low level assembler and OS high level API
06-10.2005
Software Developer/Designer at Nokia, Helsinki, Finland
Nokia MMS Center (Multimedia Messaging Service Center), multinational project team of approx. 60 people
Tasks: MMSC software development (SW design, implementation, testing, documenting, tools creation),
also creating an in-house Automated Unit Testing Framework for our department, to properly adopt Agile.
Technologies: TCP/IP, C++, C, POSIX API (incl. UNIX IPC), Multithreading, UNIX & Linux shell,
Java, Informix SQL, UML, SW development using Agile and Scrum, with TDD (Test Driven Development,
using in-house Automated Unit Testing Framework integrated with CruiseControl)
2005-2006
“Embedded Mini Server (EMS)” – my own Internet server embedded system
An embedded system which can be a Web-server or Networked Attached Storage (NAS).
Service-oriented architecture designed for embedded environment (e.g. it can run many object oriented processes
simultaneously on a system with no hardware support for multitasking, like on a simple microcontroller).
I also created my own TCP/IP stack and networked services (like HTTP or FTP servers).
Technologies: C++, C, Assembler, GNU tools, Own TCP/IP stack, PC hardware, Electronic circuit design
cross-compiling using various toolchains (under Linux and Windows, using e.g. GNU tools, MS Visual Studio),
debugging and testing embedded using different methods, e.g. through serial/ethernet or in virtual machines
2003-2005
“Tom's Operating Microsystem (TOM)” – my own modular operating system for x86 32-bit protected mode
Designed and made totally from scratch by myself (including microkernel, own file system, device drivers, networking etc)
Technologies: C++, C and x86 Assembler, Pascal, PC hardware,
cross-compiling using various toolchains (under Linux and Windows, using e.g. GNU tools, MS Visual Studio),
debugging and testing embedded using different methods, e.g. through serial/ethernet
or in virtual machines (BOCHS, QEMU, VirtualPC, VMware); also debugging step-by-step CPU instructions
04-06.2005
“FreakyWheels” – a cross-platform (Linux and Windows) networked multiplayer 3D racing game engine
A team project made with friends.
My tasks: defining interfaces between modules, designing and implementing program core
and network communication components (including own network protocol).
Technologies: Linux & Windows C++ with multithreading, TCP/IP, OpenGL, GNU tools, CVS version control
07.2004-09.2004
Software Developer at Asta-Net (www.asta-net.pl), Pila, Poland
Regional cable TV and Internet provider
Tasks: Software development and IT infrastructure development
Technologies: TCP/IP, DOCSIS, Delphi, Multithreading, COM, WinAPI, PostrgeSQL, PHP, Linux shell, Windows shell
03-04.2001
Creating the official website of my High School
Technologies: Apache, PHP, MySQL, HTML, CSS, JavaScript, Linux and Windows shell
1996-2006
Very intensive and passionate self-learning (since primary school), through a wide variety of technologies and designs.
Areas and technologies:
- C, C++, Assembler and Pascal/Delphi (all of them under DOS, Windows and Linux)
- Advanced databases (SQL with PL/SQL and T-SQL; using Oracle, MySQL, MS SQL, PostgreSQL and SQLite;
incl. triggers, views, materialized views, query optimization, distributed transactions/replication, Oracle GIS Spatial)
- Low level under Win32, Linux, DOS, BIOS, bare metal (PC hardware, device drivers, file system drivers, boot loader),
- Windows and Linux GUI and multimedia (WinAPI, GDI, DirectX, SDL, OpenGL, Borland VCL, Qt, gtk, FLTK, Java Swing
.NET WinForms, Sound playback, recording and generation, Wave and MP3 file processing, MMX/SSE assembly)
- Linux/POSIX multithreaded TCP/IP services (C, TCP/IP using POSIX API/BSD sockets, GNU tools, Linux shell),
- Distributed systems (RPC, PVM, MPI, CORBA, Java RMI, COM, XML RPC, .NET C#, Ada, NFS, LDAP, NIS),
- Web development (HTML, CGI, PHP, .NET C#, Java J2EE, SOAP, CSS, JavaScript, AJAX, Apache, IIS, databases)
- Mobile Java and Web development (Java J2ME/MIDP, WAP/WML, WAP gateway, Mobile phone simulators)
- Other (e.g. linking code from different languages and compilers, dynamic shared libraries, plugin development)
Tomasz Lasko – CV / Page 3 of 4
Academic Education
2009-2010
Warsaw School of Economics, Warsaw, Poland
Top economic university in Central and Eastern Europe
Management studies, faculty of Economical Management
Specialization: Strategic Management
Thesis project: “IT project management with the use of eXtreme Programming (XP) methodologies”
2006-2007
Poznan University of Technology, Poznan, Poland
One of the top technical universities in Poland, with many world-award-winning studies
Master Engineering studies in Computing Science, faculty of Computing Science and Management
Specialization: Computer Networks and Distributed Systems
Thesis project: “Cross-platform open source shared library for universal point-to-point communication sockets”
2002-2006
Poznan University of Technology, Poznan, Poland
One of the top technical universities in Poland, with many world-award-winning studies
Bachelor Engineering studies in Computer Science, faculty of Computing Science and Management
Thesis project: “Cross-platform, open source, online group collaboration system” (a team project)
Achievements
Received the “Poznan University of Technology Scholarship for Academic Achievements”.
Recorded in “The Book of Extraordinary Students of the Faculty” during studies at Poznan University of Technology.
Interests and hobbies
General technology and engineering, economy, social initiatives, music.
Other skills and competences
Management
Participated in Agile software development and Scrum seminars, trainings and in real software projects using
these methods (with Ken Schwaber and Craig Larman).
Cisco
Cisco Certified Network Associate Course (two semesters in 2005 and 2006)
Since 2004
Driving license.
Since 2002
Member of Mensa society (www.mensa.org) with the IQ (Intelligence Quotient) at least 156 (1% of the population) – the
IQ test was limited and could not score more. The criterion for membership in Mensa is a score in the top 2% of the
population on any of a number of standardized supervised IQ tests.
Per request I can also provide references.
I declare, that I agree to have my personal data processed for recruitment purposes in accordance with data protection legislation.
Poland, October 23rd 2014
Tomasz Lasko
Tomasz Lasko – CV / Page 4 of 4