I am Sergey, a professional web developer working in the industry for the last 14 years. Being an experienced programmer, my work ethic encompasses a positive and productive approach. Over the years, I have established command over core web principles, and always strive to deliver innovation on my projects. I plan to contribute in the global arena through my skills, and am thus able to communicate fluently in English. Please find further details regarding my education, skills, and work experience, below.
Professional GoalAt the present, I am in search of viable work opportunities in the San Francisco Bay Area, preferably ones which facilitate the process of getting an H1B visa.
For clients interested in entrepreneurship for investment purposes, I can also lead startups, complete with building and managing custom teams.
Higher EducationBachelor of Information Security in 2006
Institute of Physics and Technology, NTUU "KPI"
What I Can Do
Design and develop custom-made web solutions and/or graphics
Web development has been my focus for the last 14 years, and I have a proven ability to deliver professional-grade web/intranet systems which meet client needs. As a designer I can create graphics which can capture your brand identity and give your website professional edge.
Design user-friendly user interface components or complete interfaces
Handle full project-cycle communication with your clients and customers
I have well developed communication skills and am at ease corresponding with customers in a calm and professional manner. I can ask the right questions at the right moment to ensure the scope of a project is well defined from the onset, and ensure an optimal solution is provided which will meet your client requirements.
Manage and bring together a team of web developers in Kiev
If you are planning to develop your web-office space here in Kiev – then look no further. I can help you to source an office which suits your budget and also assist with infrastructure planning, equipment purchasing and bringing together a team of highly skilled professionals. I will do my best to optimize the development process and manage and motivate the team under your direction.
Provide professional training and coaching for web development teams
As a skilled web developer I can provide your team with customised training which will meet their professional needs. I take great care to be clear and consistent and provide tailor-made training which leads to increased efficiencies and confidence across the team.
Microsoft Skype, Contractor (December 2013 - PRESENT)
Currently I work as a contractor at Microsoft Skype. Having signed NDA, I am unable to say anything about my present engagement. My commitment expires on 20th of June, 2014, and I am seeking alternative offers in Bay Area in search of feasible future commitments. Looking forward to knowing more about your company, and present vacancies!
Freelance Employment (December 2012 - November 2013)
Med Rider, Lead Developer (August 2012 - November 2012)
In 2012, I was hired to work on the MedRider project for a company specializing in medical transportations. During this time, I had to be extremely careful while developing, as the software in part contributed to saving human lives in critical situations. I used a single-page application (SPA) approach, optimized client-side graphics, reduced the number of requests to minimum, and used multiple speed optimizations for the backend. As a result, client-side application was loading in under a seconds, and was serving clicks nearly as fast as any desktop app would. I did not use any dependencies, to ensure that the entire system stability wasn't affected by the 3rd party code. The system has now been put into production, and I left the project having created all necessary documentation.
GMAT Club, Lead Developer (April 2012 - July 2012)
For gmatclub.com, I developed an automated system for helping enrollees to prepare for the GMAT test. Project consisted of three parts: test application, members area with PayPal integration, and administrator panel for manual subscription management. I’ve accomplished the project using PHP, Yii Framework, and standard client-side stack of jQuery with few plugins. One of the special requirements was to replicate the original GMAT test user interface. You can see this part of work by clicking here. The application is still used at GMAT Club, and you are welcome to register and take a test-drive.
Wildix, Independant Consultant (October 2011 - March 2012)
By the end of 2011, I was invited as a senior web developer to work for an Italian company specializing in digital telecommunication equipment. I reworked the web interface of the PBX modules (which you can find in my work examples), and made a complete security audit of the entire system. Some of the optimizations I suggested have dramatically decreased resources consumption and bettered the overall performance of the whole system. Before leaving the project, I created full accompanying documentation.
Freelance Employment (January 2006 - September 2011)
Telegence, Software Developer (June 2004 - December 2005)
As requested by telegence.co.uk, I also developed a corporate-scale print-server with barcode printing and load-balancing support. This project was accomplished using the .NET Framework 1.1 and C# with development process involved multi-threading, streaming, WinAPI GDI programming and cross-platform optimization. The printing server had a web-based management interface which could be installed as a service onto any Windows machine using a convenient wizard installer.
Celline, Software Developer (August 2003 - June 2004)
While at Celline, I designed, developed, and deployed an automated system which handled a wide range of SMS games and services. The application was build using the .NET Framework 1.1 and operated MS SQL Server with stored procedures. In this project HTTP and SMTP servers were made from scratch using sockets implementing HTTP 1.1 (RFC 2616) and SMTP (RFC 821 & 822). Separate SMS handling protocols were implemented as well for UMC & KyivStar GSM operators. Extensive technical documentation was written and delivered before my departure.
Infopulse, Junior Developer (August 2001 - August 2003)
My ApproachOver the years, I have picked up much that can only come with years of toiling in a specific field. I have paid for all that I have learnt with extensive patience, time, and effort. The principles that I mastered during this process are not apparent to many, even during the most exhaustive technical interviews. Therefore, I offer potential employers a sneak peek into some of the guidelines I developed for a clearer understanding of the way I operate.
I do not take projects under unrealistic conditions
I always make it a point to conduct a comprehensive analysis of project requirements, budget, and specific conditions which the client emphasizes upon, and then proceed to the planning stage. More often than not, I find a way to exceed customer expectations; but sometimes, the best I can do is say "mission impossible" when I know the available resources just won’t be enough to meet the exacting conditions which the client has stated. I know what it takes to create high-quality software, and make it a point to never underestimate resources.
I always plan my work in advance
I now know for a fact that thorough planning pays out every time. For each project, I carefully develop a game plan that fits the project requirements, after weighing each and every option at considerable length. Based on each customer’s individual preferences, parameters such as budget, team members, available technologies, are manipulated to deliver best results. Furthermore, I always make sure to resolve any uncertainties beforehand, enabling me to create the final product that perfectly fits requirements and expectations. This reduces the risk of any issues in the future. I have also developed the habit of asking insightful questions to attain clarity when it comes to possible variants and the respective pros and cons.
I sort out reasonable costs from irrelevant ones
When it comes to software development, one wrong decision can lead to drastic increases in costs, resulting in loss of precious resources that could otherwise have been put to productive use. I make it a point to manage resources effectively and consider the monetary effects of decisions while on any project for this very reason. In addition, there are often situations when a client can save on costs by bypassing a particular problem, instead of trying to solve. In such a scenario, I consider it my responsibility to inform the client of effects on budget and possible alternative solutions that they could implement to save on expenses.
I prefer to avoid redundant dependencies
Every project has at least some dependencies such as specific code libraries and plugins, and at times, using these makes good sense. On the other hand, sometimes redundant or unreasonable inclusions are done which provide no benefit in functionality, and can potentially introduce bugs in the application. Introducing dependencies almost always results in a trade-off between control and time/efforts/resources. To avoid redundant dependencies, I can write in-house code if need be. Any functionality based on the core technologies on my profile can be built from scratch if such is the requirement.
I know how to use abstractions and interfaces
One of the best inventions in programming is the capability to split future projects into modules separated with an API; this enables the developer to focus on working on the API to optimize the application and writing code without the need of considerable planning. The benefits of this approach are numerous; as it lets multiple teams develop several modules simultaneously without conflicting with each other. Functional testing for any system module, enforcing TDD, or even replacing/rewriting system modules without affecting entire system can be done using this approach. Managing these abstractions can get complicated at times though, with a developer discovering at a later stage that they are in over their heads. I have been working on abstractions for a number of years, and have optimized my approach to always find the right balance.
I know how to manage resources
When working on any project, I always make sure to resolve any issues that might cause impediments in the operations before I start. Once I know clearly what needs to be done, I can start immediately working on simultaneous processes to stay on top of deadlines. I know the entire process of software development and therefore find it easy to plan my work in advance. This saves time, effort, and respects budget constraints.
Code clarity, reusability and maintainability is critical to me
It’s impossible to have repeat clients if they experience problems maintaining what you have created. On the other hand, writing documentation takes significant timing. I always discuss this aspect with my customers and explain the benefits of having accompanying documentation. In case of no documentation, the customer may find it quite difficult to get the application maintained by someone else at a later stage.
I pay special attention to small details
I believe, this is what makes the differences between professionals and amateurs, most of all. During my work, I carefully eliminate every inconsistency that comes my way, and replace it, anticipating user expectations. I’m driven by the principle of the science stating that anything can be off the mark, or be in excess, with the right point lies somewhere in between. I think this applies to everything, including programming, web design, and life itself.
Understanding of the need of a team
At times, working with a team is the best way to meet quality requirements of particular tasks. Having a solid understanding of principles behind quality development, I understand full well how to lead a team in order to deliver outstanding results.